alapa
Version:
A cutting-edge web development framework designed to revolutionize the way developers build modern web applications.
53 lines (52 loc) • 1.92 kB
JavaScript
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_1 = require("../generate");
const noDocumentation = (req, res, next) => {
res.send("No documentation");
next();
};
const apiDoc = () => {
const apiConfig = globals_1.GlobalConfig.api;
(0, generate_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;
;