A flexible task management library supporting TypeScript, allowing for task buffering, scheduling, and execution with dependency management.
Go to file
2016-09-02 18:11:33 +02:00
dist now returning correct Promise types 2016-08-03 14:51:43 +02:00
test now returning correct Promise types 2016-08-03 14:51:43 +02:00
ts now returning correct Promise types 2016-08-03 14:51:43 +02:00
.gitignore update dependencies 2016-09-02 18:11:33 +02:00
.gitlab-ci.yml update taskbuffer and add gitlab ci 2016-08-01 13:17:15 +02:00
.npmignore update dependencies 2016-09-02 18:11:33 +02:00
LICENSE Initial commit 2016-02-07 22:11:30 +01:00
npmextra.json update structure 2016-08-01 00:53:27 +02:00
package.json update dependencies 2016-09-02 18:11:33 +02:00
README.md update README 2016-08-01 13:35:33 +02:00

taskbuffer

flexible task management. TypeScript ready!

Status

Coverage Status

Install

npm install taskbuffer --save

Concepts

class Task

  • A Task in its most simple form is a function that is executed when the task runs.
  • A Task can have a preTask and an afterTask (those are run before or after the main function whenever the task is called)
  • A Task can be buffered. That means it can be called multiple times in a very short time. However execution happens in line: meaning execution of the task's main function is on halt until the previous task call has finished. You can set bufferMax number, which is the max number of buffered task calls. Any additional calls will then be truncated
  • Task.trigger() and Task.triggerBuffered() always return a Promise which is fullfilled once the related task call has completed.
  • Task.triggered() is an Observable stream that emits events every time a task call is called and every time a call is completed.
  • Task is compatible to gulp streams.

class TaskChain

  • TaskChain extends Task.
  • Multiple Tasks can be combined in a bigger task using a TaskChain.
  • While the tasks are async in themselve, TaskChain runs Tasks serialized (one after the other)
  • that means that tasks can rely on each other and

class TaskParallel

  • TaskParallel extends Task.
  • like TaskChain, however tasks run in parallel
  • Tasks cannot rely on each other.

Usage

We highly recommend TypeScript as this module supports TypeScript intellisense.

import * as taskbuffer from "taskbuffer";

myTask = new taskbuffer.Task({
  preTask: someOtherTask // optional, don't worry loops are prevented
  afterTask: someOtherTask // optional, don't worry loops are prevented
  name:"myTask1",
  taskFunction:() => {
    // do some stuff and return promise
    // pass on any data through promise resolution
    // Use TypeScript for better understanding and code completion
  }
})