UNPKG

@flowaccount/nx-aws-cdk

Version:

aws-cdk executors and generators for nx workspace

107 lines 4.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.normalizeOptions = exports.updateWorkspaceJson = exports.getBuildConfig = void 0; const devkit_1 = require("@nx/devkit"); const workspace_1 = require("@nx/workspace"); // import { toFileName } from '@nx/devkit'; const path_1 = require("path"); function getBuildConfig(options) { return { executor: '@nx/node:build', options: { outputPath: (0, devkit_1.joinPathFragments)((0, path_1.normalize)('dist'), options.appProjectRoot), package: options.appProjectRoot, tsConfig: (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'tsconfig.cdk.json'), fileReplacements: [ { replace: `${(0, devkit_1.joinPathFragments)((0, path_1.normalize)('dist'), options.appProjectRoot)}/src/environments/environment.ts`, with: `${(0, devkit_1.joinPathFragments)((0, path_1.normalize)('dist'), options.appProjectRoot)}/src/environments/environment.staging.ts`, }, ], }, configurations: { production: { optimization: true, extractLicenses: true, inspect: false, fileReplacements: [ { replace: `${(0, devkit_1.joinPathFragments)((0, path_1.normalize)('dist'), options.appProjectRoot)}/src/environments/environment.ts`, with: `${(0, devkit_1.joinPathFragments)((0, path_1.normalize)('dist'), options.appProjectRoot)}/src/environments/environment.production.ts`, }, ], }, }, }; } exports.getBuildConfig = getBuildConfig; function getCdkConfig(options, executor) { return { builder: `@flowaccount/nx-aws-cdk:${executor}`, options: { buildTarget: options.name + ':build', profile: options.profile, stackName: `staging-${options.name}`, debug: options.debug, verbose: options.verbose, output: `dist/cdkOutput/${options.appProjectRoot}/cdk.out`, }, configurations: { staging: { buildTarget: options.name + `:${executor}:staging`, }, production: { buildTarget: options.name + `:${executor}:production`, }, }, }; } function getSynthConfig(options) { return getCdkConfig(options, 'synth'); } function getDiffConfig(options) { return getCdkConfig(options, 'diff'); } function getDeployConfig(options) { return getCdkConfig(options, 'deploy'); } function getDestroyConfig(options) { return getCdkConfig(options, 'destroy'); } function updateWorkspaceJson(host, options) { const project = { root: options.appProjectRoot, sourceRoot: (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'src'), projectType: workspace_1.ProjectType.Application, prefix: options.name, schematics: {}, targets: {}, tags: {}, }; project.targets.build = getBuildConfig(options); project.targets.serve = getSynthConfig(options); project.targets.diff = getDiffConfig(options); project.targets.deploy = getDeployConfig(options); project.targets.destroy = getDestroyConfig(options); project.tags = options.parsedTags; (0, devkit_1.addProjectConfiguration)(host, options.name, project); } exports.updateWorkspaceJson = updateWorkspaceJson; function normalizeOptions(options) { const appDirectory = options.directory ? `${(0, devkit_1.names)(options.directory).fileName}/${(0, devkit_1.names)(options.name).fileName}` : (0, devkit_1.names)(options.name).fileName; const appProjectName = appDirectory.replace(new RegExp('/', 'g'), '-'); const appProjectRoot = (0, devkit_1.joinPathFragments)((0, path_1.normalize)('apps'), appDirectory); const parsedTags = options.tags ? options.tags.split(',').map((s) => s.trim()) : []; return Object.assign(Object.assign({}, options), { name: (0, devkit_1.names)(appProjectName).fileName, // frontendProject: options.frontendProject // ? toFileName(options.frontendProject) // : undefined, appProjectRoot, parsedTags }); } exports.normalizeOptions = normalizeOptions; //# sourceMappingURL=common-schematics.js.map