UNPKG

@stoked-cenv/cli

Version:

A well considered cli and Node.js library for helping manage application, infrastructure, and configuration management.

279 lines 11.9 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); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DestroyCommand = void 0; const nest_commander_1 = require("nest-commander"); const lib_1 = require("@stoked-cenv/lib"); const base_command_1 = require("./base.command"); let DestroyCommand = class DestroyCommand extends base_command_1.BaseCommand { constructor() { super(); this.config.packagesRequired = true; this.config.allowRootPackage = false; this.config.deploymentMode = lib_1.ProcessMode.DESTROY; } parseStack(val) { return val; } parseCenv(val) { return val; } parseGlobal(val) { return val; } parseParameters(val) { return val; } parseParametersAll(val) { return val; } parseGlobalParameters(val) { return val; } parseNonGlobalParameters(val) { return val; } parsePA(val) { return val; } parseAp(val) { return val; } parseAll(val) { return val; } parseDependencies(val) { return val; } parseForce(val) { return val; } parseCli(val) { return val; } parseUi(val) { return val; } parseFailOnError(val) { return val; } parseAd(val) { return val; } parseDocker(val) { return val; } parseHard(val) { return val; } async runCommand(params, options, packages) { try { const localOnly = (packages === null || packages === void 0 ? void 0 : packages.length) === 1 && packages[0].local; if (options === null || options === void 0 ? void 0 : options.globalParameters) { await lib_1.ParamsModule.destroyGlobal(); packages = localOnly ? [] : packages; options.stack = options.docker = options.parameters = false; } if (options === null || options === void 0 ? void 0 : options.nonGlobalParameters) { await lib_1.ParamsModule.destroyGlobal(); packages = localOnly ? [] : packages; options.stack = options.docker = options.parameters = false; } if ((options === null || options === void 0 ? void 0 : options.allParameters) || (options === null || options === void 0 ? void 0 : options.all)) { await lib_1.ParamsModule.destroyAllConfigs(); await lib_1.ParamsModule.destroyAllParams(); packages = localOnly ? [] : packages; options.stack = options.docker = options.parameters = false; } if ((options === null || options === void 0 ? void 0 : options.allDocker) || (options === null || options === void 0 ? void 0 : options.all)) { await lib_1.DockerModule.destroyAll(); packages = localOnly ? [] : packages; options.stack = options.docker = options.parameters = false; } if ((options === null || options === void 0 ? void 0 : options.cenv) || (options === null || options === void 0 ? void 0 : options.all)) { await lib_1.Cenv.destroyCenv(); if (!(options === null || options === void 0 ? void 0 : options.all)) { return; } packages = localOnly ? [] : packages; options.stack = options.docker = options.parameters = false; } if ((!(options === null || options === void 0 ? void 0 : options.allParameters) && !(options === null || options === void 0 ? void 0 : options.allDocker)) && (options === null || options === void 0 ? void 0 : options.suite) || (options === null || options === void 0 ? void 0 : options.environment) || (packages && (packages === null || packages === void 0 ? void 0 : packages.length) > 0) || (options === null || options === void 0 ? void 0 : options.all)) { if (options === null || options === void 0 ? void 0 : options.all) { const suite = new lib_1.Suite(lib_1.Suite.defaultSuite); packages = suite.packages; } options = lib_1.Deployment.deployDestroyOptions(options); await lib_1.Deployment.Destroy(packages, options); } } catch (e) { lib_1.CenvLog.single.catchLog(e); } } }; exports.DestroyCommand = DestroyCommand; __decorate([ (0, nest_commander_1.Option)({ flags: '-s, --stack', description: `Destroy stack`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseStack", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-cenv, --cenv', description: `Destroy cenv components from an aws account.`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseCenv", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-g, --global', description: `Destroy global parameters, ecr images, and cenv components after everything else is gone`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseGlobal", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-p, --parameters', description: `Destroy parameters`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseParameters", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-pa, --parameters-all', description: `Destroy all parameters and configs`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseParametersAll", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-gp, --global-parameters', description: `Destroy all global parameters`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseGlobalParameters", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-ngp, --non-global-parameters', description: `Destroy all non global parameters`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseNonGlobalParameters", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-p, --parameters', description: `Only run parameter related commands.`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parsePA", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-ap, --all-parameters', description: `Destroy all global and non global parameters from parameter store as well as all configs from app config.`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseAp", null); __decorate([ (0, nest_commander_1.Option)({ flags: '--all', description: `Destroy everything`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseAll", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-d, --dependencies', description: `This flag uses the settings in the deploy package.json for dockerDependencies and componentDependencies. It will build any docker dependencies listed and install and component dependencies listed before installing the specificed package.`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseDependencies", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-sv, --strict-versions', description: `Do not create new docker containers if the current version number exists.`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseForce", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-cli, --cli', description: 'Use the cli', }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseCli", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-ui, --user-interface', description: 'Use the ui', }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseUi", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-fe, --fail-on-error', description: 'Mark the package as failed if any commands have errors', }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseFailOnError", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-ad, --all-docker', description: `Destroy all docker images from every ecr repo as well as the ecr repos themselves`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseAd", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-D, --docker', description: `Only run docker related commands.`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseDocker", null); __decorate([ (0, nest_commander_1.Option)({ flags: '-h, --hard', description: `Destroy stack hard using cloudformation delete-stack cli instead of cdk`, }), __metadata("design:type", Function), __metadata("design:paramtypes", [Boolean]), __metadata("design:returntype", Boolean) ], DestroyCommand.prototype, "parseHard", null); exports.DestroyCommand = DestroyCommand = __decorate([ (0, nest_commander_1.Command)({ name: 'destroy', arguments: '[...applications]', description: 'The destroyer of things (suites, environments, stacks, app config, parameters, and ecr)', aliases: ['u', 'uninstall'], }), __metadata("design:paramtypes", []) ], DestroyCommand); //# sourceMappingURL=destroy.command.js.map