UNPKG

@happy-coders/fun-cli

Version:

Be your project management more fun!

60 lines (59 loc) 2.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DeleteAction = void 0; var tslib_1 = require("tslib"); var inquirer = tslib_1.__importStar(require("inquirer")); var questions_builder_1 = require("../core/project/builder/questions.builder"); var messages_1 = require("../core/ui/messages"); var abstract_action_1 = require("./abstract.action"); var input_handler_1 = require("./input.handler"); var DeleteAction = /** @class */ (function (_super) { tslib_1.__extends(DeleteAction, _super); function DeleteAction(repository) { var _this = _super.call(this) || this; _this.repository = repository; return _this; } DeleteAction.prototype.mountInputs = function (alias) { return input_handler_1.createInputsFromAlias(alias); }; DeleteAction.prototype.handle = function (inputs) { return tslib_1.__awaiter(this, void 0, void 0, function () { var project, question, answers, deleted; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this._getProject(inputs)]; case 1: project = _a.sent(); question = questions_builder_1.buildDeleteProjectConfirmationQuestion(project); return [4 /*yield*/, inquirer.prompt(question)]; case 2: answers = _a.sent(); if (!answers.shouldDelete) { return [2 /*return*/, console.info(messages_1.NOT_CONFIRMED_DELETION)]; } return [4 /*yield*/, this.repository.delete(project.getAlias())]; case 3: deleted = _a.sent(); if (deleted) { return [2 /*return*/, console.info(messages_1.PROJECT_DELETED_WITH_SUCCESS(project))]; } console.error(messages_1.UNEXPECTED_ERROR); console.info(messages_1.DELETE_FAIL_JOKE(project)); return [2 /*return*/]; } }); }); }; DeleteAction.prototype._getProject = function (inputs) { return tslib_1.__awaiter(this, void 0, void 0, function () { var projectAlias; return tslib_1.__generator(this, function (_a) { projectAlias = input_handler_1.getProjectAlias(inputs); return [2 /*return*/, this.repository.findOneOrFail(projectAlias)]; }); }); }; return DeleteAction; }(abstract_action_1.AbstractAction)); exports.DeleteAction = DeleteAction;