From d324474467727fa31c76c206acb027acd8925fa1 Mon Sep 17 00:00:00 2001 From: NateN1222 Date: Sun, 3 Sep 2017 17:38:26 -0500 Subject: Implemented a default whitelist --- hash_script/node_modules/node-fetch/lib/headers.js | 141 +++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 hash_script/node_modules/node-fetch/lib/headers.js (limited to 'hash_script/node_modules/node-fetch/lib/headers.js') diff --git a/hash_script/node_modules/node-fetch/lib/headers.js b/hash_script/node_modules/node-fetch/lib/headers.js new file mode 100644 index 0000000..af20749 --- /dev/null +++ b/hash_script/node_modules/node-fetch/lib/headers.js @@ -0,0 +1,141 @@ + +/** + * headers.js + * + * Headers class offers convenient helpers + */ + +module.exports = Headers; + +/** + * Headers class + * + * @param Object headers Response headers + * @return Void + */ +function Headers(headers) { + + var self = this; + this._headers = {}; + + // Headers + if (headers instanceof Headers) { + headers = headers.raw(); + } + + // plain object + for (var prop in headers) { + if (!headers.hasOwnProperty(prop)) { + continue; + } + + if (typeof headers[prop] === 'string') { + this.set(prop, headers[prop]); + + } else if (typeof headers[prop] === 'number' && !isNaN(headers[prop])) { + this.set(prop, headers[prop].toString()); + + } else if (Array.isArray(headers[prop])) { + headers[prop].forEach(function(item) { + self.append(prop, item.toString()); + }); + } + } + +} + +/** + * Return first header value given name + * + * @param String name Header name + * @return Mixed + */ +Headers.prototype.get = function(name) { + var list = this._headers[name.toLowerCase()]; + return list ? list[0] : null; +}; + +/** + * Return all header values given name + * + * @param String name Header name + * @return Array + */ +Headers.prototype.getAll = function(name) { + if (!this.has(name)) { + return []; + } + + return this._headers[name.toLowerCase()]; +}; + +/** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ +Headers.prototype.forEach = function(callback, thisArg) { + Object.getOwnPropertyNames(this._headers).forEach(function(name) { + this._headers[name].forEach(function(value) { + callback.call(thisArg, value, name, this) + }, this) + }, this) +} + +/** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ +Headers.prototype.set = function(name, value) { + this._headers[name.toLowerCase()] = [value]; +}; + +/** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ +Headers.prototype.append = function(name, value) { + if (!this.has(name)) { + this.set(name, value); + return; + } + + this._headers[name.toLowerCase()].push(value); +}; + +/** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ +Headers.prototype.has = function(name) { + return this._headers.hasOwnProperty(name.toLowerCase()); +}; + +/** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ +Headers.prototype['delete'] = function(name) { + delete this._headers[name.toLowerCase()]; +}; + +/** + * Return raw headers (non-spec api) + * + * @return Object + */ +Headers.prototype.raw = function() { + return this._headers; +}; -- cgit v1.2.3