@routineless/nx-aws-cdk
Version:
Nx plugin for AWS CDK
63 lines • 2.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const devkit_1 = require("@nx/devkit");
const node_1 = require("@nx/node");
const path_1 = require("path");
const workspace_1 = require("../../../utils/workspace");
const normalizeOptions = (options) => {
return {
...options,
name: `${options.name}-runtime`,
directory: `${options.projectRoot}/runtime`,
};
};
const updateAwsLambdaRuntumeProjectConfiguration = (tree, options) => {
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.name);
const projectTargets = projectConfig.targets ?? {};
delete projectTargets['serve'];
delete projectTargets['build'];
projectConfig.targets = {
...projectConfig.targets,
};
(0, devkit_1.updateProjectConfiguration)(tree, options.name, projectConfig);
};
const updateAwsLambdaTsconfig = (tree, options) => {
(0, devkit_1.updateJson)(tree, `${options.directory}/tsconfig.app.json`, (tsconfig) => {
tsconfig.compilerOptions = {
...tsconfig.compilerOptions,
target: 'es2022',
module: 'es2022',
};
return tsconfig;
});
};
const addFiles = (tree, options, filesType = 'files') => {
const templateOptions = {
template: '',
};
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, 'generatorFiles', filesType), options.directory, templateOptions);
};
const awsLambdaRuntimeApplicationGenerator = async (tree, options) => {
const tasks = [];
const normalizedOptions = normalizeOptions(options);
tasks.push(await (0, node_1.applicationGenerator)(tree, {
...normalizedOptions,
projectNameAndRootFormat: 'as-provided',
e2eTestRunner: 'none',
skipFormat: true,
addPlugin: true,
}));
(0, workspace_1.deleteNodeAppRedundantDirs)(tree, normalizedOptions.directory);
addFiles(tree, normalizedOptions);
if (normalizedOptions.unitTestRunner === 'jest') {
addFiles(tree, normalizedOptions, 'jest-files');
}
updateAwsLambdaRuntumeProjectConfiguration(tree, normalizedOptions);
updateAwsLambdaTsconfig(tree, normalizedOptions);
if (!normalizedOptions.skipFormat) {
await (0, devkit_1.formatFiles)(tree);
}
return (0, devkit_1.runTasksInSerial)(...tasks);
};
exports.default = awsLambdaRuntimeApplicationGenerator;
//# sourceMappingURL=index.js.map