mirror of
https://github.com/thewesker/bug-em.git
synced 2025-12-22 04:51:05 -05:00
lol
This commit is contained in:
45
node_modules/caseless/README.md
generated
vendored
Normal file
45
node_modules/caseless/README.md
generated
vendored
Normal 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
65
node_modules/caseless/index.js
generated
vendored
Normal 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
90
node_modules/caseless/package.json
generated
vendored
Normal 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
40
node_modules/caseless/test.js
generated
vendored
Normal 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')
|
||||
|
||||
})
|
||||
Reference in New Issue
Block a user