cdkdx
Version:
Zero-config CLI for aws cdk development
98 lines • 10.6 kB
JavaScript
;
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=