UNPKG

@halsp/http

Version:

支持 Halsp HTTP 请求

81 lines 2.39 kB
"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