@routineless/nx-aws-cdk
Version:
Nx plugin for AWS CDK
46 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.cdkBuildExecutor = void 0;
const tslib_1 = require("tslib");
const js_1 = require("@nx/js");
const esbuild = tslib_1.__importStar(require("esbuild"));
const fs_extra_1 = require("fs-extra");
const build_esbuild_options_1 = require("./lib/build-esbuild-options");
async function* cdkBuildExecutor(options, context) {
if (options.deleteOutputPath)
(0, fs_extra_1.removeSync)(options.outputPath);
const { errors } = await runTypeCheck(options, context);
if (errors && errors.length > 0) {
yield { success: false };
return;
}
const esbuildOptions = (0, build_esbuild_options_1.buildEsbuildOptions)(options, context);
const buildResult = await esbuild.build(esbuildOptions);
yield {
success: buildResult.errors.length === 0,
};
}
exports.cdkBuildExecutor = cdkBuildExecutor;
function getTypeCheckOptions(options, context) {
const { tsConfig } = options;
const typeCheckOptions = {
// TODO(jack): Add support for d.ts declaration files -- once the `@nx/js:tsc` changes are in we can use the same logic.
mode: 'noEmit',
tsConfigPath: tsConfig,
// outDir: outputPath,
workspaceRoot: context.root,
rootDir: context.root,
};
return typeCheckOptions;
}
async function runTypeCheck(options, context) {
const { errors, warnings } = await (0, js_1.runTypeCheck)(getTypeCheckOptions(options, context));
const hasErrors = errors && errors.length > 0;
const hasWarnings = warnings && warnings.length > 0;
if (hasErrors || hasWarnings) {
await (0, js_1.printDiagnostics)(errors, warnings);
}
return { errors, warnings };
}
exports.default = cdkBuildExecutor;
//# sourceMappingURL=index.js.map