summer-glove
Version:
[](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
JavaScript
;
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;
}
});
});
}