UNPKG

cdkdx

Version:

Zero-config CLI for aws cdk development

85 lines 10.3 kB
"use strict"; 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 __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.CreateCommand = void 0; const chalk_1 = __importDefault(require("chalk")); const clipanion_1 = require("clipanion"); const base_command_1 = require("../base-command"); const template_1 = require("../template"); const timer_1 = require("../timer"); const git_repository_1 = require("../git-repository"); class CreateCommand extends base_command_1.BaseCommand { async execute() { const timer = new timer_1.Timer(); const template = await template_1.Template.newInstance({ cwd: this.context.cwd, version: this.context.version, type: this.type, name: this.name, }); template.createProject(); this.context.logger.log(``); this.context.logger.info(`Installing dependencies:\n${template .getDependencyNames() .map((dep) => chalk_1.default.bold.cyan(dep)) .join('\n')}\n`); await template.installDependencies(); this.context.logger.log(``); this.context.logger.done(`Dependencies installed.\n`); try { const gitRepository = new git_repository_1.GitRepository(template.getTargetPath()); if (!(await gitRepository.isInGitRepository())) { this.context.logger.info('Initializing a new git repository.\n'); await gitRepository.initializeGitRepository(); this.context.logger.done(`Git repository initialized.\n`); } } catch (e) { this.context.logger.warn('Unable to initialize git repository for your project.\n'); } timer.end(); this.context.logger.done(`Project created in ${timer.display()}.\n`); this.context.logger.info(`${chalk_1.default.bold('Awesome!')} You are now ready to start coding.\n`); this.context.logger.info(`Just change the directory: ${chalk_1.default.bold.cyan(`cd ${this.name}`)}\n`); this.context.logger.info('Happy hacking!\n'); return 0; } } CreateCommand.usage = clipanion_1.Command.Usage({ description: 'Create a new, empty CDK project from a template', details: ` This command will create a new, empty CDK project from a template. `, examples: [ ['Create a cdk app', 'npx cdkdx create app my-app'], ['Create a cdk lib', 'npx cdkdx create lib my-lib'], ['Create a jsii cdk lib', 'npx cdkdx create jsii-lib my-lib'], ], }); __decorate([ clipanion_1.Command.String({ required: true }), __metadata("design:type", String) ], CreateCommand.prototype, "type", void 0); __decorate([ clipanion_1.Command.String({ required: true }), __metadata("design:type", String) ], CreateCommand.prototype, "name", void 0); __decorate([ clipanion_1.Command.Path('create'), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise) ], CreateCommand.prototype, "execute", null); exports.CreateCommand = CreateCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLHlDQUFvQztBQUVwQyxrREFBOEM7QUFDOUMsMENBQXVDO0FBQ3ZDLG9DQUFpQztBQUNqQyxzREFBa0Q7QUFFbEQsTUFBYSxhQUFjLFNBQVEsMEJBQVc7SUFvQjVDLEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxLQUFLLEdBQUcsSUFBSSxhQUFLLEVBQUUsQ0FBQztRQUUxQixNQUFNLFFBQVEsR0FBRyxNQUFNLG1CQUFRLENBQUMsV0FBVyxDQUFDO1lBQzFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUc7WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztZQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3RCLDZCQUE2QixRQUFRO2FBQ2xDLGtCQUFrQixFQUFFO2FBQ3BCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsZUFBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2xCLENBQUM7UUFFRixNQUFNLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRXJDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUV0RCxJQUFJO1lBQ0YsTUFBTSxhQUFhLEdBQUcsSUFBSSw4QkFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBRWxFLElBQUksQ0FBQyxDQUFDLE1BQU0sYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUMsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7Z0JBRWpFLE1BQU0sYUFBYSxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBRTlDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2FBQzNEO1NBQ0Y7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDdEIseURBQXlELENBQzFELENBQUM7U0FDSDtRQUVELEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVaLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVyRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3RCLEdBQUcsZUFBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsdUNBQXVDLENBQ2pFLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3RCLDhCQUE4QixlQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQ3JFLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU3QyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7O0FBN0VNLG1CQUFLLEdBQUcsbUJBQU8sQ0FBQyxLQUFLLENBQUM7SUFDM0IsV0FBVyxFQUFFLGlEQUFpRDtJQUM5RCxPQUFPLEVBQUU7O1NBRUo7SUFDTCxRQUFRLEVBQUU7UUFDUixDQUFDLGtCQUFrQixFQUFFLDZCQUE2QixDQUFDO1FBQ25ELENBQUMsa0JBQWtCLEVBQUUsNkJBQTZCLENBQUM7UUFDbkQsQ0FBQyx1QkFBdUIsRUFBRSxrQ0FBa0MsQ0FBQztLQUM5RDtDQUNGLENBQUMsQ0FBQztBQUdIO0lBREMsbUJBQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7OzJDQUNNO0FBR3pDO0lBREMsbUJBQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7OzJDQUNkO0FBR3JCO0lBREMsbUJBQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDOzs7OzRDQTJEdEI7QUE5RUgsc0NBK0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjbGlwYW5pb24nO1xuXG5pbXBvcnQgeyBCYXNlQ29tbWFuZCB9IGZyb20gJy4uL2Jhc2UtY29tbWFuZCc7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJy4uL3RlbXBsYXRlJztcbmltcG9ydCB7IFRpbWVyIH0gZnJvbSAnLi4vdGltZXInO1xuaW1wb3J0IHsgR2l0UmVwb3NpdG9yeSB9IGZyb20gJy4uL2dpdC1yZXBvc2l0b3J5JztcblxuZXhwb3J0IGNsYXNzIENyZWF0ZUNvbW1hbmQgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIHN0YXRpYyB1c2FnZSA9IENvbW1hbmQuVXNhZ2Uoe1xuICAgIGRlc2NyaXB0aW9uOiAnQ3JlYXRlIGEgbmV3LCBlbXB0eSBDREsgcHJvamVjdCBmcm9tIGEgdGVtcGxhdGUnLFxuICAgIGRldGFpbHM6IGBcbiAgICAgICAgICAgIFRoaXMgY29tbWFuZCB3aWxsIGNyZWF0ZSBhIG5ldywgZW1wdHkgQ0RLIHByb2plY3QgZnJvbSBhIHRlbXBsYXRlLlxuICAgICAgICBgLFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICBbJ0NyZWF0ZSBhIGNkayBhcHAnLCAnbnB4IGNka2R4IGNyZWF0ZSBhcHAgbXktYXBwJ10sXG4gICAgICBbJ0NyZWF0ZSBhIGNkayBsaWInLCAnbnB4IGNka2R4IGNyZWF0ZSBsaWIgbXktbGliJ10sXG4gICAgICBbJ0NyZWF0ZSBhIGpzaWkgY2RrIGxpYicsICducHggY2RrZHggY3JlYXRlIGpzaWktbGliIG15LWxpYiddLFxuICAgIF0sXG4gIH0pO1xuXG4gIEBDb21tYW5kLlN0cmluZyh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHB1YmxpYyB0eXBlITogJ2xpYicgfCAnanNpaS1saWInIHwgJ2FwcCc7XG5cbiAgQENvbW1hbmQuU3RyaW5nKHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIG5hbWUhOiBzdHJpbmc7XG5cbiAgQENvbW1hbmQuUGF0aCgnY3JlYXRlJylcbiAgYXN5bmMgZXhlY3V0ZSgpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHRpbWVyID0gbmV3IFRpbWVyKCk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZSA9IGF3YWl0IFRlbXBsYXRlLm5ld0luc3RhbmNlKHtcbiAgICAgIGN3ZDogdGhpcy5jb250ZXh0LmN3ZCxcbiAgICAgIHZlcnNpb246IHRoaXMuY29udGV4dC52ZXJzaW9uLFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgIH0pO1xuXG4gICAgdGVtcGxhdGUuY3JlYXRlUHJvamVjdCgpO1xuXG4gICAgdGhpcy5jb250ZXh0LmxvZ2dlci5sb2coYGApO1xuXG4gICAgdGhpcy5jb250ZXh0LmxvZ2dlci5pbmZvKFxuICAgICAgYEluc3RhbGxpbmcgZGVwZW5kZW5jaWVzOlxcbiR7dGVtcGxhdGVcbiAgICAgICAgLmdldERlcGVuZGVuY3lOYW1lcygpXG4gICAgICAgIC5tYXAoKGRlcCkgPT4gY2hhbGsuYm9sZC5jeWFuKGRlcCkpXG4gICAgICAgIC5qb2luKCdcXG4nKX1cXG5gLFxuICAgICk7XG5cbiAgICBhd2FpdCB0ZW1wbGF0ZS5pbnN0YWxsRGVwZW5kZW5jaWVzKCk7XG5cbiAgICB0aGlzLmNvbnRleHQubG9nZ2VyLmxvZyhgYCk7XG5cbiAgICB0aGlzLmNvbnRleHQubG9nZ2VyLmRvbmUoYERlcGVuZGVuY2llcyBpbnN0YWxsZWQuXFxuYCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZ2l0UmVwb3NpdG9yeSA9IG5ldyBHaXRSZXBvc2l0b3J5KHRlbXBsYXRlLmdldFRhcmdldFBhdGgoKSk7XG5cbiAgICAgIGlmICghKGF3YWl0IGdpdFJlcG9zaXRvcnkuaXNJbkdpdFJlcG9zaXRvcnkoKSkpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LmxvZ2dlci5pbmZvKCdJbml0aWFsaXppbmcgYSBuZXcgZ2l0IHJlcG9zaXRvcnkuXFxuJyk7XG5cbiAgICAgICAgYXdhaXQgZ2l0UmVwb3NpdG9yeS5pbml0aWFsaXplR2l0UmVwb3NpdG9yeSgpO1xuXG4gICAgICAgIHRoaXMuY29udGV4dC5sb2dnZXIuZG9uZShgR2l0IHJlcG9zaXRvcnkgaW5pdGlhbGl6ZWQuXFxuYCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5jb250ZXh0LmxvZ2dlci53YXJuKFxuICAgICAgICAnVW5hYmxlIHRvIGluaXRpYWxpemUgZ2l0IHJlcG9zaXRvcnkgZm9yIHlvdXIgcHJvamVjdC5cXG4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aW1lci5lbmQoKTtcblxuICAgIHRoaXMuY29udGV4dC5sb2dnZXIuZG9uZShgUHJvamVjdCBjcmVhdGVkIGluICR7dGltZXIuZGlzcGxheSgpfS5cXG5gKTtcblxuICAgIHRoaXMuY29udGV4dC5sb2dnZXIuaW5mbyhcbiAgICAgIGAke2NoYWxrLmJvbGQoJ0F3ZXNvbWUhJyl9IFlvdSBhcmUgbm93IHJlYWR5IHRvIHN0YXJ0IGNvZGluZy5cXG5gLFxuICAgICk7XG5cbiAgICB0aGlzLmNvbnRleHQubG9nZ2VyLmluZm8oXG4gICAgICBgSnVzdCBjaGFuZ2UgdGhlIGRpcmVjdG9yeTogJHtjaGFsay5ib2xkLmN5YW4oYGNkICR7dGhpcy5uYW1lfWApfVxcbmAsXG4gICAgKTtcblxuICAgIHRoaXMuY29udGV4dC5sb2dnZXIuaW5mbygnSGFwcHkgaGFja2luZyFcXG4nKTtcblxuICAgIHJldHVybiAwO1xuICB9XG59XG4iXX0=