2016-05-04 02:28:50 +00:00
|
|
|
"use strict";
|
2017-06-17 14:56:33 +00:00
|
|
|
// TaskChain chains tasks
|
|
|
|
// and extends Task
|
2017-06-09 21:26:23 +00:00
|
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
2016-07-31 22:53:27 +00:00
|
|
|
const plugins = require("./taskbuffer.plugins");
|
|
|
|
const taskbuffer_classes_task_1 = require("./taskbuffer.classes.task");
|
|
|
|
class Taskchain extends taskbuffer_classes_task_1.Task {
|
|
|
|
constructor(optionsArg) {
|
2016-08-01 11:17:15 +00:00
|
|
|
let options = plugins.lodash.merge({
|
2017-02-15 21:52:29 +00:00
|
|
|
name: 'unnamed Taskchain',
|
2016-05-15 01:16:50 +00:00
|
|
|
log: false
|
|
|
|
}, optionsArg, {
|
2016-08-02 09:09:42 +00:00
|
|
|
taskFunction: (x) => {
|
2017-02-15 21:52:29 +00:00
|
|
|
let done = plugins.q.defer(); // this is the starting Deferred object
|
2016-08-02 09:09:42 +00:00
|
|
|
let taskCounter = 0; // counter for iterating async over the taskArray
|
|
|
|
let iterateTasks = (x) => {
|
2017-02-15 21:52:29 +00:00
|
|
|
if (typeof this.taskArray[taskCounter] !== 'undefined') {
|
|
|
|
this._oraObject.text(this.name + ' running: Task' + this.taskArray[taskCounter].name);
|
2016-08-02 09:09:42 +00:00
|
|
|
this.taskArray[taskCounter].trigger(x)
|
|
|
|
.then((x) => {
|
2016-08-01 11:17:15 +00:00
|
|
|
plugins.beautylog.ok(this.taskArray[taskCounter].name);
|
2016-05-15 01:16:50 +00:00
|
|
|
taskCounter++;
|
2016-08-02 09:09:42 +00:00
|
|
|
iterateTasks(x);
|
2016-05-15 01:16:50 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
else {
|
2017-02-15 21:52:29 +00:00
|
|
|
this._oraObject.endOk('Taskchain "' + this.name + '" completed successfully');
|
2016-08-02 09:09:42 +00:00
|
|
|
done.resolve(x);
|
2016-05-15 01:16:50 +00:00
|
|
|
}
|
2016-05-05 16:36:31 +00:00
|
|
|
};
|
2016-08-02 09:09:42 +00:00
|
|
|
iterateTasks(x);
|
2016-05-15 01:16:50 +00:00
|
|
|
return done.promise;
|
2016-05-05 16:36:31 +00:00
|
|
|
}
|
2016-05-04 02:28:50 +00:00
|
|
|
});
|
2016-07-31 22:53:27 +00:00
|
|
|
super(options);
|
2016-05-14 21:24:11 +00:00
|
|
|
this.taskArray = optionsArg.taskArray;
|
2017-02-15 21:52:29 +00:00
|
|
|
this._oraObject = plugins.beautylog.ora;
|
2016-08-01 11:17:15 +00:00
|
|
|
if (optionsArg.log === true) {
|
|
|
|
this._oraObject.start();
|
|
|
|
}
|
2016-05-04 02:28:50 +00:00
|
|
|
}
|
2016-07-31 22:53:27 +00:00
|
|
|
addTask(taskArg) {
|
2016-05-05 16:36:31 +00:00
|
|
|
this.taskArray.push(taskArg);
|
2016-07-31 22:53:27 +00:00
|
|
|
}
|
|
|
|
removeTask(taskArg) {
|
2017-06-09 21:33:41 +00:00
|
|
|
// TODO:
|
2016-07-31 22:53:27 +00:00
|
|
|
}
|
|
|
|
shiftTask() {
|
2017-06-09 21:33:41 +00:00
|
|
|
// TODO:
|
2016-07-31 22:53:27 +00:00
|
|
|
}
|
|
|
|
}
|
2016-05-04 02:28:50 +00:00
|
|
|
exports.Taskchain = Taskchain;
|
2017-06-17 14:56:33 +00:00
|
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLnRhc2tjaGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Rhc2tidWZmZXIuY2xhc3Nlcy50YXNrY2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlCQUF5QjtBQUN6QixtQkFBbUI7O0FBRW5CLGdEQUErQztBQUMvQyx1RUFBZ0Q7QUFHaEQsZUFBdUIsU0FBUSw4QkFBSTtJQUdqQyxZQUFZLFVBTVg7UUFDQyxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDaEM7WUFDRSxJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLEdBQUcsRUFBRSxLQUFLO1NBQ1gsRUFDRCxVQUFVLEVBQ1Y7WUFDRSxZQUFZLEVBQUUsQ0FBQyxDQUFNO2dCQUNuQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUMsdUNBQXVDO2dCQUNwRSxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUEsQ0FBQyxpREFBaUQ7Z0JBQ3JFLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztvQkFDbkIsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFFLFdBQVcsQ0FBRSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7d0JBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBRSxXQUFXLENBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTt3QkFDdkYsSUFBSSxDQUFDLFNBQVMsQ0FBRSxXQUFXLENBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDOzZCQUNyQyxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUNOLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUUsV0FBVyxDQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7NEJBQ3hELFdBQVcsRUFBRSxDQUFBOzRCQUNiLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTt3QkFDakIsQ0FBQyxDQUFDLENBQUE7b0JBQ04sQ0FBQztvQkFBQyxJQUFJLENBQUMsQ0FBQzt3QkFDTixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRywwQkFBMEIsQ0FBQyxDQUFBO3dCQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUNqQixDQUFDO2dCQUNILENBQUMsQ0FBQTtnQkFDRCxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7WUFDckIsQ0FBQztTQUNGLENBQ0YsQ0FBQTtRQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQTtRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFBO1FBQ3ZDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxDQUFFLE9BQWE7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUNELFVBQVUsQ0FBRSxPQUFhO1FBQ3ZCLFFBQVE7SUFDVixDQUFDO0lBQ0QsU0FBUztRQUNQLFFBQVE7SUFDVixDQUFDO0NBQ0Y7QUF2REQsOEJBdURDIn0=
|