@trumbitta/nx-plugin-openapi
Version:
[](https://www.npmjs.com/@trumbitta/nx-plugin-openapi) []()
67 lines • 3.27 kB
JavaScript
;
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