UNPKG

antsjs

Version:

Task Runner

66 lines (65 loc) 2.09 kB
var Task = /** @class */ (function () { function Task(name, fun) { this.name = name; this.logs = Array(); this.fun = null; this.fun = fun; } Task.prototype.log = function (str, print) { if (print === void 0) { print = false; } str = '[' + this.name + '] - ' + Date.now() + ': ' + str; this.logs.push(str); if (print) console.log(str); }; Task.prototype.before = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } //... }; Task.prototype.after = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } //... }; return Task; }()); var ant = { tasks: Array(), add: function (id, fun) { var _task = new Task(id, fun); ant.tasks.push(_task); _task.log('Task [' + id + ']' + ' will created'); return _task; }, remove: function (id) { return ant.tasks.splice(ant.tasks.findIndex(function (x) { return x.name == id; }), 1); }, run: function (id) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } var _task = ant.find(id); if (!_task) throw new Error('Undefined Task - ' + id); args.push(_task); _task.log('Task [' + id + ']' + ' [before] calling...'); var _args = _task.before.apply(this, args); if (Array.isArray(_args)) args = _args; _task.log('Task [' + id + ']' + ' calling...'); var _result = _task.fun.apply(this, args); _task.log('Task [' + id + ']' + ' [after] calling...'); _task.after.apply(this, args); return _result; }, find: function (id) { return ant.tasks.find(function (x) { return x.name == id; }); } }; module.exports = ant;