update taskbuffer and add gitlab ci
This commit is contained in:
parent
8a414b9a7d
commit
24e96926e3
36
.gitlab-ci.yml
Normal file
36
.gitlab-ci.yml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
image: hosttoday/ht-docker-node:npmts
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- test
|
||||||
|
- release
|
||||||
|
|
||||||
|
testLEGACY:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test legacy
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
testLTS:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test lts
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
testSTABLE:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci test stable
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
release:
|
||||||
|
stage: release
|
||||||
|
environment: npmjs-com_registry
|
||||||
|
script:
|
||||||
|
- npmci publish
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
tags:
|
||||||
|
- docker
|
11
.travis.yml
11
.travis.yml
@ -1,11 +0,0 @@
|
|||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- stable
|
|
||||||
deploy:
|
|
||||||
provider: npm
|
|
||||||
email: npm@lossless.digital
|
|
||||||
api_key:
|
|
||||||
secure: NejErc2+ohEEH8DecYcx6/2oSdEQQBRzlOwTMxQBftHdIkvziwOcCerqCJtrXuzalqAofVCcVisunWIXZmxfIBGV6mJVauCIp5KzH4JUhYzLym33p9MSphjlPNfsI6nKkW0LAgOMjkJGuHLqU3oskvBqYyh8m3NuCna5mNwm8lo5WGckzHSwdsmhnb839WhlZbmQc6M6WW6Ir7bbxX9ZOmNUYUWH6VdXfPBxoXN3nO21pXKt7Zg8/nU7IkF+VEUVfYNlR3xUiocWemuBFxjtsfoliQ/y/oGL7ccQ7OeE4PxSu+xNUpYYVipkQcRtyWDKCwJp4R2DNTj/ikOHH+BEFOBDG8qYxwf37Ju0jFybzslAEJLy5gl4bFjiZNA8ldUXY5ubJb56iZTNSbMU0lmXw+qKvIoyVY/1JAE5lzFGVA6nDdiUGAEOg/ajzAC3gjFU2QS2Wvncz3dky0k/2INBVUwmmAvAMazl5XkvHtQ3Wzb+Fc8TXWflqBDF0okySoJzlY13pm/OtOHipiqEyUCnqaUUwJtLIb6tHOPzxZKlWLCem7y84cDlxQSbLVItbArOJFHdr66sp/U/FqYAtWeLdbkhjCENFwzR9kYtEyEl+QWLTckO1/lVF4xJLh6drfhQ66CwF5bfqr5xIS08mnKuYBfJOA4/wV4bQFPhtYm7Oi8=
|
|
||||||
on:
|
|
||||||
tags: true
|
|
||||||
repo: pushrocks/taskbuffer
|
|
5
dist/taskbuffer.classes.helpers.d.ts
vendored
5
dist/taskbuffer.classes.helpers.d.ts
vendored
@ -1,11 +1,10 @@
|
|||||||
/// <reference types="q" />
|
/// <reference types="q" />
|
||||||
import plugins = require("./taskbuffer.plugins");
|
import plugins = require("./taskbuffer.plugins");
|
||||||
import { Task } from "./taskbuffer.classes.task";
|
import { Task, ITaskFunction } from "./taskbuffer.classes.task";
|
||||||
export declare let emptyTaskFunction: () => plugins.Q.Promise<{}>;
|
export declare let emptyTaskFunction: ITaskFunction;
|
||||||
export declare let isTask: (taskArg: any) => boolean;
|
export declare let isTask: (taskArg: any) => boolean;
|
||||||
export declare let isTaskTouched: (taskArg: Task, touchedTasksArray: Task[]) => boolean;
|
export declare let isTaskTouched: (taskArg: Task, touchedTasksArray: Task[]) => boolean;
|
||||||
export declare let runTask: (taskArg: Task, optionsArg?: {
|
export declare let runTask: (taskArg: Task, optionsArg?: {
|
||||||
touchedTasksArray: Task[];
|
touchedTasksArray: Task[];
|
||||||
}) => plugins.Q.Promise<{}>;
|
}) => plugins.Q.Promise<{}>;
|
||||||
export declare let runBufferedTask: (taskArg: Task) => void;
|
export declare let runBufferedTask: (taskArg: Task) => void;
|
||||||
export declare let updateTaskStatus: (taskArg: any, statusArg: string) => void;
|
|
||||||
|
24
dist/taskbuffer.classes.helpers.js
vendored
24
dist/taskbuffer.classes.helpers.js
vendored
@ -26,8 +26,8 @@ exports.isTaskTouched = (taskArg, touchedTasksArray) => {
|
|||||||
};
|
};
|
||||||
exports.runTask = function (taskArg, optionsArg = { touchedTasksArray: [] }) {
|
exports.runTask = function (taskArg, optionsArg = { touchedTasksArray: [] }) {
|
||||||
let done = plugins.Q.defer();
|
let done = plugins.Q.defer();
|
||||||
exports.updateTaskStatus(taskArg, "running");
|
taskArg.running = true;
|
||||||
done.promise.then(function () { exports.updateTaskStatus(taskArg, "idle"); });
|
done.promise.then(function () { taskArg.running = false; });
|
||||||
let localDeferred = plugins.Q.defer();
|
let localDeferred = plugins.Q.defer();
|
||||||
let touchedTasksArray;
|
let touchedTasksArray;
|
||||||
if (optionsArg.touchedTasksArray) {
|
if (optionsArg.touchedTasksArray) {
|
||||||
@ -70,24 +70,14 @@ exports.runTask = function (taskArg, optionsArg = { touchedTasksArray: [] }) {
|
|||||||
exports.runBufferedTask = (taskArg) => {
|
exports.runBufferedTask = (taskArg) => {
|
||||||
let recursiveBufferRunner = () => {
|
let recursiveBufferRunner = () => {
|
||||||
if (taskArg.bufferCounter > 0) {
|
if (taskArg.bufferCounter > 0) {
|
||||||
|
taskArg.runningBuffered = true;
|
||||||
taskArg.bufferCounter--;
|
taskArg.bufferCounter--;
|
||||||
exports.runTask(taskArg)
|
exports.runTask(taskArg)
|
||||||
.then(recursiveBufferRunner);
|
.then(recursiveBufferRunner);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
taskArg.runningBuffered = false;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
exports.updateTaskStatus = (taskArg, statusArg) => {
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90YXNrYnVmZmVyLmNsYXNzZXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTyxPQUFPLFdBQVcsc0JBQXNCLENBQUMsQ0FBQztBQUNqRCwwQ0FBaUMsMkJBQTJCLENBQUMsQ0FBQTtBQUVsRCx5QkFBaUIsR0FBaUI7SUFDekMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFUyxjQUFNLEdBQUcsVUFBUyxPQUFPO0lBQ2hDLEVBQUUsQ0FBQSxDQUNFLE9BQU8sWUFBWSw4QkFBSTtXQUNwQixPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssVUFDL0IsQ0FBQyxDQUFBLENBQUM7UUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNKLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUdTLHFCQUFhLEdBQUcsQ0FBQyxPQUFZLEVBQUUsaUJBQXdCO0lBQzlELElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNuQixHQUFHLENBQUMsQ0FBQyxJQUFJLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxDQUFBLENBQUM7UUFDbEMsRUFBRSxDQUFBLENBQUMsT0FBTyxLQUFLLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUN0QyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUE7QUFFVSxlQUFPLEdBQUcsVUFBUyxPQUFZLEVBQUMs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
|
||||||
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");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90YXNrYnVmZmVyLmNsYXNzZXMuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTyxPQUFPLFdBQVcsc0JBQXNCLENBQUMsQ0FBQztBQUNqRCwwQ0FBbUIsMkJBQTJCLENBQUMsQ0FBQTtBQUVwQyx5QkFBaUIsR0FBRztJQUMzQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVTLGNBQU0sR0FBRyxVQUFTLE9BQU87SUFDaEMsRUFBRSxDQUFBLENBQ0UsT0FBTyxZQUFZLDhCQUFJO1dBQ3BCLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxVQUMvQixDQUFDLENBQUEsQ0FBQztRQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osTUFBTSxDQUFDLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBR1MscUJBQWEsR0FBRyxDQUFDLE9BQVksRUFBRSxpQkFBd0I7SUFDOUQsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ25CLEdBQUcsQ0FBQyxDQUFDLElBQUksTUFBTSxJQUFJLGlCQUFpQixDQUFDLENBQUEsQ0FBQztRQUNsQyxFQUFFLENBQUEsQ0FBQyxPQUFPLEtBQUssaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQSxDQUFDO1lBQ3RDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQTtBQUVVLGVBQU8sR0FBRyxVQUFTLE9BQVksRUFBQyxV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
|
|
15
dist/taskbuffer.classes.task.d.ts
vendored
15
dist/taskbuffer.classes.task.d.ts
vendored
@ -1,9 +1,13 @@
|
|||||||
/// <reference types="q" />
|
/// <reference types="q" />
|
||||||
import * as plugins from "./taskbuffer.plugins";
|
import * as plugins from "./taskbuffer.plugins";
|
||||||
|
export interface ITaskFunction {
|
||||||
|
(): PromiseLike<any>;
|
||||||
|
}
|
||||||
export declare class Task {
|
export declare class Task {
|
||||||
name: string;
|
name: string;
|
||||||
task: any;
|
task: any;
|
||||||
running: boolean;
|
running: boolean;
|
||||||
|
runningBuffered: boolean;
|
||||||
idle: boolean;
|
idle: boolean;
|
||||||
buffered: boolean;
|
buffered: boolean;
|
||||||
bufferCounter: number;
|
bufferCounter: number;
|
||||||
@ -13,15 +17,24 @@ export declare class Task {
|
|||||||
preTask: Task;
|
preTask: Task;
|
||||||
afterTask: Task;
|
afterTask: Task;
|
||||||
constructor(optionsArg: {
|
constructor(optionsArg: {
|
||||||
taskFunction: any;
|
taskFunction: ITaskFunction;
|
||||||
preTask?: Task;
|
preTask?: Task;
|
||||||
afterTask?: Task;
|
afterTask?: Task;
|
||||||
buffered?: boolean;
|
buffered?: boolean;
|
||||||
bufferMax?: number;
|
bufferMax?: number;
|
||||||
name?: string;
|
name?: string;
|
||||||
});
|
});
|
||||||
|
/**
|
||||||
|
* trigger the task. Will trigger buffered if this.buffered is true
|
||||||
|
*/
|
||||||
trigger(): plugins.Q.Promise<{}>;
|
trigger(): plugins.Q.Promise<{}>;
|
||||||
|
/**
|
||||||
|
* trigger task unbuffered.
|
||||||
|
*/
|
||||||
triggerUnBuffered(): plugins.Q.Promise<{}>;
|
triggerUnBuffered(): plugins.Q.Promise<{}>;
|
||||||
|
/**
|
||||||
|
* trigger task buffered.
|
||||||
|
*/
|
||||||
triggerBuffered(): plugins.Q.Promise<{}>;
|
triggerBuffered(): plugins.Q.Promise<{}>;
|
||||||
state: string;
|
state: string;
|
||||||
}
|
}
|
||||||
|
28
dist/taskbuffer.classes.task.js
vendored
28
dist/taskbuffer.classes.task.js
vendored
@ -3,19 +3,25 @@ const plugins = require("./taskbuffer.plugins");
|
|||||||
const helpers = require("./taskbuffer.classes.helpers");
|
const helpers = require("./taskbuffer.classes.helpers");
|
||||||
class Task {
|
class Task {
|
||||||
constructor(optionsArg) {
|
constructor(optionsArg) {
|
||||||
if (!optionsArg) {
|
this.running = false;
|
||||||
optionsArg = { taskFunction: function () { } };
|
this.runningBuffered = false;
|
||||||
}
|
this.idle = true;
|
||||||
|
this.buffered = false;
|
||||||
|
this.bufferMax = 1;
|
||||||
|
this._counterTriggerAbsolute = 0;
|
||||||
var options = optionsArg;
|
var options = optionsArg;
|
||||||
this.task = optionsArg.taskFunction;
|
this.task = optionsArg.taskFunction;
|
||||||
this.preTask = options.preTask;
|
this.preTask = options.preTask;
|
||||||
this.afterTask = options.afterTask;
|
this.afterTask = options.afterTask;
|
||||||
this.running = false;
|
this.running = false;
|
||||||
this.idle = true;
|
this.idle = !this.running && !this.runningBuffered;
|
||||||
this.buffered = options.buffered;
|
this.buffered = options.buffered;
|
||||||
this.bufferMax = options.bufferMax;
|
this.bufferMax = options.bufferMax;
|
||||||
this.name = options.name;
|
this.name = options.name;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* trigger the task. Will trigger buffered if this.buffered is true
|
||||||
|
*/
|
||||||
trigger() {
|
trigger() {
|
||||||
let done = plugins.Q.defer();
|
let done = plugins.Q.defer();
|
||||||
if (this.buffered) {
|
if (this.buffered) {
|
||||||
@ -30,15 +36,25 @@ class Task {
|
|||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
/**
|
||||||
|
* trigger task unbuffered.
|
||||||
|
*/
|
||||||
triggerUnBuffered() {
|
triggerUnBuffered() {
|
||||||
return helpers.runTask(this);
|
return helpers.runTask(this);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* trigger task buffered.
|
||||||
|
*/
|
||||||
triggerBuffered() {
|
triggerBuffered() {
|
||||||
var done = plugins.Q.defer();
|
var done = plugins.Q.defer();
|
||||||
if (!(this.bufferCounter >= this.bufferMax)) {
|
if (!(this.bufferCounter >= this.bufferMax)) {
|
||||||
this.bufferCounter++;
|
this.bufferCounter++;
|
||||||
}
|
}
|
||||||
helpers.runBufferedTask(this);
|
;
|
||||||
|
if (!this.runningBuffered) {
|
||||||
|
helpers.runBufferedTask(this);
|
||||||
|
}
|
||||||
|
;
|
||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
get state() {
|
get state() {
|
||||||
@ -54,4 +70,4 @@ class Task {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.Task = Task;
|
exports.Task = Task;
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLnRhc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90YXNrYnVmZmVyLmNsYXNzZXMudGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBWSxPQUFPLFdBQU0sc0JBQ3pCLENBQUMsQ0FEOEM7QUFDL0MsTUFBWSxPQUFPLFdBQU0sOEJBRXpCLENBQUMsQ0FGc0Q7QUFFdkQ7SUFhSSxZQUFZLFVBT1g7UUFDRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFBLENBQUM7WUFBQSxVQUFVLEdBQUcsRUFBQyxZQUFZLEVBQUMsY0FBVyxDQUFDLEVBQUMsQ0FBQTtRQUFBLENBQUM7UUFDMUQsSUFBSSxPQUFPLEdBQUcsVUFBVSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixFQUFFLENBQUEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxlQUFlLEVBQUU7aUJBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2lCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFBQSxDQUFDO1FBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7SUFDRCxpQkFBaUI7UUFDYixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsZUFBZTtRQUNYLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsRUFBRSxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUN4QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDeEIsQ0FBQztRQUNELE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFlO1FBQ3JCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsQ0FBQSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1FBQzNCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDLENBQUM7UUFDakYsQ0FBQztJQUNMLENBQUM7QUFDTCxDQUFDO0FBbkVZLFlBQUksT0FtRWhCLENBQUEifQ==
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLnRhc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90YXNrYnVmZmVyLmNsYXNzZXMudGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBWSxPQUFPLFdBQU0sc0JBQ3pCLENBQUMsQ0FEOEM7QUFDL0MsTUFBWSxPQUFPLFdBQU0sOEJBR3pCLENBQUMsQ0FIc0Q7QUFPdkQ7SUFjSSxZQUFZLFVBT1g7UUFsQkQsWUFBTyxHQUFXLEtBQUssQ0FBQztRQUN4QixvQkFBZSxHQUFXLEtBQUssQ0FBQztRQUNoQyxTQUFJLEdBQVcsSUFBSSxDQUFDO1FBQ3BCLGFBQVEsR0FBVyxLQUFLLENBQUM7UUFFekIsY0FBUyxHQUFVLENBQUMsQ0FBQztRQUNiLDRCQUF1QixHQUFVLENBQUMsQ0FBQztRQWF2QyxJQUFJLE9BQU8sR0FBRyxVQUFVLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDSCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLEVBQUUsQ0FBQSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLGVBQWUsRUFBRTtpQkFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsaUJBQWlCLEVBQUU7aUJBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUFBLENBQUM7UUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCO1FBQ2IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNYLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsRUFBRSxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUN4QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDeEIsQ0FBQztRQUFBLENBQUM7UUFDRixFQUFFLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUFBLENBQUM7UUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLFFBQWU7UUFDckIsRUFBRSxDQUFDLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFBLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDM0IsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztRQUNqRixDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUFoRlksWUFBSSxPQWdGaEIsQ0FBQSJ9
|
10
dist/taskbuffer.classes.taskchain.js
vendored
10
dist/taskbuffer.classes.taskchain.js
vendored
@ -4,7 +4,7 @@ const taskbuffer_classes_task_1 = require("./taskbuffer.classes.task");
|
|||||||
const helpers = require("./taskbuffer.classes.helpers");
|
const helpers = require("./taskbuffer.classes.helpers");
|
||||||
class Taskchain extends taskbuffer_classes_task_1.Task {
|
class Taskchain extends taskbuffer_classes_task_1.Task {
|
||||||
constructor(optionsArg) {
|
constructor(optionsArg) {
|
||||||
let options = plugins.lodash.assign({
|
let options = plugins.lodash.merge({
|
||||||
name: "unnamed Taskchain",
|
name: "unnamed Taskchain",
|
||||||
log: false
|
log: false
|
||||||
}, optionsArg, {
|
}, optionsArg, {
|
||||||
@ -16,7 +16,7 @@ class Taskchain extends taskbuffer_classes_task_1.Task {
|
|||||||
this._oraObject.text(this.name + " running: Task" + this.taskArray[taskCounter].name);
|
this._oraObject.text(this.name + " running: Task" + this.taskArray[taskCounter].name);
|
||||||
this.taskArray[taskCounter].trigger()
|
this.taskArray[taskCounter].trigger()
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this._oraObject.log(this.taskArray[taskCounter].name, "ok");
|
plugins.beautylog.ok(this.taskArray[taskCounter].name);
|
||||||
taskCounter++;
|
taskCounter++;
|
||||||
iterateTasks();
|
iterateTasks();
|
||||||
});
|
});
|
||||||
@ -33,6 +33,10 @@ class Taskchain extends taskbuffer_classes_task_1.Task {
|
|||||||
super(options);
|
super(options);
|
||||||
this.taskArray = optionsArg.taskArray;
|
this.taskArray = optionsArg.taskArray;
|
||||||
this._oraObject = new plugins.beautylog.Ora("Taskchain idle", "blue");
|
this._oraObject = new plugins.beautylog.Ora("Taskchain idle", "blue");
|
||||||
|
if (optionsArg.log === true) {
|
||||||
|
this._oraObject.start();
|
||||||
|
}
|
||||||
|
;
|
||||||
}
|
}
|
||||||
addTask(taskArg) {
|
addTask(taskArg) {
|
||||||
this.taskArray.push(taskArg);
|
this.taskArray.push(taskArg);
|
||||||
@ -52,4 +56,4 @@ class Taskchain extends taskbuffer_classes_task_1.Task {
|
|||||||
}
|
}
|
||||||
exports.Taskchain = Taskchain;
|
exports.Taskchain = Taskchain;
|
||||||
;
|
;
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLnRhc2tjaGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Rhc2tidWZmZXIuY2xhc3Nlcy50YXNrY2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFDaEQsMENBQW1CLDJCQUEyQixDQUFDLENBQUE7QUFDL0MsTUFBTyxPQUFPLFdBQVcsOEJBQThCLENBQUMsQ0FBQztBQUV6RCx3QkFBK0IsOEJBQUk7SUFHL0IsWUFBWSxVQUlYO1FBQ0csSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQy9CO1lBQ0ksSUFBSSxFQUFDLG1CQUFtQjtZQUN4QixHQUFHLEVBQUMsS0FBSztTQUNaLEVBQ0QsVUFBVSxFQUNWO1lBQ0ksWUFBWSxFQUFFO2dCQUNWLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyx3Q0FBd0M7Z0JBQ3RFLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxZQUFZLEdBQUc7b0JBQ2YsRUFBRSxDQUFBLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7d0JBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDdEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUU7NkJBQ2hDLElBQUksQ0FBQzs0QkFDRixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsQ0FBQzs0QkFDM0QsV0FBVyxFQUFFLENBQUM7NEJBQ2QsWUFBWSxFQUFFLENBQUM7d0JBQ25CLENBQUMsQ0FBQyxDQUFDO29CQUNYLENBQUM7b0JBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUksMkJBQTJCLENBQUMsQ0FBQzt3QkFDakYsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNuQixDQUFDO2dCQUNMLENBQUMsQ0FBQztnQkFDRixZQUFZLEVBQUUsQ0FBQztnQkFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUN4QixDQUFDO1NBQ0osQ0FDSixDQUFDO1FBQ0YsTUFBTSxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUNELE9BQU8sQ0FBQyxPQUFZO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7O0lBQ0QsVUFBVSxDQUFDLE9BQVk7UUFDbkIsTUFBTTtJQUNWLENBQUM7O0lBQ0QsU0FBUztJQUVULENBQUM7O0lBQ0QsT0FBTztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLENBQUM7UUFDakQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztBQUNMLENBQUM7QUF0RFksaUJBQVMsWUFzRHJCLENBQUE7QUFBQSxDQUFDIn0=
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLnRhc2tjaGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Rhc2tidWZmZXIuY2xhc3Nlcy50YXNrY2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFDaEQsMENBQW1CLDJCQUEyQixDQUFDLENBQUE7QUFDL0MsTUFBTyxPQUFPLFdBQVcsOEJBQThCLENBQUMsQ0FBQztBQUV6RCx3QkFBK0IsOEJBQUk7SUFHL0IsWUFBWSxVQUlYO1FBQ0csSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQzlCO1lBQ0ksSUFBSSxFQUFDLG1CQUFtQjtZQUN4QixHQUFHLEVBQUMsS0FBSztTQUNaLEVBQ0QsVUFBVSxFQUNWO1lBQ0ksWUFBWSxFQUFFO2dCQUNWLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyx3Q0FBd0M7Z0JBQ3RFLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxZQUFZLEdBQUc7b0JBQ2YsRUFBRSxDQUFBLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7d0JBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDdEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUU7NkJBQ2hDLElBQUksQ0FBQzs0QkFDRixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUN2RCxXQUFXLEVBQUUsQ0FBQzs0QkFDZCxZQUFZLEVBQUUsQ0FBQzt3QkFDbkIsQ0FBQyxDQUFDLENBQUM7b0JBQ1gsQ0FBQztvQkFBQyxJQUFJLENBQUMsQ0FBQzt3QkFDSixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBSSwyQkFBMkIsQ0FBQyxDQUFDO3dCQUNqRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ25CLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO2dCQUNGLFlBQVksRUFBRSxDQUFDO2dCQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3hCLENBQUM7U0FDSixDQUNKLENBQUM7UUFDRixNQUFNLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBQyxNQUFNLENBQUMsQ0FBQztRQUNyRSxFQUFFLENBQUEsQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFBLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBQUEsQ0FBQztJQUNOLENBQUM7SUFDRCxPQUFPLENBQUMsT0FBWTtRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDOztJQUNELFVBQVUsQ0FBQyxPQUFZO1FBQ25CLE1BQU07SUFDVixDQUFDOztJQUNELFNBQVM7SUFFVCxDQUFDOztJQUNELE9BQU87UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7QUFDTCxDQUFDO0FBekRZLGlCQUFTLFlBeURyQixDQUFBO0FBQUEsQ0FBQyJ9
|
7
dist/taskbuffer.classes.taskparallel.js
vendored
7
dist/taskbuffer.classes.taskparallel.js
vendored
@ -3,10 +3,10 @@ const plugins = require("./taskbuffer.plugins");
|
|||||||
const taskbuffer_classes_task_1 = require("./taskbuffer.classes.task");
|
const taskbuffer_classes_task_1 = require("./taskbuffer.classes.task");
|
||||||
class Taskparallel extends taskbuffer_classes_task_1.Task {
|
class Taskparallel extends taskbuffer_classes_task_1.Task {
|
||||||
constructor(optionsArg) {
|
constructor(optionsArg) {
|
||||||
let options = plugins.lodash.assign(optionsArg, {
|
let options = plugins.lodash.merge(optionsArg, {
|
||||||
taskFunction: () => {
|
taskFunction: () => {
|
||||||
let done = plugins.Q.defer();
|
let done = plugins.Q.defer();
|
||||||
let promiseArray; // stores promises of all tasks, since they run in parallel
|
let promiseArray = []; // stores promises of all tasks, since they run in parallel
|
||||||
this.taskArray.forEach(function (taskArg) {
|
this.taskArray.forEach(function (taskArg) {
|
||||||
promiseArray.push(taskArg.trigger());
|
promiseArray.push(taskArg.trigger());
|
||||||
});
|
});
|
||||||
@ -16,7 +16,8 @@ class Taskparallel extends taskbuffer_classes_task_1.Task {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
super(options);
|
super(options);
|
||||||
|
this.taskArray = optionsArg.taskArray;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.Taskparallel = Taskparallel;
|
exports.Taskparallel = Taskparallel;
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLnRhc2twYXJhbGxlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Rhc2tidWZmZXIuY2xhc3Nlcy50YXNrcGFyYWxsZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUN6QixDQUFDLENBRDhDO0FBRS9DLDBDQUFtQiwyQkFFbkIsQ0FBQyxDQUY2QztBQUU5QywyQkFBa0MsOEJBQUk7SUFFbEMsWUFBWSxVQUVYO1FBQ0csSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQy9CLFVBQVUsRUFDVjtZQUNJLFlBQVksRUFBQztnQkFDVCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM3QixJQUFJLFlBQVksQ0FBQyxDQUFDLDJEQUEyRDtnQkFDN0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBUyxPQUFZO29CQUN4QyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDLENBQUMsQ0FBQTtnQkFDRixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7cUJBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3hCLENBQUM7U0FDSixDQUNKLENBQUE7UUFDRCxNQUFNLE9BQU8sQ0FBQyxDQUFDO0lBQ25CLENBQUM7QUFDTCxDQUFDO0FBdEJZLG9CQUFZLGVBc0J4QixDQUFBIn0=
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLnRhc2twYXJhbGxlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Rhc2tidWZmZXIuY2xhc3Nlcy50YXNrcGFyYWxsZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUN6QixDQUFDLENBRDhDO0FBRS9DLDBDQUFxQiwyQkFFckIsQ0FBQyxDQUYrQztBQUVoRCwyQkFBa0MsOEJBQUk7SUFFbEMsWUFBWSxVQUVYO1FBQ0csSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQzlCLFVBQVUsRUFDVjtZQUNJLFlBQVksRUFBRTtnQkFDVixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM3QixJQUFJLFlBQVksR0FBc0IsRUFBRSxDQUFDLENBQUMsMkRBQTJEO2dCQUNyRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLE9BQU87b0JBQ3BDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxDQUFBO2dCQUNGLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztxQkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDeEIsQ0FBQztTQUNKLENBQ0osQ0FBQztRQUNGLE1BQU0sT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFDMUMsQ0FBQztBQUNMLENBQUM7QUF2Qlksb0JBQVksZUF1QnhCLENBQUEifQ==
|
@ -28,13 +28,13 @@
|
|||||||
"@types/q": "^0.0.27",
|
"@types/q": "^0.0.27",
|
||||||
"beautylog": "^5.0.18",
|
"beautylog": "^5.0.18",
|
||||||
"lodash": "^4.14.1",
|
"lodash": "^4.14.1",
|
||||||
"projectinfo": "1.0.3",
|
|
||||||
"q": "^1.4.1",
|
"q": "^1.4.1",
|
||||||
"rxjs": "^5.0.0-beta.10",
|
"rxjs": "^5.0.0-beta.10",
|
||||||
"typings-global": "^1.0.6"
|
"typings-global": "^1.0.6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"npmts-g": "^5.2.8",
|
"npmts-g": "^5.2.8",
|
||||||
"should": "^10.0.0"
|
"should": "^10.0.0",
|
||||||
|
"typings-test": "^1.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1
test/test.d.ts
vendored
1
test/test.d.ts
vendored
@ -0,0 +1 @@
|
|||||||
|
import "typings-test";
|
64
test/test.js
64
test/test.js
File diff suppressed because one or more lines are too long
63
test/test.ts
63
test/test.ts
@ -1,21 +1,22 @@
|
|||||||
/// <reference path="../ts/typings/main.d.ts" />
|
import "typings-test";
|
||||||
import taskbuffer = require("../dist/index");
|
import taskbuffer = require("../dist/index");
|
||||||
let should = require("should");
|
let should = require("should");
|
||||||
let plugins = {
|
import q = require("q")
|
||||||
q: require("q")
|
|
||||||
}
|
|
||||||
|
|
||||||
// setup some testData to work with
|
// setup some testData to work with
|
||||||
let testTask:taskbuffer.Task;
|
let testTask:taskbuffer.Task;
|
||||||
let testTaskFunction = function(){
|
let testTaskFunction = function(){
|
||||||
let done = plugins.q.defer();
|
let done = q.defer();
|
||||||
console.log("main function executed!")
|
console.log("main function executed!")
|
||||||
done.resolve();
|
done.resolve();
|
||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
let testPreTask = new taskbuffer.Task({
|
let testPreTask = new taskbuffer.Task({
|
||||||
taskFunction:function(){
|
taskFunction:function(){
|
||||||
|
let done = q.defer();
|
||||||
console.log("preTask executed");
|
console.log("preTask executed");
|
||||||
|
done.resolve();
|
||||||
|
return done.promise;
|
||||||
},
|
},
|
||||||
preTask:testTask
|
preTask:testTask
|
||||||
});
|
});
|
||||||
@ -56,7 +57,7 @@ describe("taskbuffer",function(){
|
|||||||
new taskbuffer.Task({
|
new taskbuffer.Task({
|
||||||
name:"task1",
|
name:"task1",
|
||||||
taskFunction:function(){
|
taskFunction:function(){
|
||||||
let done = plugins.q.defer();
|
let done = q.defer();
|
||||||
setTimeout(done.resolve,2000);
|
setTimeout(done.resolve,2000);
|
||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
@ -64,7 +65,7 @@ describe("taskbuffer",function(){
|
|||||||
new taskbuffer.Task({
|
new taskbuffer.Task({
|
||||||
name:"task2",
|
name:"task2",
|
||||||
taskFunction: function(){
|
taskFunction: function(){
|
||||||
let done = plugins.q.defer();
|
let done = q.defer();
|
||||||
setTimeout(done.resolve,2000);
|
setTimeout(done.resolve,2000);
|
||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
@ -77,7 +78,53 @@ describe("taskbuffer",function(){
|
|||||||
taskArray:testTaskArray
|
taskArray:testTaskArray
|
||||||
});
|
});
|
||||||
testTaskchain.trigger().then(done);
|
testTaskchain.trigger().then(done);
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
describe("taskparallel",function(){
|
||||||
|
let task1 = new taskbuffer.Task({
|
||||||
|
name:"Task 1",
|
||||||
|
taskFunction: () => {
|
||||||
|
let done = q.defer();
|
||||||
|
console.log("Task1 started");
|
||||||
|
setTimeout(() => {
|
||||||
|
console.log("Task1 executed");
|
||||||
|
done.resolve();
|
||||||
|
},5000)
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let task2 = new taskbuffer.Task({
|
||||||
|
name:"Task 1",
|
||||||
|
taskFunction: () => {
|
||||||
|
let done = q.defer();
|
||||||
|
console.log("Task2 started");
|
||||||
|
setTimeout(() => {
|
||||||
|
console.log("Task2 executed");
|
||||||
|
done.resolve();
|
||||||
|
},5000)
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let task3 = new taskbuffer.Task({
|
||||||
|
name:"Task 3",
|
||||||
|
taskFunction: () => {
|
||||||
|
let done = q.defer();
|
||||||
|
console.log("Task3 started");
|
||||||
|
setTimeout(() => {
|
||||||
|
console.log("Task3 executed");
|
||||||
|
done.resolve();
|
||||||
|
},5000)
|
||||||
|
return done.promise;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
it("should run in Parallel",function(done){
|
||||||
|
this.timeout("7000");
|
||||||
|
let testTaskparallel = new taskbuffer.Taskparallel({
|
||||||
|
taskArray:[task1,task2,task3]
|
||||||
|
});
|
||||||
|
testTaskparallel.trigger().then(() => {
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
})
|
||||||
});
|
});
|
@ -1,7 +1,7 @@
|
|||||||
import plugins = require("./taskbuffer.plugins");
|
import plugins = require("./taskbuffer.plugins");
|
||||||
import {Task} from "./taskbuffer.classes.task";
|
import {Task,ITaskFunction} from "./taskbuffer.classes.task";
|
||||||
|
|
||||||
export let emptyTaskFunction = function(){
|
export let emptyTaskFunction:ITaskFunction = function(){
|
||||||
let done = plugins.Q.defer();
|
let done = plugins.Q.defer();
|
||||||
done.resolve();
|
done.resolve();
|
||||||
return done.promise;
|
return done.promise;
|
||||||
@ -31,8 +31,8 @@ export let isTaskTouched = (taskArg:Task, touchedTasksArray:Task[]):boolean => {
|
|||||||
|
|
||||||
export let runTask = function(taskArg:Task,optionsArg:{touchedTasksArray:Task[]} = {touchedTasksArray:[]}){
|
export let runTask = function(taskArg:Task,optionsArg:{touchedTasksArray:Task[]} = {touchedTasksArray:[]}){
|
||||||
let done = plugins.Q.defer();
|
let done = plugins.Q.defer();
|
||||||
updateTaskStatus(taskArg,"running");
|
taskArg.running = true;
|
||||||
done.promise.then(function(){updateTaskStatus(taskArg,"idle")})
|
done.promise.then(function(){taskArg.running = false});
|
||||||
let localDeferred = plugins.Q.defer();
|
let localDeferred = plugins.Q.defer();
|
||||||
let touchedTasksArray:Task[];
|
let touchedTasksArray:Task[];
|
||||||
if(optionsArg.touchedTasksArray){
|
if(optionsArg.touchedTasksArray){
|
||||||
@ -73,24 +73,12 @@ export let runTask = function(taskArg:Task,optionsArg:{touchedTasksArray:Task[]}
|
|||||||
export let runBufferedTask = (taskArg:Task) => {
|
export let runBufferedTask = (taskArg:Task) => {
|
||||||
let recursiveBufferRunner = () => {
|
let recursiveBufferRunner = () => {
|
||||||
if(taskArg.bufferCounter > 0){
|
if(taskArg.bufferCounter > 0){
|
||||||
|
taskArg.runningBuffered = true;
|
||||||
taskArg.bufferCounter--;
|
taskArg.bufferCounter--;
|
||||||
runTask(taskArg)
|
runTask(taskArg)
|
||||||
.then(recursiveBufferRunner);
|
.then(recursiveBufferRunner);
|
||||||
|
} else {
|
||||||
|
taskArg.runningBuffered = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
export let updateTaskStatus = (taskArg,statusArg:string) => {
|
|
||||||
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");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,39 +1,47 @@
|
|||||||
import * as plugins from "./taskbuffer.plugins"
|
import * as plugins from "./taskbuffer.plugins"
|
||||||
import * as helpers from "./taskbuffer.classes.helpers"
|
import * as helpers from "./taskbuffer.classes.helpers"
|
||||||
|
|
||||||
|
|
||||||
|
export interface ITaskFunction {
|
||||||
|
():PromiseLike<any>;
|
||||||
|
}
|
||||||
|
|
||||||
export class Task {
|
export class Task {
|
||||||
name:string;
|
name:string;
|
||||||
task:any;
|
task:any;
|
||||||
running:boolean;
|
running:boolean = false;
|
||||||
idle:boolean;
|
runningBuffered:boolean = false;
|
||||||
buffered:boolean;
|
idle:boolean = true;
|
||||||
|
buffered:boolean = false;
|
||||||
bufferCounter:number;
|
bufferCounter:number;
|
||||||
bufferMax:number;
|
bufferMax:number = 1;
|
||||||
private _counterTriggerAbsolute:number;
|
private _counterTriggerAbsolute:number = 0;
|
||||||
private _state:string;
|
private _state:string;
|
||||||
preTask:Task;
|
preTask:Task;
|
||||||
afterTask:Task;
|
afterTask:Task;
|
||||||
|
|
||||||
constructor(optionsArg:{
|
constructor(optionsArg:{
|
||||||
taskFunction:any,
|
taskFunction:ITaskFunction,
|
||||||
preTask?:Task,
|
preTask?:Task,
|
||||||
afterTask?:Task,
|
afterTask?:Task,
|
||||||
buffered?:boolean,
|
buffered?:boolean,
|
||||||
bufferMax?:number,
|
bufferMax?:number,
|
||||||
name?:string
|
name?:string
|
||||||
}){
|
}){
|
||||||
if (!optionsArg){optionsArg = {taskFunction:function(){}}}
|
|
||||||
var options = optionsArg;
|
var options = optionsArg;
|
||||||
this.task = optionsArg.taskFunction;
|
this.task = optionsArg.taskFunction;
|
||||||
this.preTask = options.preTask;
|
this.preTask = options.preTask;
|
||||||
this.afterTask = options.afterTask;
|
this.afterTask = options.afterTask;
|
||||||
this.running = false;
|
this.running = false;
|
||||||
this.idle = true;
|
this.idle = !this.running && !this.runningBuffered;
|
||||||
this.buffered = options.buffered;
|
this.buffered = options.buffered;
|
||||||
this.bufferMax = options.bufferMax;
|
this.bufferMax = options.bufferMax;
|
||||||
this.name = options.name;
|
this.name = options.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* trigger the task. Will trigger buffered if this.buffered is true
|
||||||
|
*/
|
||||||
trigger(){
|
trigger(){
|
||||||
let done = plugins.Q.defer();
|
let done = plugins.Q.defer();
|
||||||
if(this.buffered) {
|
if(this.buffered) {
|
||||||
@ -46,15 +54,25 @@ export class Task {
|
|||||||
};
|
};
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* trigger task unbuffered.
|
||||||
|
*/
|
||||||
triggerUnBuffered(){
|
triggerUnBuffered(){
|
||||||
return helpers.runTask(this);
|
return helpers.runTask(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* trigger task buffered.
|
||||||
|
*/
|
||||||
triggerBuffered(){
|
triggerBuffered(){
|
||||||
var done = plugins.Q.defer();
|
var done = plugins.Q.defer();
|
||||||
if(!(this.bufferCounter >= this.bufferMax)){
|
if(!(this.bufferCounter >= this.bufferMax)){
|
||||||
this.bufferCounter++
|
this.bufferCounter++
|
||||||
}
|
};
|
||||||
helpers.runBufferedTask(this);
|
if(!this.runningBuffered){
|
||||||
|
helpers.runBufferedTask(this);
|
||||||
|
};
|
||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ export class Taskchain extends Task {
|
|||||||
log?:boolean,
|
log?:boolean,
|
||||||
taskArray:Task[]
|
taskArray:Task[]
|
||||||
}){
|
}){
|
||||||
let options = plugins.lodash.assign(
|
let options = plugins.lodash.merge(
|
||||||
{
|
{
|
||||||
name:"unnamed Taskchain",
|
name:"unnamed Taskchain",
|
||||||
log:false
|
log:false
|
||||||
@ -25,7 +25,7 @@ export class Taskchain extends Task {
|
|||||||
this._oraObject.text(this.name + " running: Task" + this.taskArray[taskCounter].name);
|
this._oraObject.text(this.name + " running: Task" + this.taskArray[taskCounter].name);
|
||||||
this.taskArray[taskCounter].trigger()
|
this.taskArray[taskCounter].trigger()
|
||||||
.then(()=>{
|
.then(()=>{
|
||||||
this._oraObject.log(this.taskArray[taskCounter].name,"ok");
|
plugins.beautylog.ok(this.taskArray[taskCounter].name);
|
||||||
taskCounter++;
|
taskCounter++;
|
||||||
iterateTasks();
|
iterateTasks();
|
||||||
});
|
});
|
||||||
@ -42,6 +42,9 @@ export class Taskchain extends Task {
|
|||||||
super(options);
|
super(options);
|
||||||
this.taskArray = optionsArg.taskArray;
|
this.taskArray = optionsArg.taskArray;
|
||||||
this._oraObject = new plugins.beautylog.Ora("Taskchain idle","blue");
|
this._oraObject = new plugins.beautylog.Ora("Taskchain idle","blue");
|
||||||
|
if(optionsArg.log === true){
|
||||||
|
this._oraObject.start();
|
||||||
|
};
|
||||||
}
|
}
|
||||||
addTask(taskArg:Task){
|
addTask(taskArg:Task){
|
||||||
this.taskArray.push(taskArg);
|
this.taskArray.push(taskArg);
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
import * as plugins from "./taskbuffer.plugins"
|
import * as plugins from "./taskbuffer.plugins"
|
||||||
import * as helpers from "./taskbuffer.classes.helpers"
|
import * as helpers from "./taskbuffer.classes.helpers"
|
||||||
import {Task} from "./taskbuffer.classes.task"
|
import { Task } from "./taskbuffer.classes.task"
|
||||||
|
|
||||||
export class Taskparallel extends Task {
|
export class Taskparallel extends Task {
|
||||||
taskArray:Task[];
|
taskArray: Task[];
|
||||||
constructor(optionsArg:{
|
constructor(optionsArg: {
|
||||||
taskArray:Task[]
|
taskArray: Task[]
|
||||||
}){
|
}){
|
||||||
let options = plugins.lodash.assign(
|
let options = plugins.lodash.merge(
|
||||||
optionsArg,
|
optionsArg,
|
||||||
{
|
{
|
||||||
taskFunction:() => {
|
taskFunction: () => {
|
||||||
let done = plugins.Q.defer();
|
let done = plugins.Q.defer();
|
||||||
let promiseArray; // stores promises of all tasks, since they run in parallel
|
let promiseArray:PromiseLike<any>[] = []; // stores promises of all tasks, since they run in parallel
|
||||||
this.taskArray.forEach(function(taskArg:Task){
|
this.taskArray.forEach(function (taskArg) {
|
||||||
promiseArray.push(taskArg.trigger());
|
promiseArray.push(taskArg.trigger());
|
||||||
})
|
})
|
||||||
plugins.Q.all(promiseArray)
|
plugins.Q.all(promiseArray)
|
||||||
@ -21,8 +21,9 @@ export class Taskparallel extends Task {
|
|||||||
return done.promise;
|
return done.promise;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
);
|
||||||
super(options);
|
super(options);
|
||||||
|
this.taskArray = optionsArg.taskArray;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user