UNPKG

cdkdx

Version:

Zero-config CLI for aws cdk development

100 lines (95 loc) 8.13 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NodeCommand = void 0; const path = __importStar(require("path")); const clipanion_1 = require("clipanion"); const dotenv_1 = require("dotenv"); const execa_1 = __importDefault(require("execa")); const ts_config_1 = require("../ts-config"); const base_command_1 = require("../base-command"); class NodeCommand extends base_command_1.BaseProjectCommand { async execute() { const tsConfig = ts_config_1.TsConfig.fromJsiiTemplate({ outDir: './lib', include: ['src'], exclude: ['src/lambdas', 'src/**/__tests__'], }); await tsConfig.writeJson(path.join(this.context.cwd, 'tsconfig.json'), { overwriteExisting: false, }); const bundleExitCode = await this.cli.run(['bundle']); if (bundleExitCode !== 0) return bundleExitCode; const command = require.resolve('ts-node/dist/bin'); const args = [this.script]; (0, dotenv_1.config)(); //.env await (0, execa_1.default)(command, args, { stdio: ['ignore', 'inherit', 'inherit'], env: { LAMBDAS: this.projectInfo.lambdasOutPath, LAYERS: this.projectInfo.lambdasOutPath, ...process.env, }, }); return 0; } } NodeCommand.usage = clipanion_1.Command.Usage({ description: 'Execute cdk apps', details: ` This command bundles the lambdas, compiles the app and adds support for .env files to the cdk app. It is usually specified in the cdk.json file: // cdk.json { "app": "cdkdx node src/your-app.ts", "context": ... } `, }); __decorate([ clipanion_1.Command.String({ required: true }), __metadata("design:type", String) ], NodeCommand.prototype, "script", void 0); __decorate([ clipanion_1.Command.Path('node'), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise) ], NodeCommand.prototype, "execute", null); exports.NodeCommand = NodeCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL25vZGUtY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE2QjtBQUM3Qix5Q0FBb0M7QUFDcEMsbUNBQWdDO0FBQ2hDLGtEQUEwQjtBQUUxQiw0Q0FBd0M7QUFDeEMsa0RBQXFEO0FBRXJELE1BQWEsV0FBWSxTQUFRLGlDQUFrQjtJQXVCakQsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLFFBQVEsR0FBRyxvQkFBUSxDQUFDLGdCQUFnQixDQUFDO1lBQ3pDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQztTQUM3QyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsRUFBRTtZQUNyRSxpQkFBaUIsRUFBRSxLQUFLO1NBQ3pCLENBQUMsQ0FBQztRQUVILE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXRELElBQUksY0FBYyxLQUFLLENBQUM7WUFBRSxPQUFPLGNBQWMsQ0FBQztRQUVoRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDcEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0IsSUFBQSxlQUFNLEdBQUUsQ0FBQyxDQUFDLE1BQU07UUFFaEIsTUFBTSxJQUFBLGVBQUssRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ3pCLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO1lBQ3ZDLEdBQUcsRUFBRTtnQkFDSCxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjO2dCQUN4QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjO2dCQUN2QyxHQUFHLE9BQU8sQ0FBQyxHQUFHO2FBQ2Y7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7O0FBcERNLGlCQUFLLEdBQUcsbUJBQU8sQ0FBQyxLQUFLLENBQUM7SUFDM0IsV0FBVyxFQUFFLGtCQUFrQjtJQUMvQixPQUFPLEVBQUU7Ozs7Ozs7Ozs7Ozs7S0FhUjtDQUNGLENBQUMsQ0FBQztBQUdIO0lBREMsbUJBQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7OzJDQUNaO0FBR3ZCO0lBREMsbUJBQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDOzs7OzBDQStCcEI7QUFyREgsa0NBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjbGlwYW5pb24nO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZG90ZW52JztcbmltcG9ydCBleGVjYSBmcm9tICdleGVjYSc7XG5cbmltcG9ydCB7IFRzQ29uZmlnIH0gZnJvbSAnLi4vdHMtY29uZmlnJztcbmltcG9ydCB7IEJhc2VQcm9qZWN0Q29tbWFuZCB9IGZyb20gJy4uL2Jhc2UtY29tbWFuZCc7XG5cbmV4cG9ydCBjbGFzcyBOb2RlQ29tbWFuZCBleHRlbmRzIEJhc2VQcm9qZWN0Q29tbWFuZCB7XG4gIHN0YXRpYyB1c2FnZSA9IENvbW1hbmQuVXNhZ2Uoe1xuICAgIGRlc2NyaXB0aW9uOiAnRXhlY3V0ZSBjZGsgYXBwcycsXG4gICAgZGV0YWlsczogYFxuICAgICAgVGhpcyBjb21tYW5kIGJ1bmRsZXMgdGhlIGxhbWJkYXMsIGNvbXBpbGVzIHRoZSBhcHAgYW5kIGFkZHMgc3VwcG9ydCBmb3IgLmVudiBmaWxlcyB0byB0aGUgY2RrIGFwcC5cbiAgICAgIEl0IGlzIHVzdWFsbHkgc3BlY2lmaWVkIGluIHRoZSBjZGsuanNvbiBmaWxlOlxuICAgICAgXG4gICAgICAvLyBjZGsuanNvblxuXG4gICAgICB7XG5cbiAgICAgICAgXCJhcHBcIjogXCJjZGtkeCBub2RlIHNyYy95b3VyLWFwcC50c1wiLFxuXG4gICAgICAgIFwiY29udGV4dFwiOiAuLi5cbiAgICAgICAgXG4gICAgICB9XG4gICAgYCxcbiAgfSk7XG5cbiAgQENvbW1hbmQuU3RyaW5nKHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIHNjcmlwdCE6IHN0cmluZztcblxuICBAQ29tbWFuZC5QYXRoKCdub2RlJylcbiAgYXN5bmMgZXhlY3V0ZSgpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHRzQ29uZmlnID0gVHNDb25maWcuZnJvbUpzaWlUZW1wbGF0ZSh7XG4gICAgICBvdXREaXI6ICcuL2xpYicsXG4gICAgICBpbmNsdWRlOiBbJ3NyYyddLFxuICAgICAgZXhjbHVkZTogWydzcmMvbGFtYmRhcycsICdzcmMvKiovX190ZXN0c19fJ10sXG4gICAgfSk7XG5cbiAgICBhd2FpdCB0c0NvbmZpZy53cml0ZUpzb24ocGF0aC5qb2luKHRoaXMuY29udGV4dC5jd2QsICd0c2NvbmZpZy5qc29uJyksIHtcbiAgICAgIG92ZXJ3cml0ZUV4aXN0aW5nOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJ1bmRsZUV4aXRDb2RlID0gYXdhaXQgdGhpcy5jbGkucnVuKFsnYnVuZGxlJ10pO1xuXG4gICAgaWYgKGJ1bmRsZUV4aXRDb2RlICE9PSAwKSByZXR1cm4gYnVuZGxlRXhpdENvZGU7XG5cbiAgICBjb25zdCBjb21tYW5kID0gcmVxdWlyZS5yZXNvbHZlKCd0cy1ub2RlL2Rpc3QvYmluJyk7XG4gICAgY29uc3QgYXJncyA9IFt0aGlzLnNjcmlwdF07XG5cbiAgICBjb25maWcoKTsgLy8uZW52XG5cbiAgICBhd2FpdCBleGVjYShjb21tYW5kLCBhcmdzLCB7XG4gICAgICBzdGRpbzogWydpZ25vcmUnLCAnaW5oZXJpdCcsICdpbmhlcml0J10sXG4gICAgICBlbnY6IHtcbiAgICAgICAgTEFNQkRBUzogdGhpcy5wcm9qZWN0SW5mby5sYW1iZGFzT3V0UGF0aCxcbiAgICAgICAgTEFZRVJTOiB0aGlzLnByb2plY3RJbmZvLmxhbWJkYXNPdXRQYXRoLFxuICAgICAgICAuLi5wcm9jZXNzLmVudixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gMDtcbiAgfVxufVxuIl19