UNPKG

@trumbitta/nx-plugin-openapi

Version:

[![NPM Version](https://badge.fury.io/js/%40trumbitta%2Fnx-plugin-openapi.svg)](https://www.npmjs.com/@trumbitta/nx-plugin-openapi) [![License](https://img.shields.io/npm/l/@trumbitta/nx-plugin-openapi)]()

67 lines 3.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const devkit_1 = require("@nrwl/devkit"); const cross_spawn_1 = require("cross-spawn"); const fs_1 = require("fs"); const delete_output_dir_1 = require("../../utils/delete-output-dir"); function runExecutor(options, context) { var _a; return tslib_1.__awaiter(this, void 0, void 0, function* () { const outputDir = context.workspace.projects[context.projectName].sourceRoot; const root = context.root; devkit_1.logger.info(`Deleting outputDir ${outputDir}...`); delete_output_dir_1.deleteOutputDir(root, outputDir); devkit_1.logger.info(`Done deleting outputDir ${outputDir}.`); yield generateSources((_a = options.useDockerBuild) !== null && _a !== void 0 ? _a : false, options.sourceSpecPathOrUrl, options.sourceSpecUrlAuthorizationHeaders, options.generator, options.additionalProperties, options.globalProperties, options.typeMappings, options.silent, outputDir); return { success: true }; }); } exports.default = runExecutor; function generateSources(useDockerBuild, apiSpecPathOrUrl, apiSpecAuthorizationHeaders, generator, additionalProperties, globalProperties, typeMappings, silent, outputDir) { return tslib_1.__awaiter(this, void 0, void 0, function* () { fs_1.mkdirSync(outputDir, { recursive: true }); return new Promise((resolve, reject) => { var _a, _b; const { command, args } = useDockerBuild ? { command: 'docker', args: ['run', '--rm', '-v', `${process.cwd()}:/local`, '-w', '/local', 'openapitools/openapi-generator-cli'], } : { command: 'npx', args: ['openapi-generator-cli'] }; args.push('generate', '-i', apiSpecPathOrUrl, '-g', generator, '-o', outputDir); if (additionalProperties) { args.push('--additional-properties', additionalProperties); } if (apiSpecAuthorizationHeaders) { args.push('--auth', apiSpecAuthorizationHeaders); } if (typeMappings) { args.push('--type-mappings', typeMappings); } if (globalProperties) { args.push('--global-property', globalProperties); } devkit_1.logger.info(`[command]: ${command} ${args.join(' ')}`); const child = cross_spawn_1.spawn(command, args, { stdio: silent ? 'ignore' : 'pipe' }); (_a = child.stdout) === null || _a === void 0 ? void 0 : _a.on('data', (data) => { devkit_1.logger.info(`[stdout]: ${data}`); }); (_b = child.stderr) === null || _b === void 0 ? void 0 : _b.on('data', (data) => { devkit_1.logger.error(`[stderr]: ${data}`); }); child.on('error', (err) => { reject(err); }); child.on('exit', (code) => { if (code === 0) { resolve(code); } else { reject(code); } }); }); }); } //# sourceMappingURL=executor.js.map