outers
Version:
outers - a all in one package for your day to day use
76 lines • 4.82 kB
JavaScript
"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