UNPKG

@flowaccount/nx-aws-cdk

Version:

aws-cdk executors and generators for nx workspace

121 lines 5.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildTarget = void 0; const tslib_1 = require("tslib"); const aws_cdk_core_1 = require("@flowaccount/aws-cdk-core"); const path_1 = require("path"); const aws_cdk_core_2 = require("@flowaccount/aws-cdk-core"); const devkit_1 = require("@nx/devkit"); function runSynthExecutor(options, context, awscdkClient = new aws_cdk_core_1.AwsCdkClient((0, aws_cdk_core_1.awsCdkFactory)())) { return tslib_1.__awaiter(this, void 0, void 0, function* () { devkit_1.logger.info(`Building the cdk application`); const iterator = yield buildTarget(options, context); const buildOutput = (yield iterator.next()).value; if (!buildOutput.success) { return { success: false, }; } devkit_1.logger.info(`output file ${buildOutput.outfile}`); devkit_1.logger.info('Preparing cdk deploy command'); // const nxProjectConfiguration = getExecutedProjectConfiguration(context); awscdkClient.cwd = context.cwd; awscdkClient.printSdkVersion(); options.output = options.output ? (0, path_1.resolve)(context.root, options.output) : (0, path_1.resolve)(context.root, 'dist/cdk.out'); const deployOptionFlag = options; const cdkOptionFlag = options; cdkOptionFlag.app = `node ${buildOutput.outfile}`; const deployOption = (0, aws_cdk_core_1.getDeployOptions)(deployOptionFlag); const cdkOption = (0, aws_cdk_core_2.getCdkOptions)(cdkOptionFlag); // argument const argsss = options; if (argsss) { process.env.serviceName = argsss['serviceName']; process.env.targetGroupArn = argsss['targetGroupArn']; process.env.secretArn = argsss['secretArn']; process.env.asgName = argsss['asgName']; process.env.portMap = argsss['portMap']; process.env.site = argsss['site']; process.env.stage = argsss['stage']; process.env.imageName = argsss['imageName']; process.env.cloudmapServiceName = argsss['cloudmapServiceName']; process.env.cloudmapServiceArn = argsss['cloudmapServiceArn']; process.env.cloudmapServiceId = argsss['cloudmapServiceId']; process.env.cpu = argsss['cpu']; process.env.memory = argsss['memory']; process.env.useServiceDiscovery = argsss['useServiceDiscovery']; process.env.existingCluster = argsss['existingCluster']; process.env.keyPairName = argsss['keyPairName']; process.env.existingRole = argsss['existingRole']; process.env.owner = argsss['owner']; } // require('dotenv-json')(argsss) // cdkOption.push({ flag: "serviceName", value: argsss["serviceName"] }); // cdkOption.push({ flag: "targetGroupArn", value: argsss["targetGroupArn"] }); // cdkOption.push({ flag: "secretArn", value: argsss["secretArn"] }); devkit_1.logger.info(cdkOption); // in cdkOption MUST already have the service-name argument from process.argv -- success! // in environment.ts inside dotnet.workspace in environment.sandbox.ts // usage is const serviceName = process.argv["service-name"] awscdkClient.deploy(`${options.stackName}`, cdkOption, deployOption); return { success: true, }; }); } exports.default = runSynthExecutor; function buildTarget(options, context) { return tslib_1.__asyncGenerator(this, arguments, function* buildTarget_1() { var _a, e_1, _b, _c; try { for (var _d = true, _e = tslib_1.__asyncValues(startBuild(options, context)), _f; _f = yield tslib_1.__await(_e.next()), _a = _f.done, !_a; _d = true) { _c = _f.value; _d = false; const event = _c; if (!event.success) { devkit_1.logger.error('There was an error with the build. See above.'); devkit_1.logger.info(`${event.outfile} was not restarted.`); } yield yield tslib_1.__await(event); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (!_d && !_a && (_b = _e.return)) yield tslib_1.__await(_b.call(_e)); } finally { if (e_1) throw e_1.error; } } }); } exports.buildTarget = buildTarget; function startBuild(options, context) { return tslib_1.__asyncGenerator(this, arguments, function* startBuild_1() { const buildTarget = (0, devkit_1.parseTargetString)(options.buildTarget, context.projectGraph); yield tslib_1.__await(yield* tslib_1.__asyncDelegator(tslib_1.__asyncValues(yield tslib_1.__await((0, devkit_1.runExecutor)(buildTarget, { // watch: options.watch, }, context))))); }); } // export const getExecutedProjectConfiguration = (context: ExecutorContext) => // context.workspace.projects[context.projectName as string]; function parseArgs() { const args = process.argv; return args .map((t) => t.trim()) .reduce((m, c) => { if (c.startsWith('--')) { const [key, value] = c.substring(2).split('='); if (!key || !value) { throw new Error(`Invalid args: ${args}`); } if (!m) m = {}; m[key] = value; return m; } }, {}); } //# sourceMappingURL=deploy.executor.js.map