UNPKG

@happy-coders/fun-cli

Version:

Be your project management more fun!

73 lines (72 loc) 3.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WithAction = void 0; var tslib_1 = require("tslib"); var repository_factory_1 = require("../core/project/persistence/repository.factory"); var messages_1 = require("../core/ui/messages"); var abstract_action_1 = require("./abstract.action"); var input_handler_1 = require("./input.handler"); var WithAction = /** @class */ (function (_super) { tslib_1.__extends(WithAction, _super); function WithAction() { return _super !== null && _super.apply(this, arguments) || this; } WithAction.prototype.mountInputs = function (alias) { return input_handler_1.createInputsFromAlias(alias); }; WithAction.prototype.handle = function (inputs) { return tslib_1.__awaiter(this, void 0, void 0, function () { var project, tasksExecution; var _this = this; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this._getProject(inputs)]; case 1: project = _a.sent(); console.info(messages_1.WITH_ACTION_STARTED); tasksExecution = project .getTasks() .map(function (task) { return _this._executeTask(task, project); }); return [4 /*yield*/, Promise.all(tasksExecution)]; case 2: _a.sent(); console.info(messages_1.WITH_ACTION_DONE(project)); return [2 /*return*/]; } }); }); }; WithAction.prototype._getProject = function (inputs) { return tslib_1.__awaiter(this, void 0, void 0, function () { var projectAlias, repository; return tslib_1.__generator(this, function (_a) { projectAlias = input_handler_1.getProjectAlias(inputs); repository = repository_factory_1.createProjectRepository(); return [2 /*return*/, repository.findOneOrFail(projectAlias)]; }); }); }; WithAction.prototype._executeTask = function (task, project) { return tslib_1.__awaiter(this, void 0, void 0, function () { var executed; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: process.stdout.write(messages_1.TASK_EXECUTION_STARTED(task)); return [4 /*yield*/, task.execute(project)]; case 1: executed = _a.sent(); if (executed) { process.stdout.write(messages_1.TASK_EXECUTED_WITH_SUCCESS(task)); } else { process.stdout.write(messages_1.TASK_EXECUTION_FAILED(task)); } return [2 /*return*/]; } }); }); }; return WithAction; }(abstract_action_1.AbstractAction)); exports.WithAction = WithAction;