@halsp/http
Version:
支持 Halsp HTTP 请求
81 lines • 2.39 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@halsp/core");
const methods_1 = require("../methods.cjs");
const header_handler_1 = require("./header-handler.cjs");
const headersMap = new WeakMap();
Object.defineProperty(core_1.Request.prototype, "headers", {
configurable: true,
enumerable: true,
get: function () {
if (!headersMap.has(this)) {
headersMap.set(this, {});
}
return headersMap.get(this);
},
});
const methodMap = new WeakMap();
Object.defineProperty(core_1.Request.prototype, "overrideMethod", {
configurable: true,
enumerable: true,
get: function () {
const method = methodMap.get(this);
if (method && method.toUpperCase() != this.method.toUpperCase()) {
return method;
}
},
});
Object.defineProperty(core_1.Request.prototype, "method", {
configurable: true,
enumerable: true,
get: function () {
if (!methodMap.has(this)) {
methodMap.set(this, methods_1.HttpMethods.any);
}
const ovrdHeader = this.getHeader("X-HTTP-Method-Override");
if (ovrdHeader) {
if (Array.isArray(ovrdHeader)) {
return ovrdHeader[0].toUpperCase();
}
else {
return ovrdHeader.toUpperCase();
}
}
return methodMap.get(this);
},
});
core_1.Request.prototype.setMethod = function (val) {
methodMap.set(this, val?.toUpperCase());
return this;
};
const queryMap = new WeakMap();
Object.defineProperty(core_1.Request.prototype, "query", {
configurable: true,
enumerable: true,
get: function () {
if (!queryMap.has(this)) {
queryMap.set(this, {});
}
return queryMap.get(this);
},
});
core_1.Request.prototype.setQuery = function (key, value) {
const query = this.query;
if (typeof key == "string") {
query[key] = value ?? "";
}
else {
const query = key;
Object.keys(query).forEach((key) => {
const value = query[key];
this.setQuery(key, value);
});
}
return this;
};
(0, header_handler_1.initHeaderHandler)(core_1.Request.prototype, function () {
return this.headers;
}, function () {
return this.headers;
});
//# sourceMappingURL=request.js.map