headers-utils
Advanced tools
Comparing version 1.2.5 to 2.0.0
"use strict"; | ||
var __read = (this && this.__read) || function (o, n) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
if (!m) return o; | ||
var i = m.call(o), r, ar = [], e; | ||
try { | ||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
} | ||
catch (error) { e = { error: error }; } | ||
finally { | ||
try { | ||
if (r && !r.done && (m = i["return"])) m.call(i); | ||
} | ||
finally { if (e) throw e.error; } | ||
} | ||
return ar; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -6,3 +22,3 @@ exports.flattenHeadersList = void 0; | ||
return list.map(function (_a) { | ||
var name = _a[0], values = _a[1]; | ||
var _b = __read(_a, 2), name = _b[0], values = _b[1]; | ||
return [name, [].concat(values).join('; ')]; | ||
@@ -9,0 +25,0 @@ }); |
import { HeadersObject, FlatHeadersObject } from './glossary'; | ||
export declare function flattenHeadersObject(obj: HeadersObject): FlatHeadersObject; | ||
export declare function flattenHeadersObject(headersObject: HeadersObject): FlatHeadersObject; |
@@ -5,4 +5,4 @@ "use strict"; | ||
var reduceHeadersObject_1 = require("./reduceHeadersObject"); | ||
function flattenHeadersObject(obj) { | ||
return reduceHeadersObject_1.reduceHeadersObject(obj, function (headers, name, value) { | ||
function flattenHeadersObject(headersObject) { | ||
return reduceHeadersObject_1.reduceHeadersObject(headersObject, function (headers, name, value) { | ||
headers[name] = [].concat(value).join('; '); | ||
@@ -9,0 +9,0 @@ return headers; |
@@ -1,4 +0,9 @@ | ||
export declare class Headers { | ||
private map; | ||
constructor(headers?: any); | ||
import { HeadersList, HeadersObject } from './glossary'; | ||
export default class HeadersPolyfill { | ||
private _headers; | ||
constructor(init?: HeadersInit | HeadersObject | HeadersList); | ||
[Symbol.iterator](): IterableIterator<[string, string]>; | ||
keys(): IterableIterator<string>; | ||
values(): IterableIterator<string>; | ||
entries(): IterableIterator<[string, string]>; | ||
/** | ||
@@ -32,5 +37,3 @@ * Sets a new value for an existing header inside a `Headers` object, or adds the header if it does not already exist. | ||
*/ | ||
forEach<ThisArg = this>(callback: (this: ThisArg, value: string, name: string, thisHeaders: this) => void, thisArg?: ThisArg): void; | ||
private normalizeName; | ||
private normalizeValue; | ||
forEach<ThisArg = this>(callback: (this: ThisArg, value: string, name: string, parent: this) => void, thisArg?: ThisArg): void; | ||
} |
"use strict"; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
var __read = (this && this.__read) || function (o, n) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
if (!m) return o; | ||
var i = m.call(o), r, ar = [], e; | ||
try { | ||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
} | ||
catch (error) { e = { error: error }; } | ||
finally { | ||
try { | ||
if (r && !r.done && (m = i["return"])) m.call(i); | ||
} | ||
finally { if (e) throw e.error; } | ||
} | ||
return ar; | ||
}; | ||
var __values = (this && this.__values) || function(o) { | ||
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; | ||
if (m) return m.call(o); | ||
if (o && typeof o.length === "number") return { | ||
next: function () { | ||
if (o && i >= o.length) o = void 0; | ||
return { value: o && o[i++], done: !o }; | ||
} | ||
}; | ||
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Headers = void 0; | ||
var HEADERS_INVALID_CHARACTERS = /[^a-z0-9\-#$%&'*+.^_`|~]/i; | ||
var Headers = /** @class */ (function () { | ||
function Headers(headers) { | ||
var normalizeHeaderName_1 = require("./utils/normalizeHeaderName"); | ||
var normalizeHeaderValue_1 = require("./utils/normalizeHeaderValue"); | ||
var HeadersPolyfill = /** @class */ (function () { | ||
function HeadersPolyfill(init) { | ||
var _this = this; | ||
this.map = {}; | ||
if ((headers === null || headers === void 0 ? void 0 : headers.constructor.name) === 'Headers') { | ||
headers.forEach(function (value, name) { | ||
this._headers = {}; | ||
/** | ||
* @note Cannot check for the `instanceof` as the `Headers` class | ||
* is only defined in the browser. | ||
*/ | ||
if ((init === null || init === void 0 ? void 0 : init.constructor.name) === 'Headers') { | ||
var initialHeaders = init; | ||
initialHeaders.forEach(function (value, name) { | ||
_this.append(name, value); | ||
}, this); | ||
} | ||
else if (Array.isArray(headers)) { | ||
headers.forEach(function (_a) { | ||
var name = _a[0], value = _a[1]; | ||
else if (Array.isArray(init)) { | ||
init.forEach(function (_a) { | ||
var _b = __read(_a, 2), name = _b[0], value = _b[1]; | ||
_this.append(name, Array.isArray(value) ? value.join(', ') : value); | ||
}); | ||
} | ||
else if (headers) { | ||
Object.getOwnPropertyNames(headers).forEach(function (name) { | ||
_this.append(name, headers[name]); | ||
else if (init) { | ||
Object.getOwnPropertyNames(init).forEach(function (name) { | ||
var value = init[name]; | ||
_this.append(name, Array.isArray(value) ? value.join(', ') : value); | ||
}); | ||
} | ||
} | ||
HeadersPolyfill.prototype[Symbol.iterator] = function () { | ||
return this.entries(); | ||
}; | ||
HeadersPolyfill.prototype.keys = function () { | ||
var _a, _b, name_1, e_1_1; | ||
var e_1, _c; | ||
return __generator(this, function (_d) { | ||
switch (_d.label) { | ||
case 0: | ||
_d.trys.push([0, 5, 6, 7]); | ||
_a = __values(Object.keys(this._headers)), _b = _a.next(); | ||
_d.label = 1; | ||
case 1: | ||
if (!!_b.done) return [3 /*break*/, 4]; | ||
name_1 = _b.value; | ||
return [4 /*yield*/, name_1]; | ||
case 2: | ||
_d.sent(); | ||
_d.label = 3; | ||
case 3: | ||
_b = _a.next(); | ||
return [3 /*break*/, 1]; | ||
case 4: return [3 /*break*/, 7]; | ||
case 5: | ||
e_1_1 = _d.sent(); | ||
e_1 = { error: e_1_1 }; | ||
return [3 /*break*/, 7]; | ||
case 6: | ||
try { | ||
if (_b && !_b.done && (_c = _a.return)) _c.call(_a); | ||
} | ||
finally { if (e_1) throw e_1.error; } | ||
return [7 /*endfinally*/]; | ||
case 7: return [2 /*return*/]; | ||
} | ||
}); | ||
}; | ||
HeadersPolyfill.prototype.values = function () { | ||
var _a, _b, value, e_2_1; | ||
var e_2, _c; | ||
return __generator(this, function (_d) { | ||
switch (_d.label) { | ||
case 0: | ||
_d.trys.push([0, 5, 6, 7]); | ||
_a = __values(Object.values(this._headers)), _b = _a.next(); | ||
_d.label = 1; | ||
case 1: | ||
if (!!_b.done) return [3 /*break*/, 4]; | ||
value = _b.value; | ||
return [4 /*yield*/, value]; | ||
case 2: | ||
_d.sent(); | ||
_d.label = 3; | ||
case 3: | ||
_b = _a.next(); | ||
return [3 /*break*/, 1]; | ||
case 4: return [3 /*break*/, 7]; | ||
case 5: | ||
e_2_1 = _d.sent(); | ||
e_2 = { error: e_2_1 }; | ||
return [3 /*break*/, 7]; | ||
case 6: | ||
try { | ||
if (_b && !_b.done && (_c = _a.return)) _c.call(_a); | ||
} | ||
finally { if (e_2) throw e_2.error; } | ||
return [7 /*endfinally*/]; | ||
case 7: return [2 /*return*/]; | ||
} | ||
}); | ||
}; | ||
HeadersPolyfill.prototype.entries = function () { | ||
var _a, _b, name_2, e_3_1; | ||
var e_3, _c; | ||
return __generator(this, function (_d) { | ||
switch (_d.label) { | ||
case 0: | ||
_d.trys.push([0, 5, 6, 7]); | ||
_a = __values(Object.keys(this._headers)), _b = _a.next(); | ||
_d.label = 1; | ||
case 1: | ||
if (!!_b.done) return [3 /*break*/, 4]; | ||
name_2 = _b.value; | ||
return [4 /*yield*/, [name_2, this.get(name_2)]]; | ||
case 2: | ||
_d.sent(); | ||
_d.label = 3; | ||
case 3: | ||
_b = _a.next(); | ||
return [3 /*break*/, 1]; | ||
case 4: return [3 /*break*/, 7]; | ||
case 5: | ||
e_3_1 = _d.sent(); | ||
e_3 = { error: e_3_1 }; | ||
return [3 /*break*/, 7]; | ||
case 6: | ||
try { | ||
if (_b && !_b.done && (_c = _a.return)) _c.call(_a); | ||
} | ||
finally { if (e_3) throw e_3.error; } | ||
return [7 /*endfinally*/]; | ||
case 7: return [2 /*return*/]; | ||
} | ||
}); | ||
}; | ||
/** | ||
* Sets a new value for an existing header inside a `Headers` object, or adds the header if it does not already exist. | ||
*/ | ||
Headers.prototype.set = function (name, value) { | ||
this.map[this.normalizeName(name)] = this.normalizeValue(value); | ||
HeadersPolyfill.prototype.set = function (name, value) { | ||
this._headers[normalizeHeaderName_1.normalizeHeaderName(name)] = normalizeHeaderValue_1.normalizeHeaderValue(value); | ||
}; | ||
@@ -35,6 +200,8 @@ /** | ||
*/ | ||
Headers.prototype.append = function (name, value) { | ||
name = this.normalizeName(name); | ||
value = this.normalizeValue(value); | ||
this.map[name] = this.has(name) ? this.map[name] + ", " + value : value; | ||
HeadersPolyfill.prototype.append = function (name, value) { | ||
name = normalizeHeaderName_1.normalizeHeaderName(name); | ||
value = normalizeHeaderValue_1.normalizeHeaderValue(value); | ||
this._headers[name] = this.has(name) | ||
? this._headers[name] + ", " + value | ||
: value; | ||
}; | ||
@@ -44,4 +211,4 @@ /** | ||
*/ | ||
Headers.prototype.delete = function (name) { | ||
delete this.map[this.normalizeName(name)]; | ||
HeadersPolyfill.prototype.delete = function (name) { | ||
delete this._headers[normalizeHeaderName_1.normalizeHeaderName(name)]; | ||
return this; | ||
@@ -52,4 +219,4 @@ }; | ||
*/ | ||
Headers.prototype.get = function (name) { | ||
return this.map[this.normalizeName(name)] || null; | ||
HeadersPolyfill.prototype.get = function (name) { | ||
return this._headers[normalizeHeaderName_1.normalizeHeaderName(name)] || null; | ||
}; | ||
@@ -59,4 +226,4 @@ /** | ||
*/ | ||
Headers.prototype.getAllHeaders = function () { | ||
return this.map; | ||
HeadersPolyfill.prototype.getAllHeaders = function () { | ||
return this._headers; | ||
}; | ||
@@ -66,4 +233,4 @@ /** | ||
*/ | ||
Headers.prototype.has = function (name) { | ||
return this.map.hasOwnProperty(this.normalizeName(name)); | ||
HeadersPolyfill.prototype.has = function (name) { | ||
return this._headers.hasOwnProperty(normalizeHeaderName_1.normalizeHeaderName(name)); | ||
}; | ||
@@ -74,26 +241,11 @@ /** | ||
*/ | ||
Headers.prototype.forEach = function (callback, thisArg) { | ||
for (var name_1 in this.map) { | ||
if (this.map.hasOwnProperty(name_1)) { | ||
callback.call(thisArg, this.map[name_1], name_1, this); | ||
HeadersPolyfill.prototype.forEach = function (callback, thisArg) { | ||
for (var name_3 in this._headers) { | ||
if (this._headers.hasOwnProperty(name_3)) { | ||
callback.call(thisArg, this._headers[name_3], name_3, this); | ||
} | ||
} | ||
}; | ||
Headers.prototype.normalizeName = function (name) { | ||
if (typeof name !== 'string') { | ||
name = String(name); | ||
} | ||
if (HEADERS_INVALID_CHARACTERS.test(name) || name.trim() === '') { | ||
throw new TypeError('Invalid character in header field name'); | ||
} | ||
return name.toLowerCase(); | ||
}; | ||
Headers.prototype.normalizeValue = function (value) { | ||
if (typeof value !== 'string') { | ||
value = String(value); | ||
} | ||
return value; | ||
}; | ||
return Headers; | ||
return HeadersPolyfill; | ||
}()); | ||
exports.Headers = Headers; | ||
exports.default = HeadersPolyfill; |
@@ -8,3 +8,3 @@ "use strict"; | ||
var resolvedValue = value.includes(',') | ||
? value.split(',').map(function (v) { return v.trim(); }) | ||
? value.split(',').map(function (value) { return value.trim(); }) | ||
: value; | ||
@@ -11,0 +11,0 @@ headersList.push([name, resolvedValue]); |
"use strict"; | ||
var __read = (this && this.__read) || function (o, n) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
if (!m) return o; | ||
var i = m.call(o), r, ar = [], e; | ||
try { | ||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
} | ||
catch (error) { e = { error: error }; } | ||
finally { | ||
try { | ||
if (r && !r.done && (m = i["return"])) m.call(i); | ||
} | ||
finally { if (e) throw e.error; } | ||
} | ||
return ar; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -11,3 +27,3 @@ exports.headersToString = void 0; | ||
var lines = list.map(function (_a) { | ||
var name = _a[0], value = _a[1]; | ||
var _b = __read(_a, 2), name = _b[0], value = _b[1]; | ||
var values = [].concat(value); | ||
@@ -14,0 +30,0 @@ return name + ": " + values.join(', '); |
@@ -1,2 +0,2 @@ | ||
export { Headers } from './Headers'; | ||
export { default as Headers } from './Headers'; | ||
export { headersToString } from './headersToString'; | ||
@@ -3,0 +3,0 @@ export { headersToList } from './headersToList'; |
@@ -5,3 +5,3 @@ "use strict"; | ||
var Headers_1 = require("./Headers"); | ||
Object.defineProperty(exports, "Headers", { enumerable: true, get: function () { return Headers_1.Headers; } }); | ||
Object.defineProperty(exports, "Headers", { enumerable: true, get: function () { return Headers_1.default; } }); | ||
var headersToString_1 = require("./headersToString"); | ||
@@ -8,0 +8,0 @@ Object.defineProperty(exports, "headersToString", { enumerable: true, get: function () { return headersToString_1.headersToString; } }); |
@@ -0,2 +1,3 @@ | ||
import HeadersPolyfill from './Headers'; | ||
import { HeadersList } from './glossary'; | ||
export declare function listToHeaders(list: HeadersList): Headers; | ||
export declare function listToHeaders(list: HeadersList): HeadersPolyfill; |
"use strict"; | ||
var __read = (this && this.__read) || function (o, n) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
if (!m) return o; | ||
var i = m.call(o), r, ar = [], e; | ||
try { | ||
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
} | ||
catch (error) { e = { error: error }; } | ||
finally { | ||
try { | ||
if (r && !r.done && (m = i["return"])) m.call(i); | ||
} | ||
finally { if (e) throw e.error; } | ||
} | ||
return ar; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.listToHeaders = void 0; | ||
var Headers_1 = require("./Headers"); | ||
function listToHeaders(list) { | ||
var headers = new Headers(); | ||
var headers = new Headers_1.default(); | ||
list.forEach(function (_a) { | ||
var name = _a[0], value = _a[1]; | ||
var _b = __read(_a, 2), name = _b[0], value = _b[1]; | ||
var values = [].concat(value); | ||
@@ -9,0 +26,0 @@ values.forEach(function (value) { |
@@ -1,5 +0,5 @@ | ||
import { Headers } from './Headers'; | ||
import HeadersPolyfill from './Headers'; | ||
/** | ||
* Converts a given headers object to a new `Headers` instance. | ||
*/ | ||
export declare function objectToHeaders(obj: Record<string, string | string[] | undefined>): Headers; | ||
export declare function objectToHeaders(headersObject: Record<string, string | string[] | undefined>): HeadersPolyfill; |
@@ -9,4 +9,4 @@ "use strict"; | ||
*/ | ||
function objectToHeaders(obj) { | ||
return reduceHeadersObject_1.reduceHeadersObject(obj, function (headers, name, value) { | ||
function objectToHeaders(headersObject) { | ||
return reduceHeadersObject_1.reduceHeadersObject(headersObject, function (headers, name, value) { | ||
var values = [].concat(value).filter(Boolean); | ||
@@ -17,4 +17,4 @@ values.forEach(function (value) { | ||
return headers; | ||
}, new Headers_1.Headers()); | ||
}, new Headers_1.default()); | ||
} | ||
exports.objectToHeaders = objectToHeaders; |
@@ -1,2 +0,2 @@ | ||
import { Headers } from './Headers'; | ||
import HeadersPolyfill from './Headers'; | ||
/** | ||
@@ -6,2 +6,2 @@ * Converts a string representation of headers (i.e. from XMLHttpRequest) | ||
*/ | ||
export declare function stringToHeaders(str: string): Headers; | ||
export declare function stringToHeaders(str: string): HeadersPolyfill; |
@@ -17,4 +17,4 @@ "use strict"; | ||
return headers; | ||
}, new Headers_1.Headers()); | ||
}, new Headers_1.default()); | ||
} | ||
exports.stringToHeaders = stringToHeaders; |
{ | ||
"name": "headers-utils", | ||
"version": "1.2.5", | ||
"description": "Utilities for creating and transforming a Headers instance", | ||
"version": "2.0.0", | ||
"description": "A Headers instance polyfill and transformation library.", | ||
"main": "lib/index.js", | ||
@@ -6,0 +6,0 @@ "types": "lib", |
@@ -6,3 +6,3 @@ [![Published version](https://img.shields.io/npm/v/headers-utils.svg)](https://www.npmjs.com/package/headers-utils) | ||
Utilities for creating and transforming a `Headers` instance. | ||
A `Headers` instance polyfill and transformation library. | ||
@@ -9,0 +9,0 @@ ## Motivation |
28907
32
595