UNPKG

alapa

Version:

A cutting-edge web development framework designed to revolutionize the way developers build modern web applications.

53 lines (52 loc) 1.93 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.apiDoc = void 0; const globals_1 = require("../shared/globals"); const swagger_jsdoc_1 = __importDefault(require("swagger-jsdoc")); const swagger_ui_express_1 = __importDefault(require("swagger-ui-express")); const fs_1 = __importDefault(require("fs")); const utils_1 = require("../utils"); const generate_doc_1 = require("./generate-doc"); const noDocumentation = (req, res, next) => { res.send("No documentation"); next(); }; const apiDoc = () => { const apiConfig = globals_1.GlobalConfig.api; (0, generate_doc_1.generateOpenAPIFile)(); // Import the swagger configuration file dynamically let options; if (apiConfig.openApiOptions) { options = apiConfig.openApiOptions; } else if (apiConfig.openapiDefinitionFile) { try { const swaggerDefinition = JSON.parse(fs_1.default.readFileSync(`${globals_1.GlobalConfig.api.openapiDefinitionFile}`, "utf8")); options = { definition: swaggerDefinition, // Changed import to require apis: [], // }; } catch (error) { utils_1.Logger.error(error); return [noDocumentation]; } } else if (apiConfig.openApiDefinitions) { options = { definition: apiConfig.openApiDefinitions, apis: [], // }; } if (options) { // Generate Swagger specification const swaggerSpec = (0, swagger_jsdoc_1.default)(options); // Set up Swagger UI return [swagger_ui_express_1.default.serve, swagger_ui_express_1.default.setup(swaggerSpec)]; // Corrected object key names } return [noDocumentation]; }; exports.apiDoc = apiDoc;