cdkdx
Version:
Zero-config CLI for aws cdk development
109 lines (108 loc) • 10.6 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.ReleaseCommand = void 0;
const path = __importStar(require("path"));
const clipanion_1 = require("clipanion");
const execa_1 = __importDefault(require("execa"));
const base_command_1 = require("../base-command");
const timer_1 = require("../timer");
class ReleaseCommand extends base_command_1.BaseProjectCommand {
async execute() {
if (this.projectInfo.private) {
this.context.logger.warn('No releasing for private modules.\n');
return 0;
}
const timer = new timer_1.Timer();
const [command, args] = (() => {
switch (this.type) {
case 'npm':
if (!process.env.NPM_TOKEN) {
throw new Error('NPM_TOKEN is required');
}
return [
require.resolve('jsii-release/bin/jsii-release-npm'),
[path.join(this.projectInfo.distPath, 'js')],
];
case 'pypi':
if (!process.env.TWINE_USERNAME) {
process.env.TWINE_USERNAME = '__token__';
}
if (!process.env.TWINE_PASSWORD) {
throw new Error('TWINE_PASSWORD is required');
}
return [
require.resolve('jsii-release/bin/jsii-release-pypi'),
[path.join(this.projectInfo.distPath, 'python')],
];
default:
throw new Error(`Invalid release type: ${this.type}`);
}
})();
await this.cli.run(['package']);
await (0, execa_1.default)(command, args, {
stdio: ['ignore', 'inherit', 'inherit'],
});
timer.end();
this.context.logger.log(``);
this.context.logger.done(`Project ${this.projectInfo.name} released in ${timer.display()}.\n`);
return 0;
}
}
ReleaseCommand.usage = clipanion_1.Command.Usage({
description: 'Release the project',
details: `
This command releases the project to npm or pypi.
It is checked whether the package version is not yet registered. If the version is not in the registry, it will be released. Otherwise the process will be ignored.
`,
examples: [
['Release to npm', 'cdkdx release npm'],
['Release to pypi', 'cdkdx release pypi'],
],
});
__decorate([
clipanion_1.Command.String({ required: true }),
__metadata("design:type", String)
], ReleaseCommand.prototype, "type", void 0);
__decorate([
clipanion_1.Command.Path('release'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", Promise)
], ReleaseCommand.prototype, "execute", null);
exports.ReleaseCommand = ReleaseCommand;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZS1jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3JlbGVhc2UtY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE2QjtBQUM3Qix5Q0FBb0M7QUFDcEMsa0RBQTBCO0FBRTFCLGtEQUFxRDtBQUNyRCxvQ0FBaUM7QUFFakMsTUFBYSxjQUFlLFNBQVEsaUNBQWtCO0lBa0JwRCxLQUFLLENBQUMsT0FBTztRQUNYLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7WUFDaEUsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksYUFBSyxFQUFFLENBQUM7UUFFMUIsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQXVCLEVBQUU7WUFDaEQsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNqQixLQUFLLEtBQUs7b0JBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFO3dCQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7cUJBQzFDO29CQUVELE9BQU87d0JBQ0wsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQzt3QkFDcEQsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO3FCQUM3QyxDQUFDO2dCQUNKLEtBQUssTUFBTTtvQkFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUU7d0JBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQztxQkFDMUM7b0JBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFO3dCQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7cUJBQy9DO29CQUVELE9BQU87d0JBQ0wsT0FBTyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQzt3QkFDckQsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO3FCQUNqRCxDQUFDO2dCQUNKO29CQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3pEO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVMLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sSUFBQSxlQUFLLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUN6QixLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQztTQUN4QyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFWixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0QixXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxnQkFBZ0IsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQ3JFLENBQUM7UUFFRixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7O0FBcEVNLG9CQUFLLEdBQUcsbUJBQU8sQ0FBQyxLQUFLLENBQUM7SUFDM0IsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxPQUFPLEVBQUU7Ozs7S0FJUjtJQUNELFFBQVEsRUFBRTtRQUNSLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7UUFDdkMsQ0FBQyxpQkFBaUIsRUFBRSxvQkFBb0IsQ0FBQztLQUMxQztDQUNGLENBQUMsQ0FBQztBQUdIO0lBREMsbUJBQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7OzRDQUNOO0FBRzdCO0lBREMsbUJBQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDOzs7OzZDQW9EdkI7QUFyRUgsd0NBc0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjbGlwYW5pb24nO1xuaW1wb3J0IGV4ZWNhIGZyb20gJ2V4ZWNhJztcblxuaW1wb3J0IHsgQmFzZVByb2plY3RDb21tYW5kIH0gZnJvbSAnLi4vYmFzZS1jb21tYW5kJztcbmltcG9ydCB7IFRpbWVyIH0gZnJvbSAnLi4vdGltZXInO1xuXG5leHBvcnQgY2xhc3MgUmVsZWFzZUNvbW1hbmQgZXh0ZW5kcyBCYXNlUHJvamVjdENvbW1hbmQge1xuICBzdGF0aWMgdXNhZ2UgPSBDb21tYW5kLlVzYWdlKHtcbiAgICBkZXNjcmlwdGlvbjogJ1JlbGVhc2UgdGhlIHByb2plY3QnLFxuICAgIGRldGFpbHM6IGBcbiAgICAgIFRoaXMgY29tbWFuZCByZWxlYXNlcyB0aGUgcHJvamVjdCB0byBucG0gb3IgcHlwaS5cblxuICAgICAgSXQgaXMgY2hlY2tlZCB3aGV0aGVyIHRoZSBwYWNrYWdlIHZlcnNpb24gaXMgbm90IHlldCByZWdpc3RlcmVkLiBJZiB0aGUgdmVyc2lvbiBpcyBub3QgaW4gdGhlIHJlZ2lzdHJ5LCBpdCB3aWxsIGJlIHJlbGVhc2VkLiBPdGhlcndpc2UgdGhlIHByb2Nlc3Mgd2lsbCBiZSBpZ25vcmVkLlxuICAgIGAsXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgIFsnUmVsZWFzZSB0byBucG0nLCAnY2RrZHggcmVsZWFzZSBucG0nXSxcbiAgICAgIFsnUmVsZWFzZSB0byBweXBpJywgJ2Nka2R4IHJlbGVhc2UgcHlwaSddLFxuICAgIF0sXG4gIH0pO1xuXG4gIEBDb21tYW5kLlN0cmluZyh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHB1YmxpYyB0eXBlITogJ25wbScgfCAncHlwaSc7XG5cbiAgQENvbW1hbmQuUGF0aCgncmVsZWFzZScpXG4gIGFzeW5jIGV4ZWN1dGUoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBpZiAodGhpcy5wcm9qZWN0SW5mby5wcml2YXRlKSB7XG4gICAgICB0aGlzLmNvbnRleHQubG9nZ2VyLndhcm4oJ05vIHJlbGVhc2luZyBmb3IgcHJpdmF0ZSBtb2R1bGVzLlxcbicpO1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3QgdGltZXIgPSBuZXcgVGltZXIoKTtcblxuICAgIGNvbnN0IFtjb21tYW5kLCBhcmdzXSA9ICgoKTogW3N0cmluZywgc3RyaW5nW11dID0+IHtcbiAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgIGNhc2UgJ25wbSc6XG4gICAgICAgICAgaWYgKCFwcm9jZXNzLmVudi5OUE1fVE9LRU4pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTlBNX1RPS0VOIGlzIHJlcXVpcmVkJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHJlcXVpcmUucmVzb2x2ZSgnanNpaS1yZWxlYXNlL2Jpbi9qc2lpLXJlbGVhc2UtbnBtJyksXG4gICAgICAgICAgICBbcGF0aC5qb2luKHRoaXMucHJvamVjdEluZm8uZGlzdFBhdGgsICdqcycpXSxcbiAgICAgICAgICBdO1xuICAgICAgICBjYXNlICdweXBpJzpcbiAgICAgICAgICBpZiAoIXByb2Nlc3MuZW52LlRXSU5FX1VTRVJOQU1FKSB7XG4gICAgICAgICAgICBwcm9jZXNzLmVudi5UV0lORV9VU0VSTkFNRSA9ICdfX3Rva2VuX18nO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghcHJvY2Vzcy5lbnYuVFdJTkVfUEFTU1dPUkQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVFdJTkVfUEFTU1dPUkQgaXMgcmVxdWlyZWQnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgcmVxdWlyZS5yZXNvbHZlKCdqc2lpLXJlbGVhc2UvYmluL2pzaWktcmVsZWFzZS1weXBpJyksXG4gICAgICAgICAgICBbcGF0aC5qb2luKHRoaXMucHJvamVjdEluZm8uZGlzdFBhdGgsICdweXRob24nKV0sXG4gICAgICAgICAgXTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVsZWFzZSB0eXBlOiAke3RoaXMudHlwZX1gKTtcbiAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgYXdhaXQgdGhpcy5jbGkucnVuKFsncGFja2FnZSddKTtcblxuICAgIGF3YWl0IGV4ZWNhKGNvbW1hbmQsIGFyZ3MsIHtcbiAgICAgIHN0ZGlvOiBbJ2lnbm9yZScsICdpbmhlcml0JywgJ2luaGVyaXQnXSxcbiAgICB9KTtcblxuICAgIHRpbWVyLmVuZCgpO1xuXG4gICAgdGhpcy5jb250ZXh0LmxvZ2dlci5sb2coYGApO1xuICAgIHRoaXMuY29udGV4dC5sb2dnZXIuZG9uZShcbiAgICAgIGBQcm9qZWN0ICR7dGhpcy5wcm9qZWN0SW5mby5uYW1lfSByZWxlYXNlZCBpbiAke3RpbWVyLmRpc3BsYXkoKX0uXFxuYCxcbiAgICApO1xuXG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cbiJdfQ==