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