@halsp/http
Version:
支持 Halsp HTTP 请求
81 lines • 2.56 kB
JavaScript
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
;