UNPKG

@protocolnebula/ts-openapi-generator

Version:

Build API and models from Swagger/OpenAPI to use in any project type

80 lines 3.95 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateAPIFiles = void 0; const fs = require("fs-extra"); const file_reader_service_1 = require("./services/parsers/file-reader.service"); const api_parser_service_1 = require("./services/parsers/open-api-v3/api-parser.service"); const components_parser_service_1 = require("./services/parsers/open-api-v3/components-parser.service"); const api_writter_service_1 = require("./services/writters/api-writter.service"); const model_writter_service_1 = require("./services/writters/model-writter.service"); const entities_store_1 = require("./stores/entities.store"); // Read the file function generateAPIFiles(config) { return __awaiter(this, void 0, void 0, function* () { try { // Check if the template does not exist config.templatePath; console.log(''); if (config.cleanFolder) { console.log('Removing previously generated data...'); fs.removeSync(config.exportPath); } else { console.log('no-clean flag received, clean folder skipped'); } console.log(''); console.log('Opening file:', config.fileURI); const fileParser = new file_reader_service_1.FileReaderService(config.fileURI, config); console.log('Parsing file...'); console.log(''); const documentParsed = yield fileParser.readFile(); fileParser.showDocumentInfo(); const modelParser = new components_parser_service_1.ComponentsParserService(documentParsed, entities_store_1.Store); modelParser.process(); const apiParser = new api_parser_service_1.APIParserService(documentParsed, entities_store_1.Store); apiParser.process(); console.info('Read complete'); console.info(''); if (config.template) { console.info('Generating files'); const modelWritter = new model_writter_service_1.ModelWritterService(entities_store_1.Store, config); modelWritter.write(); const apiWritter = new api_writter_service_1.ApiWritterService(entities_store_1.Store, config); apiWritter.write(); console.info('Files generation finished'); } else { console.info('No template specified, no APIs/MODELs will be generated'); } if (config.mock) { console.info('Generating mock files'); const generator = config.mock.generateBuilder(); yield generator.generate(); console.log(); console.info('Mock files generation finished'); } console.log(); } catch (exception) { console.error('FATAL ERROR'); console.error(exception); // Close up to three levels console.groupEnd(); console.groupEnd(); console.groupEnd(); console.log(''); console.error('Application stopped'); } }); } exports.generateAPIFiles = generateAPIFiles; //# sourceMappingURL=main.js.map