UNPKG

web-dev-server

Version:

Node.js simple http server for common development or training purposes.

87 lines 3.69 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.Cookies = void 0; var Protected_1 = require("./Protected"); var Cookies = /** @class */ (function () { function Cookies() { } Cookies.prototype.SetCookies = function (cookies) { this.cookies = cookies; return this; }; Cookies.prototype.GetCookies = function (nameReplaceFilter, valueReplaceFilter, onlyNames) { if (nameReplaceFilter === void 0) { nameReplaceFilter = "\-\._a-zA-Z0-9"; } if (valueReplaceFilter === void 0) { valueReplaceFilter = { pattern: /[\<\>\'"]/g, replace: '' }; } if (onlyNames === void 0) { onlyNames = []; } if (this.cookies == null) this.initCookies(); var result = new Map(); var noNameFiltering = !nameReplaceFilter || nameReplaceFilter === '.*'; var noValueFiltering = !valueReplaceFilter || valueReplaceFilter === '.*'; if (noNameFiltering && noValueFiltering) { if (onlyNames.length > 0) { this.cookies.forEach(function (cookie, name) { if (onlyNames.indexOf(name) != -1) result.set(name, cookie); }); } else { result = this.cookies; } return result; } this.cookies.forEach(function (cookie, name) { if (onlyNames.length > 0 && onlyNames.indexOf(name) == -1) return; var cleanedName = noNameFiltering ? name : Protected_1.Protected.CleanParamValue(name, nameReplaceFilter); var cleanedValue = noValueFiltering ? cookie : Protected_1.Protected.CleanParamValue(cookie, valueReplaceFilter); result.set(cleanedName, cleanedValue); }); return result; }; Cookies.prototype.SetCookie = function (name, value) { if (this.cookies == null) this.initCookies(); this.cookies.set(name, value == null ? '' : value); return this; }; Cookies.prototype.GetCookie = function (name, valueReplaceFilter, ifNullValue) { if (name === void 0) { name = ''; } if (valueReplaceFilter === void 0) { valueReplaceFilter = "\;\,\-\.\@\=\+\?\!\/ _a-zA-Z0-9"; } if (ifNullValue === void 0) { ifNullValue = null; } if (this.cookies == null) this.initCookies(); return Protected_1.Protected.GetParamFromCollection(this.cookies, name, false, valueReplaceFilter, ifNullValue); }; Cookies.prototype.HasCookie = function (name) { if (this.cookies == null) this.initCookies(); return this.cookies.has(name); }; /** * @summary Parse "Cookie" header into local cookies map. */ Cookies.prototype.initCookies = function () { this.cookies = new Map(); var headers = this['http'].headers, rawHeader = headers["cookie"]; if (rawHeader == null) return; var rawCookies = String(rawHeader).split(';'), rawCookie, equalPos; for (var i = 0, l = rawCookies.length; i < l; i++) { rawCookie = rawCookies[i].trim(); equalPos = rawCookie.indexOf('='); if (equalPos == -1) { this.cookies.set(rawCookie, ''); } else { this.cookies.set(rawCookie.substr(0, equalPos).trim(), rawCookie.substr(equalPos + 1).trim()); } } }; return Cookies; }()); exports.Cookies = Cookies; //# sourceMappingURL=Cookies.js.map