UNPKG

@halsp/http

Version:

支持 Halsp HTTP 请求

81 lines 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initHeaderHandler = void 0; function initHeaderHandler(target, getHeaders, setHeaders) { function getHeaderFromDict(key, dict) { const existKey = hasHeaderFromDict(key, dict); if (existKey) { return dict[existKey]; } } function hasHeaderFromDict(key, dict) { for (const item in dict) { if (item.toUpperCase() == key.toUpperCase()) { return item; } } return false; } target.setHeader = function (key, value) { if (value == undefined) return this; const headers = setHeaders.bind(this)(); if (Array.isArray(value)) { headers[key] = value.map((item) => typeof item == "string" ? item : String(item)); } else if (typeof value != "string") { headers[key] = String(value); } else { headers[key] = value; } return this; }; target.setHeaders = function (headers) { for (const key in headers) { const value = headers[key]; if (value != undefined) { this.setHeader(key, value); } } return this; }; target.set = function (key, value) { return this.setHeader(key, value); }; target.appendHeader = function (key, value) { const prev = getHeaderFromDict(key, setHeaders.bind(this)()); if (prev) { value = (Array.isArray(prev) ? prev : [prev]).concat(value); } return this.setHeader(key, value); }; target.append = function (key, value) { return this.appendHeader(key, value); }; target.hasHeader = function (key) { return hasHeaderFromDict(key, getHeaders.bind(this)()); }; target.has = function (key) { return this.hasHeader(key); }; target.removeHeader = function (key) { const headers = setHeaders.bind(this)(); const existKey = hasHeaderFromDict(key, headers); if (existKey) { delete headers[existKey]; } return this; }; target.remove = function (key) { return this.removeHeader(key); }; target.getHeader = function (key) { return getHeaderFromDict(key, getHeaders.bind(this)()); }; target.get = function (key) { return this.getHeader(key); }; } exports.initHeaderHandler = initHeaderHandler; //# sourceMappingURL=header-handler.js.map