UNPKG

summer-glove

Version:

[![npm version](https://img.shields.io/npm/v/npm-package.svg?style=flat)](https://www.npmjs.com/package/summer-glove) ## Fit like a glove 🧤 Summer-glove is a route manager, providing a quick and easy way to configure an express application. Summer-glo

39 lines (38 loc) • 2.46 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const swagger_ui_express_1 = __importDefault(require("swagger-ui-express")); const buildObjectPath_1 = __importDefault(require("../../application/util/buildObjectPath")); const SwaggerInformationCore_1 = __importDefault(require("../../application/core/SwaggerInformationCore")); const ExpressInformationCore_1 = __importDefault(require("../../application/core/ExpressInformationCore")); function SwaggerInitializer(target) { const swaggerConfig = SwaggerInformationCore_1.default.getInstance().getObjectConfig().swaggerConfig; const app = ExpressInformationCore_1.default.getInstance().getObjectConfig().mappedApi.app; configRoutes(swaggerConfig.paths); const swaggerSetup = swagger_ui_express_1.default.setup(swaggerConfig, SwaggerInformationCore_1.default.getInstance().getObjectConfig().theme?.getCss()); app.use(SwaggerInformationCore_1.default.getInstance().getObjectConfig().swaggerEndpoint, swagger_ui_express_1.default.serve, swaggerSetup); SwaggerInformationCore_1.default.getInstance().cleanObjects(); ExpressInformationCore_1.default.getInstance().cleanObjects(); } exports.default = SwaggerInitializer; function configRoutes(paths) { const mappedApi = SwaggerInformationCore_1.default.getInstance().getObjectConfig().mappedApi; const security = SwaggerInformationCore_1.default.getInstance().getObjectConfig().security; Object.keys(mappedApi).forEach((key) => { Object.keys(mappedApi[key]).forEach((key2) => { if (key2 !== "endpoint") { const endpoint = key2.split(" ")[0].toLowerCase(); const controllerName = mappedApi[key].endpoint.replace("/", "-").toUpperCase(); const statusRequest = mappedApi[key][key2].status; const controller = mappedApi[key][key2]; const doc = (0, buildObjectPath_1.default)(security, controllerName, statusRequest, controller); if (!paths[mappedApi[key].endpoint + key2.split(" ")[1]]) { paths[mappedApi[key].endpoint + key2.split(" ")[1]] = {}; } paths[mappedApi[key].endpoint + key2.split(" ")[1]][endpoint] = doc; } }); }); }