UNPKG

alapa

Version:

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

79 lines (78 loc) 2.84 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateApiDocs = void 0; exports.generateOpenAPIFile = generateOpenAPIFile; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const main_1 = require("./schema/main"); const path_2 = require("./builder/path"); const globals_1 = require("../../shared/globals"); const utils_1 = require("../../utils"); const entry_1 = require("./builder/entry"); async function generateOpenAPIFile() { const schema = await (0, main_1.buildSchema)(); (0, path_2.buildPaths)(); let filePath = globals_1.GlobalConfig.api?.docs?.openapiDefinitionFile; if (!filePath) filePath = "openapi.json"; const dir = path_1.default.dirname(filePath); if (!fs_1.default.existsSync(dir)) { fs_1.default.mkdirSync(dir, { recursive: true }); } let openApiDefinitions = globals_1.GlobalConfig.api.docs?.openApiDefinitions; if (!openApiDefinitions) { openApiDefinitions = { openapi: "3.0.0", version: "1.0.0", servers: [ { url: "http://localhost:3000/api", description: "Development Server server", }, ], info: { title: "API Documentation", version: "1.0.0", description: "API documentation for the application", }, paths: entry_1.openApiDefinitionsPaths, components: { schemas: schema, }, }; } else { if (openApiDefinitions.components) { if (!openApiDefinitions.components.schemas) { openApiDefinitions.components.schemas = schema; } else { openApiDefinitions.components.schemas = { ...openApiDefinitions.components.schemas, ...schema, }; } } if (!openApiDefinitions.paths) { openApiDefinitions.paths = entry_1.openApiDefinitionsPaths; } } // Append the message to the file try { fs_1.default.writeFileSync(filePath, JSON.stringify(openApiDefinitions)); } catch (e) { utils_1.Logger.error(`Error writing ${filePath} to ${openApiDefinitions}`, e); } } const generateApiDocs = async (config) => { if (config) (0, globals_1.setGlobalConfig)(config); utils_1.Logger.info("Generating API documentation..."); await generateOpenAPIFile(); utils_1.Logger.success("API documentation generated successfully"); }; exports.generateApiDocs = generateApiDocs;