@happy-coders/fun-cli
Version:
Be your project management more fun!
60 lines (59 loc) • 2.76 kB
JavaScript
;
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;