@protocolnebula/ts-openapi-generator
Version:
Build API and models from Swagger/OpenAPI to use in any project type
80 lines • 3.95 kB
JavaScript
;
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