Beta 7 with some repo names changed.
This commit is contained in:
1 parent
0f7b40cca7
commit
963c19493a
3408 files changed
+462217
-15516
No files matched your search
+67
@@ -0,0 +1,67 @@
|
||||
function Caseless (dict) {
|
||||
this.dict = dict || {}
|
||||
}
|
||||
Caseless.prototype.set = function (name, value, clobber) {
|
||||
if (typeof name === 'object') {
|
||||
for (var i in name) {
|
||||
this.set(i, name[i], value)
|
||||
}
|
||||
} else {
|
||||
if (typeof clobber === 'undefined') clobber = true
|
||||
var has = this.has(name)
|
||||
|
||||
if (!clobber && has) this.dict[has] = this.dict[has] + ',' + value
|
||||
else this.dict[has || name] = value
|
||||
return has
|
||||
}
|
||||
}
|
||||
Caseless.prototype.has = function (name) {
|
||||
var keys = Object.keys(this.dict)
|
||||
, name = name.toLowerCase()
|
||||
;
|
||||
for (var i=0;i<keys.length;i++) {
|
||||
if (keys[i].toLowerCase() === name) return keys[i]
|
||||
}
|
||||
return false
|
||||
}
|
||||
Caseless.prototype.get = function (name) {
|
||||
name = name.toLowerCase()
|
||||
var result, _key
|
||||
var headers = this.dict
|
||||
Object.keys(headers).forEach(function (key) {
|
||||
_key = key.toLowerCase()
|
||||
if (name === _key) result = headers[key]
|
||||
})
|
||||
return result
|
||||
}
|
||||
Caseless.prototype.swap = function (name) {
|
||||
var has = this.has(name)
|
||||
if (has === name) return
|
||||
if (!has) throw new Error('There is no header than matches "'+name+'"')
|
||||
this.dict[name] = this.dict[has]
|
||||
delete this.dict[has]
|
||||
}
|
||||
Caseless.prototype.del = function (name) {
|
||||
var has = this.has(name)
|
||||
return delete this.dict[has || name]
|
||||
}
|
||||
|
||||
module.exports = function (dict) {return new Caseless(dict)}
|
||||
module.exports.httpify = function (resp, headers) {
|
||||
var c = new Caseless(headers)
|
||||
resp.setHeader = function (key, value, clobber) {
|
||||
if (typeof value === 'undefined') return
|
||||
return c.set(key, value, clobber)
|
||||
}
|
||||
resp.hasHeader = function (key) {
|
||||
return c.has(key)
|
||||
}
|
||||
resp.getHeader = function (key) {
|
||||
return c.get(key)
|
||||
}
|
||||
resp.removeHeader = function (key) {
|
||||
return c.del(key)
|
||||
}
|
||||
resp.headers = c.dict
|
||||
return c
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"_from": "caseless@~0.12.0",
|
||||
"_id": "caseless@0.12.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||
"_location": "/caseless",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "caseless@~0.12.0",
|
||||
"name": "caseless",
|
||||
"escapedName": "caseless",
|
||||
"rawSpec": "~0.12.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "~0.12.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/request"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||
"_shasum": "1b681c21ff84033c826543090689420d187151dc",
|
||||
"_spec": "caseless@~0.12.0",
|
||||
"_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\BackendServers\\node_modules\\request",
|
||||
"author": {
|
||||
"name": "Mikeal Rogers",
|
||||
"email": "mikeal.rogers@gmail.com"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/mikeal/caseless/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"deprecated": false,
|
||||
"description": "Caseless object set/get/has, very useful when working with HTTP headers.",
|
||||
"devDependencies": {
|
||||
"tape": "^2.10.2"
|
||||
},
|
||||
"homepage": "https://github.com/mikeal/caseless#readme",
|
||||
"keywords": [
|
||||
"headers",
|
||||
"http",
|
||||
"caseless"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"main": "index.js",
|
||||
"name": "caseless",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/mikeal/caseless.git"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "node test.js"
|
||||
},
|
||||
"test": "node test.js",
|
||||
"version": "0.12.0"
|
||||
}
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
var tape = require('tape')
|
||||
, caseless = require('./')
|
||||
;
|
||||
|
||||
tape('set get has', function (t) {
|
||||
var headers = {}
|
||||
, c = caseless(headers)
|
||||
;
|
||||
t.plan(17)
|
||||
c.set('a-Header', 'asdf')
|
||||
t.equal(c.get('a-header'), 'asdf')
|
||||
t.equal(c.has('a-header'), 'a-Header')
|
||||
t.ok(!c.has('nothing'))
|
||||
// old bug where we used the wrong regex
|
||||
t.ok(!c.has('a-hea'))
|
||||
c.set('a-header', 'fdsa')
|
||||
t.equal(c.get('a-header'), 'fdsa')
|
||||
t.equal(c.get('a-Header'), 'fdsa')
|
||||
c.set('a-HEADER', 'more', false)
|
||||
t.equal(c.get('a-header'), 'fdsa,more')
|
||||
|
||||
t.deepEqual(headers, {'a-Header': 'fdsa,more'})
|
||||
c.swap('a-HEADER')
|
||||
t.deepEqual(headers, {'a-HEADER': 'fdsa,more'})
|
||||
|
||||
c.set('deleteme', 'foobar')
|
||||
t.ok(c.has('deleteme'))
|
||||
t.ok(c.del('deleteme'))
|
||||
t.notOk(c.has('deleteme'))
|
||||
t.notOk(c.has('idonotexist'))
|
||||
t.ok(c.del('idonotexist'))
|
||||
|
||||
c.set('tva', 'test1')
|
||||
c.set('tva-header', 'test2')
|
||||
t.equal(c.has('tva'), 'tva')
|
||||
t.notOk(c.has('header'))
|
||||
|
||||
t.equal(c.get('tva'), 'test1')
|
||||
|
||||
})
|
||||
|
||||
tape('swap', function (t) {
|
||||
var headers = {}
|
||||
, c = caseless(headers)
|
||||
;
|
||||
t.plan(4)
|
||||
// No Header to Swap.
|
||||
t.throws(function () {
|
||||
c.swap('content-type')
|
||||
})
|
||||
// Set Header.
|
||||
c.set('content-type', 'application/json')
|
||||
// Swap Header With Itself.
|
||||
c.swap('content-type')
|
||||
// Does Not Delete Itself.
|
||||
t.ok(c.has('content-type'))
|
||||
// Swap Header With a Different Header.
|
||||
c.swap('Content-Type')
|
||||
// Still Has Header.
|
||||
t.ok(c.has('Content-Type'))
|
||||
// Delete Header.
|
||||
c.del('Content-Type')
|
||||
// No Header to Swap.
|
||||
t.throws(function () {
|
||||
c.swap('content-type')
|
||||
})
|
||||
})
|
||||
Reference in new issue
Block a user