UNPKG

openapi-sdk

Version:

This library was generated with [Nx](https://nx.dev).

66 lines 2.66 kB
"use strict"; 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