openapi-sdk
Version:
This library was generated with [Nx](https://nx.dev).
66 lines • 2.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.runBuilder = void 0;
const tslib_1 = require("tslib");
/* eslint-disable @typescript-eslint/no-explicit-any */
const architect_1 = require("@angular-devkit/architect");
const rxjs_1 = require("rxjs");
const operators_1 = require("rxjs/operators");
const child_process_1 = require("child_process");
const path_1 = require("path");
const util_1 = require("util");
const normalize_1 = require("../../utils/normalize");
function exec(command, args, logger) {
logger.error(`Running: ${command}, with args: ${args}`);
return new Promise((resolve, reject) => {
const { status, signal, output: [, stdout, stderr], } = child_process_1.spawnSync(command, args, {
shell: true,
});
logger.info(util_1.inspect({
status,
signal,
stdout: stdout.toString(),
stderr: stderr.toString(),
}));
if (status !== 0) {
logger.error(`Error building: '${command}'`);
logger.error(`exit code: ${status}`);
return reject(new Error(`Program exit: ${status}:${signal}`));
}
logger.info(`Success building: '${command}'`);
logger.error(`exit code: ${status}`);
return resolve({ success: status === 0 });
});
}
function runBuilder(options, context) {
return rxjs_1.from(normalize_1.getSourceRoot(context)).pipe(operators_1.mergeMap((sourceRoot) => tslib_1.__awaiter(this, void 0, void 0, function* () {
const yamlFile = path_1.join(context.workspaceRoot, sourceRoot, 'openapi.yml');
const outSrc = path_1.join(context.workspaceRoot, sourceRoot, 'src');
return {
sourceRoot,
result: yield exec('npx', [
`openapi-generator`,
'generate',
'-i',
yamlFile,
'-g',
'typescript-axios',
`--additional-properties=supportsES6=true,withInterfaces=true`,
'-o',
outSrc,
], context.logger)
};
})), operators_1.mergeMap(({ sourceRoot }) => tslib_1.__awaiter(this, void 0, void 0, function* () {
const cwd = process.cwd();
process.chdir(sourceRoot);
const result = yield exec('npx', ['tsc'], context.logger);
process.chdir(cwd);
return result;
})), operators_1.map((result) => {
context.logger.info('Builder ran');
return result;
}));
}
exports.runBuilder = runBuilder;
exports.default = architect_1.createBuilder(runBuilder);
//# sourceMappingURL=builder.js.map