UNPKG

outers

Version:

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

74 lines 3.77 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const Middleware_Constant_1 = require("../../Config/Constant/Middleware.Constant"); // Import X-Powered-By Header // Import Console from Utilities const Console_log_1 = require("../../Logs/Console.log"); // import Red Console const IP_Type_Checker_function_1 = __importDefault(require("../../Functions/IP Type Checker.function")); // Import IP Type Checker // Import Serve Function const JSON_Response_1 = require("../../Response/JSON-Response"); // Import JSON Response // Import Status Codes const Code_1 = require("../../StatusCode/Code"); // Import Status Codes // main function exports.default = (Methods) => { // Allow only PUT, POST, PATCH, DELETE methods const AllowedMethods = Methods !== null && Methods !== void 0 ? Methods : Middleware_Constant_1.IPAllowedMethods; // Allowed Methods // Convert to Upper Case in Array if any of the method is in lower case AllowedMethods.forEach((Method, Index) => { AllowedMethods[Index] = Method.toUpperCase(); // Convert to Upper Case }); return (Request, Response, Next) => { try { // Change Response X-Powered-By Header & Server Header Response.setHeader("X-Powered-By", (0, Middleware_Constant_1.XPoweredBy)()); // Set X-Powered-By Header Response.setHeader("Server", (0, Middleware_Constant_1.ServerName)()); // Set Server Header // Check if Request has Headers if (!Request.headers) { return (0, JSON_Response_1.JSONSendResponse)({ response: Response, status: false, statusCode: Code_1.StatusCode.BAD_REQUEST, Title: "Bad Request", message: "No headers provided", data: null, cookieData: undefined, contentType: "application/json", }); } // Check if Request Method is Allowed if (AllowedMethods.includes(Request.method)) { const RequesterIPaddress = Request.headers["x-forwarded-for"] || Request.connection.remoteAddress || Request.socket.remoteAddress || Request.socket.remoteAddress || Request.headers["x-real-ip"] || Request.ip; // Get Requester IP Address // Check if Requester IP is IPv4 or IPv6 const IPType = (0, IP_Type_Checker_function_1.default)(String(RequesterIPaddress)); // Get IP Type // Inject Requester IP Address Request.body.RequesterIPaddress = RequesterIPaddress; // Inject Requester IP Address Request.body.IPType = IPType; // Inject IP Type Next(); // Next Middleware } else { Next(); // Proceed Without Injecting IP Address } } catch (Error) { (0, Console_log_1.red)(Error); // Log Error (0, JSON_Response_1.JSONSendResponse)({ response: Response, status: false, Title: "Cannot Process Request", statusCode: Code_1.StatusCode.INTERNAL_SERVER_ERROR, message: "Something went wrong while processing your request. Please try again later.", data: undefined, cookieData: undefined, contentType: "application/json", }); } }; // Export main function }; //# sourceMappingURL=Base.middleware.js.map