taskbuffer/dist/taskbuffer.classes.helpers.js

97 lines
11 KiB
JavaScript
Raw Normal View History

2016-05-04 02:28:50 +00:00
"use strict";
2016-05-04 00:49:43 +00:00
/// <reference path="./typings/main.d.ts" />
var plugins = require("./taskbuffer.plugins");
var taskbuffer_classes_task_1 = require("./taskbuffer.classes.task");
2016-05-04 00:49:43 +00:00
exports.emptyTaskFunction = function () {
var done = plugins.Q.defer();
done.resolve();
return done.promise;
};
2016-05-04 02:28:50 +00:00
exports.isTask = function (taskArg) {
if (taskArg instanceof taskbuffer_classes_task_1.Task
2016-05-04 02:28:50 +00:00
&& typeof taskArg.task === "function") {
return true;
}
else {
return false;
}
};
2016-05-06 00:05:45 +00:00
exports.isTaskTouched = function (taskArg, touchedTasksArray) {
var result = false;
for (var keyArg in touchedTasksArray) {
if (taskArg === touchedTasksArray[keyArg]) {
result = true;
}
}
return result;
};
exports.runTask = function (taskArg, optionsArg) {
2016-05-06 00:05:45 +00:00
if (optionsArg === void 0) { optionsArg = { touchedTasksArray: [] }; }
2016-05-04 00:49:43 +00:00
var done = plugins.Q.defer();
2016-05-06 00:05:45 +00:00
exports.updateTaskStatus(taskArg, "running");
done.promise.then(function () { exports.updateTaskStatus(taskArg, "idle"); });
var localDeferred = plugins.Q.defer();
var touchedTasksArray;
if (optionsArg.touchedTasksArray) {
touchedTasksArray = optionsArg.touchedTasksArray;
}
else {
touchedTasksArray = [];
2016-05-04 00:49:43 +00:00
}
touchedTasksArray.push(taskArg);
localDeferred.promise
.then(function () {
if (taskArg.preTask && !exports.isTaskTouched(taskArg.preTask, touchedTasksArray)) {
return exports.runTask(taskArg.preTask, { touchedTasksArray: touchedTasksArray });
}
else {
2016-05-06 00:05:45 +00:00
var done2 = plugins.Q.defer();
done2.resolve();
return done2.promise;
}
})
.then(function () {
return taskArg.task();
})
.then(function () {
if (taskArg.afterTask && !exports.isTaskTouched(taskArg.afterTask, touchedTasksArray)) {
return exports.runTask(taskArg.afterTask, { touchedTasksArray: touchedTasksArray });
}
else {
2016-05-06 00:05:45 +00:00
var done2 = plugins.Q.defer();
done2.resolve();
return done2.promise;
}
})
.then(function () {
done.resolve();
});
2016-05-06 00:05:45 +00:00
localDeferred.resolve();
2016-05-04 00:49:43 +00:00
return done.promise;
};
2016-05-05 17:21:50 +00:00
exports.runBufferedTask = function (taskArg) {
2016-05-06 00:05:45 +00:00
var recursiveBufferRunner = function () {
if (taskArg.bufferCounter > 0) {
taskArg.bufferCounter--;
exports.runTask(taskArg)
.then(recursiveBufferRunner);
}
};
};
exports.updateTaskStatus = function (taskArg, statusArg) {
switch (statusArg) {
case "running":
taskArg.running = true;
taskArg.idle = false;
break;
case "idle":
taskArg.running = false;
taskArg.idle = true;
break;
default:
throw new Error("status not recognised");
}
2016-05-05 17:21:50 +00:00
};
2016-05-04 00:49:43 +00:00
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhc2tidWZmZXIuY2xhc3Nlcy5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBNEM7QUFDNUMsSUFBTyxPQUFPLFdBQVcsc0JBQXNCLENBQUMsQ0FBQztBQUNqRCx3Q0FBbUIsMkJBQTJCLENBQUMsQ0FBQTtBQUVwQyx5QkFBaUIsR0FBRztJQUMzQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVTLGNBQU0sR0FBRyxVQUFTLE9BQU87SUFDaEMsRUFBRSxDQUFBLENBQ0UsT0FBTyxZQUFZLDhCQUFJO1dBQ3BCLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxVQUMvQixDQUFDLENBQUEsQ0FBQztRQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBR1MscUJBQWEsR0FBRyxVQUFDLE9BQVksRUFBRSxpQkFBd0I7SUFDOUQsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ25CLEdBQUcsQ0FBQyxDQUFDLElBQUksTUFBTSxJQUFJLGlCQUFpQixDQUFDLENBQUEsQ0FBQztRQUNsQyxFQUFFLENBQUEsQ0FBQyxPQUFPLEtBQUssaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQ3RDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQTtBQUVVLGVBQU8sR0FBRyxVQUFTLE9BQVksRUFBQyxVQUE4RDtJQUE5RCwwQkFBOEQsR0FBOUQsZUFBeUMsaUJBQWlCLEVBQUMsRUFBRSxFQUFDO0lBQ3JHLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0Isd0JBQWdCLENBQUMsT0FBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQVcsd0JBQWdCLENBQUMsT0FBTyxFQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUE7SUFDL0QsSUFBSSxhQUFhLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QyxJQUFJLGlCQUF3QixDQUFDO0lBQzdCLEVBQUUsQ0FBQSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBLENBQUM7UUFDN0IsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDO0lBQ3JELENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLGFBQWEsQ0FBQyxPQUFPO1NBQ2hCLElBQUksQ0FBQztRQUNGLEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxxQkFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFDckUsTUFBTSxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFDLEVBQUMsaUJBQWlCLEVBQUMsaUJBQWlCLEVBQUMsQ0FBQyxDQUFBO1FBQ3pFLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDLENBQUM7U0FDRCxJQUFJLENBQUM7UUFDRixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUMsQ0FBQztTQUNELElBQUksQ0FBQztRQUNGLEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxxQkFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFDekUsTUFBTSxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFDLEVBQUMsaUJBQWlCLEVBQUMsaUJBQWlCLEVBQUMsQ0FBQyxDQUFBO1FBQzNFLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDLENBQUM7U0FDRCxJQUFJLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRVMsdUJBQWUsR0FBRyxVQUFDLE9BQVk7SUFDdEMsSUFBSSxxQkFBcUIsR0FBRztRQUN4QixFQUFFLENBQUEsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFDMUIsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLGVBQU8sQ0FBQyxPQUFPLENBQUM7aUJBQ1gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUMsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQUVVLHdCQUFnQixHQUFHLFVBQUMsT0FBTyxFQUFDLFNBQWdCO0lBQ25ELE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsS0FBSyxTQUFTO1lBQ1YsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdkIsT0FBTyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDckIsS0FBSyxDQUFDO1FBQ1YsS0FBSyxNQUFNO1lBQ1AsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDeEIsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDcEIsS0FBSyxDQUFDO1FBQ1Y7WUFDSSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDakQsQ0FBQztBQUNMLENBQUMsQ0FBQSIsImZpbGUiOiJ0YXNrYnVmZmVyLmNsYXNzZXMuaGVscGVycy5q