UNPKG

outers

Version:

outers - a all in one package for your day to day use

76 lines 4.82 kB
"use strict"; /* eslint-disable @typescript-eslint/no-explicit-any */ // Global Cookies Type var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _FileResponse_Response, _FileResponse_rootPATH, _FileResponse_StatusCode, _FileResponse_cookieData, _FileResponse_contentType; Object.defineProperty(exports, "__esModule", { value: true }); const Response_Constant_1 = require("../../Config/Constant/Response.Constant"); // Import JPG_REGEX // Global File Responser Class For Create Response to Client class FileResponse { constructor(Response, rootPATH, contentType, StatusCode, cookieData) { // Readonly Properties _FileResponse_Response.set(this, void 0); // Response Object _FileResponse_rootPATH.set(this, void 0); // Root Name // Private Properties _FileResponse_StatusCode.set(this, void 0); // Status Code _FileResponse_cookieData.set(this, void 0); // Cookie Data _FileResponse_contentType.set(this, void 0); // Content Type // Constructor __classPrivateFieldSet(this, _FileResponse_Response, Response, "f"); // Set Response __classPrivateFieldSet(this, _FileResponse_rootPATH, rootPATH, "f"); // Set Root Name __classPrivateFieldSet(this, _FileResponse_StatusCode, StatusCode, "f"); // Set Status Code __classPrivateFieldSet(this, _FileResponse_contentType, contentType, "f"); // Set Content Type __classPrivateFieldSet(this, _FileResponse_cookieData, cookieData, "f"); // Set Cookie Data this.setContentType(); // Set Content Type } // Send File Response SendFile(FileName, StatusCode, CookieData) { // Set Cookie Data to Response if it exists if (__classPrivateFieldGet(this, _FileResponse_cookieData, "f")) { __classPrivateFieldGet(this, _FileResponse_cookieData, "f").forEach((CookieItems) => { __classPrivateFieldGet(this, _FileResponse_Response, "f").cookie(CookieItems.name, CookieItems.value, CookieItems.options); // sets cookie for each cookie in cookieData }); } // Check if Status Code is available then override the default status code if (StatusCode) { __classPrivateFieldSet(this, _FileResponse_StatusCode, StatusCode, "f"); // Set Status Code } // Check if Cookie Data is available then set the cookie data if (CookieData) { CookieData.forEach(({ name, value, options }) => { __classPrivateFieldGet(this, _FileResponse_Response, "f").cookie(name, value, options); // sets cookie for each cookie in cookieData }); } // Send File Response __classPrivateFieldGet(this, _FileResponse_Response, "f") .status(Number(__classPrivateFieldGet(this, _FileResponse_StatusCode, "f"))) .sendFile(FileName, { root: __classPrivateFieldGet(this, _FileResponse_rootPATH, "f") }); // sends response with file } /** * Sets the content type of the response. * @private */ setContentType() { if (__classPrivateFieldGet(this, _FileResponse_contentType, "f")) { for (const Type of Response_Constant_1.MIME_Types) { if (Type.toLowerCase().includes(__classPrivateFieldGet(this, _FileResponse_contentType, "f").toLowerCase())) { __classPrivateFieldGet(this, _FileResponse_Response, "f").setHeader("Content-Type", Type); break; } } } } } _FileResponse_Response = new WeakMap(), _FileResponse_rootPATH = new WeakMap(), _FileResponse_StatusCode = new WeakMap(), _FileResponse_cookieData = new WeakMap(), _FileResponse_contentType = new WeakMap(); exports.default = FileResponse; //# sourceMappingURL=File-Response.class.js.map