This commit is contained in:
Talor Berthelson
2016-06-17 20:49:15 -04:00
commit 889faf9c1c
699 changed files with 112020 additions and 0 deletions

45
node_modules/caseless/README.md generated vendored Normal file
View File

@@ -0,0 +1,45 @@
## Caseless -- wrap an object to set and get property with caseless semantics but also preserve caseing.
This library is incredibly useful when working with HTTP headers. It allows you to get/set/check for headers in a caseless manner while also preserving the caseing of headers the first time they are set.
## Usage
```javascript
var headers = {}
, c = caseless(headers)
;
c.set('a-Header', 'asdf')
c.get('a-header') === 'asdf'
```
## has(key)
Has takes a name and if it finds a matching header will return that header name with the preserved caseing it was set with.
```javascript
c.has('a-header') === 'a-Header'
```
## set(key, value[, clobber=true])
Set is fairly straight forward except that if the header exists and clobber is disabled it will add `','+value` to the existing header.
```javascript
c.set('a-Header', 'fdas')
c.set('a-HEADER', 'more', false)
c.get('a-header') === 'fdsa,more'
```
## swap(key)
Swaps the casing of a header with the new one that is passed in.
```javascript
var headers = {}
, c = caseless(headers)
;
c.set('a-Header', 'fdas')
c.swap('a-HEADER')
c.has('a-header') === 'a-HEADER'
headers === {'a-HEADER': 'fdas'}
```

65
node_modules/caseless/index.js generated vendored Normal file
View File

@@ -0,0 +1,65 @@
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) 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) {
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
}

90
node_modules/caseless/package.json generated vendored Normal file
View File

@@ -0,0 +1,90 @@
{
"_args": [
[
{
"name": "caseless",
"raw": "caseless@~0.10.0",
"rawSpec": "~0.10.0",
"scope": null,
"spec": ">=0.10.0 <0.11.0",
"type": "range"
},
"C:\\Users\\talor\\bots\\polibug\\node_modules\\request"
]
],
"_from": "caseless@>=0.10.0 <0.11.0",
"_id": "caseless@0.10.0",
"_inCache": true,
"_installable": true,
"_location": "/caseless",
"_npmUser": {
"email": "jnylen@gmail.com",
"name": "nylen"
},
"_npmVersion": "1.4.14",
"_phantomChildren": {},
"_requested": {
"name": "caseless",
"raw": "caseless@~0.10.0",
"rawSpec": "~0.10.0",
"scope": null,
"spec": ">=0.10.0 <0.11.0",
"type": "range"
},
"_requiredBy": [
"/request"
],
"_resolved": "https://registry.npmjs.org/caseless/-/caseless-0.10.0.tgz",
"_shasum": "ed6b2719adcd1fd18f58dc081c0f1a5b43963909",
"_shrinkwrap": null,
"_spec": "caseless@~0.10.0",
"_where": "C:\\Users\\talor\\bots\\polibug\\node_modules\\request",
"author": {
"email": "mikeal.rogers@gmail.com",
"name": "Mikeal Rogers"
},
"bugs": {
"url": "https://github.com/mikeal/caseless/issues"
},
"dependencies": {},
"description": "Caseless object set/get/has, very useful when working with HTTP headers.",
"devDependencies": {
"tape": "^2.10.2"
},
"directories": {},
"dist": {
"shasum": "ed6b2719adcd1fd18f58dc081c0f1a5b43963909",
"tarball": "https://registry.npmjs.org/caseless/-/caseless-0.10.0.tgz"
},
"gitHead": "9c85efef6c37d48923b79f3f282441414dd691c9",
"homepage": "https://github.com/mikeal/caseless",
"keywords": [
"headers",
"http",
"caseless"
],
"license": "BSD",
"main": "index.js",
"maintainers": [
{
"email": "mikeal.rogers@gmail.com",
"name": "mikeal"
},
{
"email": "jnylen@gmail.com",
"name": "nylen"
}
],
"name": "caseless",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/mikeal/caseless.git"
},
"scripts": {
"test": "node test.js"
},
"test": "node test.js",
"version": "0.10.0"
}

40
node_modules/caseless/test.js generated vendored Normal file
View File

@@ -0,0 +1,40 @@
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')
})