"use strict"; /// var plugins = require("./taskbuffer.plugins"); var taskbuffer_classes_1 = require("./taskbuffer.classes"); exports.emptyTaskFunction = function () { var done = plugins.Q.defer(); done.resolve(); return done.promise; }; exports.isTask = function (taskArg) { if (taskArg instanceof taskbuffer_classes_1.Task && typeof taskArg.task === "function") { return true; } else { return false; } }; exports.isTaskTouched = function (task, touchedTasksArray) { return false; }; exports.runTask = function (taskArg, optionsArg) { var done = plugins.Q.defer(); var localDeferred = plugins.Q.defer(); var touchedTasksArray; if (optionsArg.touchedTasksArray) { touchedTasksArray = optionsArg.touchedTasksArray; } else { touchedTasksArray = []; } touchedTasksArray.push(taskArg); localDeferred.promise .then(function () { if (taskArg.preTask && !exports.isTaskTouched(taskArg.preTask, touchedTasksArray)) { return exports.runTask(taskArg.preTask, { touchedTasksArray: touchedTasksArray }); } else { var done2 = plugins.Q.resolve(); 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 { var done2 = plugins.Q.resolve(); done2.resolve(); return done2.promise; } }) .then(function () { done.resolve(); }); return done.promise; }; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhc2tidWZmZXIuY2xhc3Nlcy5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBNEM7QUFDNUMsSUFBTyxPQUFPLFdBQVcsc0JBQXNCLENBQUMsQ0FBQztBQUNqRCxtQ0FBbUIsc0JBRW5CLENBQUMsQ0FGd0M7QUFFOUIseUJBQWlCLEdBQUc7SUFDM0IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFUyxjQUFNLEdBQUcsVUFBUyxPQUFPO0lBQ2hDLEVBQUUsQ0FBQSxDQUNFLE9BQU8sWUFBWSx5QkFBSTtXQUNwQixPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssVUFDL0IsQ0FBQyxDQUFBLENBQUM7UUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUdTLHFCQUFhLEdBQUcsVUFBQyxJQUFTLEVBQUUsaUJBQXdCO0lBQzNELE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFBO0FBRVUsZUFBTyxHQUFHLFVBQVMsT0FBWSxFQUFDLFVBQXNDO0lBQzdFLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsSUFBSSxhQUFhLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QyxJQUFJLGlCQUF3QixDQUFDO0lBQzdCLEVBQUUsQ0FBQSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBLENBQUM7UUFDN0IsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDO0lBQ3JELENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLGFBQWEsQ0FBQyxPQUFPO1NBQ2hCLElBQUksQ0FBQztRQUNGLEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxxQkFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFDckUsTUFBTSxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFDLEVBQUMsaUJBQWlCLEVBQUMsaUJBQWlCLEVBQUMsQ0FBQyxDQUFBO1FBQ3pFLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDLENBQUM7U0FDRCxJQUFJLENBQUM7UUFDRixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUMsQ0FBQztTQUNELElBQUksQ0FBQztRQUNGLEVBQUUsQ0FBQSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxxQkFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFDekUsTUFBTSxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFDLEVBQUMsaUJBQWlCLEVBQUMsaUJBQWlCLEVBQUMsQ0FBQyxDQUFBO1FBQzNFLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDLENBQUM7U0FDRCxJQUFJLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUE7SUFFTixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUMiLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLmhlbHBlcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi90eXBpbmdzL21haW4uZC50c1wiIC8+XG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3Rhc2tidWZmZXIucGx1Z2luc1wiKTtcbmltcG9ydCB7VGFza30gZnJvbSBcIi4vdGFza2J1ZmZlci5jbGFzc2VzXCJcblxuZXhwb3J0IGxldCBlbXB0eVRhc2tGdW5jdGlvbiA9IGZ1bmN0aW9uKCl7XG4gICAgbGV0IGRvbmUgPSBwbHVnaW5zLlEuZGVmZXIoKTtcbiAgICBkb25lLnJlc29sdmUoKTtcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xufTtcblxuZXhwb3J0IGxldCBpc1Rhc2sgPSBmdW5jdGlvbih0YXNrQXJnKTpib29sZWFue1xuICAgIGlmKFxuICAgICAgICB0YXNrQXJnIGluc3RhbmNlb2YgVGFza1xuICAgICAgICAmJiB0eXBlb2YgdGFza0FyZy50YXNrID09PSBcImZ1bmN0aW9uXCJcbiAgICApe1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufTtcblxuXG5leHBvcnQgbGV0IGlzVGFza1RvdWNoZWQgPSAodGFzazpUYXNrLCB0b3VjaGVkVGFza3NBcnJheTpUYXNrW10pOmJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGxldCBydW5UYXNrID0gZnVuY3Rpb24odGFza0FyZzpUYXNrLG9wdGlvbnNBcmc/Ont0b3VjaGVkVGFza3NBcnJheTpUYXNrW119KXtcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMuUS5kZWZlcigpO1xuICAgIGxldCBsb2NhbERlZmVycmVkID0gcGx1Z2lucy5RLmRlZmVyKCk7XG4gICAgbGV0IHRvdWNoZWRUYXNrc0FycmF5OlRhc2tbXTtcbiAgICBpZihvcHRpb25zQXJnLnRvdWNoZWRUYXNrc0FycmF5KXtcbiAgICAgICAgdG91Y2hlZFRhc2tzQXJyYXkgPSBvcHRpb25zQXJnLnRvdWNoZWRUYXNrc0FycmF5O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRvdWNoZWRUYXNrc0FycmF5ID0gW107XG4gICAgfVxuICAgIHRvdWNoZWRUYXNrc0FycmF5LnB1c2godGFza0FyZyk7XG4gICAgbG9jYWxEZWZlcnJlZC5wcm9taXNlXG4gICAgICAgIC50aGVuKCgpID0+e1xuICAgICAgICAgICAgaWYodGFza0FyZy5wcmVUYXNrICYmICFpc1Rhc2tUb3VjaGVkKHRhc2tBcmcucHJlVGFzayx0b3VjaGVkVGFza3NBcnJheSkpe1xuICAgICAgICAgICAgICAgIHJldHVybiBydW5UYXNrKHRhc2tBcmcucHJlVGFzayx7dG91Y2hlZFRhc2tzQXJyYXk6dG91Y2hlZFRhc2tzQXJyYXl9KVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgZG9uZTIgPSBwbHVnaW5zLlEucmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIGRvbmUyLnJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9uZTIucHJvbWlzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRhc2tBcmcudGFzaygpO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBpZih0YXNrQXJnLmFmdGVyVGFzayAmJiAhaXNUYXNrVG91Y2hlZCh0YXNrQXJnLmFmdGVyVGFzayx0b3VjaGVkVGFza3NBcnJheSkpe1xuICAgICAgICAgICAgICAgIHJldHVybiBydW5UYXNrKHRhc2tBcmcuYWZ0ZXJUYXNrLHt0b3VjaGVkVGFza3NBcnJheTp0b3VjaGVkVGFza3NBcnJheX0pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBkb25lMiA9IHBsdWdpbnMuUS5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgZG9uZTIucmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBkb25lMi5wcm9taXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBkb25lLnJlc29sdmUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgXG4gICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcbn07Il19