cdkdx
Version:
Zero-config CLI for aws cdk development
100 lines (95 loc) • 8.13 kB
JavaScript
;
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