diff options
author | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 |
---|---|---|
committer | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 |
commit | 703e03aba33f234712206769f57717ba7d92d23d (patch) | |
tree | 0041f04ccb75bd5379c764e9fe42249fffe75fc3 /node_modules/caseless/index.js | |
parent | ab6e257e6e9d9a483d7e86f220d8b209a2cd7753 (diff) | |
download | FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.gz FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.zst |
Added export_allowed file to make repository visible in cgit
Diffstat (limited to 'node_modules/caseless/index.js')
-rw-r--r-- | node_modules/caseless/index.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/node_modules/caseless/index.js b/node_modules/caseless/index.js new file mode 100644 index 0000000..b194734 --- /dev/null +++ b/node_modules/caseless/index.js @@ -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 +} |