UNPKG

alapa

Version:

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

73 lines (72 loc) 2.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateOpenAPIFile = generateOpenAPIFile; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const build_path_1 = require("./build-path"); const globals_1 = require("../../shared/globals"); const entry_1 = require("../doc/entry"); const utils_1 = require("../../utils"); const main_1 = require("../doc/schema/main"); async function generateOpenAPIFile() { const schema = await (0, main_1.buildSchema)(); (0, build_path_1.buildPaths)(); let filePath = globals_1.GlobalConfig.api.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.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) { console.log(schema); if (!openApiDefinitions.components.schemas) { openApiDefinitions.components.schemas = schema; console.log("schema not available", schema); } else { console.log("Component ", schema); 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); } }