UNPKG

cdkdx

Version:

Zero-config CLI for aws cdk development

98 lines 10.6 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.UpgradeCdkCommand = void 0; const clipanion_1 = require("clipanion"); const latest_version_1 = __importDefault(require("latest-version")); const semver_1 = require("../semver"); const base_command_1 = require("../base-command"); class UpgradeCdkCommand extends base_command_1.BaseProjectCommand { constructor() { super(...arguments); this.dryRun = false; this.skipDependencies = false; this.skipDevDependencies = false; this.skipPeerDependencies = false; } async execute() { var _a, _b; const cdkVersion = (_a = this.version) !== null && _a !== void 0 ? _a : (await (0, latest_version_1.default)('@aws-cdk/core')); const versionSpec = semver_1.Semver[(_b = this.mode) !== null && _b !== void 0 ? _b : 'caret'](cdkVersion).spec; if (!this.skipDependencies) { this.context.stdout.write('\nUpgrade dependencies:\n'); this.upgradeCdk(this.projectInfo.dependencies, versionSpec); } if (!this.skipDevDependencies) { this.context.stdout.write('\nUpgrade devDependencies:\n'); this.upgradeCdk(this.projectInfo.devDependencies, versionSpec); } if (!this.skipPeerDependencies) { this.context.stdout.write('\nUpgrade peerDependencies:\n'); this.upgradeCdk(this.projectInfo.peerDependencies, versionSpec); } if (!this.dryRun) { await this.projectInfo.syncPkgJson(); this.context.logger.done(`Cdk versions upgraded to ${versionSpec}.\n`); } return 0; } upgradeCdk(dependencies, versionSpec) { if (!dependencies) return; Object.keys(dependencies).forEach((key) => { if (key.startsWith('@aws-cdk/') || key === 'aws-cdk') { this.context.stdout.write(`${key}:${dependencies[key]} => ${versionSpec}\n`); dependencies[key] = versionSpec; } }); } } UpgradeCdkCommand.usage = clipanion_1.Command.Usage({ description: 'Upgrade aws cdk to the latest version', details: ` This command will upgrade the aws dependencies in the package.json to the latest version. `, }); __decorate([ clipanion_1.Command.Boolean('--dry-run'), __metadata("design:type", Object) ], UpgradeCdkCommand.prototype, "dryRun", void 0); __decorate([ clipanion_1.Command.String('--mode'), __metadata("design:type", String) ], UpgradeCdkCommand.prototype, "mode", void 0); __decorate([ clipanion_1.Command.String('--version'), __metadata("design:type", String) ], UpgradeCdkCommand.prototype, "version", void 0); __decorate([ clipanion_1.Command.Boolean('--skip-dependencies'), __metadata("design:type", Object) ], UpgradeCdkCommand.prototype, "skipDependencies", void 0); __decorate([ clipanion_1.Command.Boolean('--skip-dev-dependencies'), __metadata("design:type", Object) ], UpgradeCdkCommand.prototype, "skipDevDependencies", void 0); __decorate([ clipanion_1.Command.Boolean('--skip-peer-dependencies'), __metadata("design:type", Object) ], UpgradeCdkCommand.prototype, "skipPeerDependencies", void 0); __decorate([ clipanion_1.Command.Path('upgrade-cdk'), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise) ], UpgradeCdkCommand.prototype, "execute", null); exports.UpgradeCdkCommand = UpgradeCdkCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1jZGstY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy91cGdyYWRlLWNkay1jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHlDQUFvQztBQUNwQyxvRUFBMkM7QUFFM0Msc0NBQW1DO0FBQ25DLGtEQUFxRDtBQUVyRCxNQUFhLGlCQUFrQixTQUFRLGlDQUFrQjtJQUF6RDs7UUFTUyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBU2YscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBR3pCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUc1Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7SUE4Q3RDLENBQUM7SUEzQ0MsS0FBSyxDQUFDLE9BQU87O1FBQ1gsTUFBTSxVQUFVLEdBQUcsTUFBQSxJQUFJLENBQUMsT0FBTyxtQ0FBSSxDQUFDLE1BQU0sSUFBQSx3QkFBYSxFQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsTUFBTSxXQUFXLEdBQUcsZUFBTSxDQUFDLE1BQUEsSUFBSSxDQUFDLElBQUksbUNBQUksT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRWxFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQztTQUM3RDtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNoRTtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ2pFO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRXJDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsV0FBVyxLQUFLLENBQUMsQ0FBQztTQUN4RTtRQUVELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLFVBQVUsQ0FDaEIsWUFBZ0QsRUFDaEQsV0FBbUI7UUFFbkIsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBRTFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDdkIsR0FBRyxHQUFHLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLFdBQVcsSUFBSSxDQUNsRCxDQUFDO2dCQUNGLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBcEVNLHVCQUFLLEdBQUcsbUJBQU8sQ0FBQyxLQUFLLENBQUM7SUFDM0IsV0FBVyxFQUFFLHVDQUF1QztJQUNwRCxPQUFPLEVBQUU7O1NBRUo7Q0FDTixDQUFDLENBQUM7QUFHSDtJQURDLG1CQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQzs7aURBQ1A7QUFHdEI7SUFEQyxtQkFBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7OytDQUNrQjtBQUczQztJQURDLG1CQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzs7a0RBQ0o7QUFHeEI7SUFEQyxtQkFBTyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQzs7MkRBQ1A7QUFHaEM7SUFEQyxtQkFBTyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQzs7OERBQ1I7QUFHbkM7SUFEQyxtQkFBTyxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQzs7K0RBQ1I7QUFHcEM7SUFEQyxtQkFBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7Ozs7Z0RBMkIzQjtBQXJESCw4Q0FzRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhY2thZ2VKc29uIH0gZnJvbSAndHlwZS1mZXN0JztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjbGlwYW5pb24nO1xuaW1wb3J0IGxhdGVzdFZlcnNpb24gZnJvbSAnbGF0ZXN0LXZlcnNpb24nO1xuXG5pbXBvcnQgeyBTZW12ZXIgfSBmcm9tICcuLi9zZW12ZXInO1xuaW1wb3J0IHsgQmFzZVByb2plY3RDb21tYW5kIH0gZnJvbSAnLi4vYmFzZS1jb21tYW5kJztcblxuZXhwb3J0IGNsYXNzIFVwZ3JhZGVDZGtDb21tYW5kIGV4dGVuZHMgQmFzZVByb2plY3RDb21tYW5kIHtcbiAgc3RhdGljIHVzYWdlID0gQ29tbWFuZC5Vc2FnZSh7XG4gICAgZGVzY3JpcHRpb246ICdVcGdyYWRlIGF3cyBjZGsgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uJyxcbiAgICBkZXRhaWxzOiBgXG4gICAgICAgICAgICBUaGlzIGNvbW1hbmQgd2lsbCB1cGdyYWRlIHRoZSBhd3MgZGVwZW5kZW5jaWVzIGluIHRoZSBwYWNrYWdlLmpzb24gdG8gdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAgICAgICBgLFxuICB9KTtcblxuICBAQ29tbWFuZC5Cb29sZWFuKCctLWRyeS1ydW4nKVxuICBwdWJsaWMgZHJ5UnVuID0gZmFsc2U7XG5cbiAgQENvbW1hbmQuU3RyaW5nKCctLW1vZGUnKVxuICBwdWJsaWMgbW9kZT86ICdwaW5uZWQnIHwgJ2NhcmV0JyB8ICd0aWxkZSc7XG5cbiAgQENvbW1hbmQuU3RyaW5nKCctLXZlcnNpb24nKVxuICBwdWJsaWMgdmVyc2lvbj86IHN0cmluZztcblxuICBAQ29tbWFuZC5Cb29sZWFuKCctLXNraXAtZGVwZW5kZW5jaWVzJylcbiAgcHVibGljIHNraXBEZXBlbmRlbmNpZXMgPSBmYWxzZTtcblxuICBAQ29tbWFuZC5Cb29sZWFuKCctLXNraXAtZGV2LWRlcGVuZGVuY2llcycpXG4gIHB1YmxpYyBza2lwRGV2RGVwZW5kZW5jaWVzID0gZmFsc2U7XG5cbiAgQENvbW1hbmQuQm9vbGVhbignLS1za2lwLXBlZXItZGVwZW5kZW5jaWVzJylcbiAgcHVibGljIHNraXBQZWVyRGVwZW5kZW5jaWVzID0gZmFsc2U7XG5cbiAgQENvbW1hbmQuUGF0aCgndXBncmFkZS1jZGsnKVxuICBhc3luYyBleGVjdXRlKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgY2RrVmVyc2lvbiA9IHRoaXMudmVyc2lvbiA/PyAoYXdhaXQgbGF0ZXN0VmVyc2lvbignQGF3cy1jZGsvY29yZScpKTtcbiAgICBjb25zdCB2ZXJzaW9uU3BlYyA9IFNlbXZlclt0aGlzLm1vZGUgPz8gJ2NhcmV0J10oY2RrVmVyc2lvbikuc3BlYztcblxuICAgIGlmICghdGhpcy5za2lwRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmNvbnRleHQuc3Rkb3V0LndyaXRlKCdcXG5VcGdyYWRlIGRlcGVuZGVuY2llczpcXG4nKTtcbiAgICAgIHRoaXMudXBncmFkZUNkayh0aGlzLnByb2plY3RJbmZvLmRlcGVuZGVuY2llcywgdmVyc2lvblNwZWMpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5za2lwRGV2RGVwZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLmNvbnRleHQuc3Rkb3V0LndyaXRlKCdcXG5VcGdyYWRlIGRldkRlcGVuZGVuY2llczpcXG4nKTtcbiAgICAgIHRoaXMudXBncmFkZUNkayh0aGlzLnByb2plY3RJbmZvLmRldkRlcGVuZGVuY2llcywgdmVyc2lvblNwZWMpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5za2lwUGVlckRlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5jb250ZXh0LnN0ZG91dC53cml0ZSgnXFxuVXBncmFkZSBwZWVyRGVwZW5kZW5jaWVzOlxcbicpO1xuICAgICAgdGhpcy51cGdyYWRlQ2RrKHRoaXMucHJvamVjdEluZm8ucGVlckRlcGVuZGVuY2llcywgdmVyc2lvblNwZWMpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kcnlSdW4pIHtcbiAgICAgIGF3YWl0IHRoaXMucHJvamVjdEluZm8uc3luY1BrZ0pzb24oKTtcblxuICAgICAgdGhpcy5jb250ZXh0LmxvZ2dlci5kb25lKGBDZGsgdmVyc2lvbnMgdXBncmFkZWQgdG8gJHt2ZXJzaW9uU3BlY30uXFxuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwcml2YXRlIHVwZ3JhZGVDZGsoXG4gICAgZGVwZW5kZW5jaWVzOiBQYWNrYWdlSnNvbi5EZXBlbmRlbmN5IHwgdW5kZWZpbmVkLFxuICAgIHZlcnNpb25TcGVjOiBzdHJpbmcsXG4gICk6IHZvaWQge1xuICAgIGlmICghZGVwZW5kZW5jaWVzKSByZXR1cm47XG5cbiAgICBPYmplY3Qua2V5cyhkZXBlbmRlbmNpZXMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKGtleS5zdGFydHNXaXRoKCdAYXdzLWNkay8nKSB8fCBrZXkgPT09ICdhd3MtY2RrJykge1xuICAgICAgICB0aGlzLmNvbnRleHQuc3Rkb3V0LndyaXRlKFxuICAgICAgICAgIGAke2tleX06JHtkZXBlbmRlbmNpZXNba2V5XX0gPT4gJHt2ZXJzaW9uU3BlY31cXG5gLFxuICAgICAgICApO1xuICAgICAgICBkZXBlbmRlbmNpZXNba2V5XSA9IHZlcnNpb25TcGVjO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=