JSPM

@nxus/pipeliner

2.4.0-0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q32765F
  • License MIT

A framework for creating and running data pipelines.

Package Exports

  • @nxus/pipeliner

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@nxus/pipeliner) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@nxus/pipeliner

Build Status

A framework for creating and running data pipelines. Data pipelines have stages, which are made of an arbitrary number of tasks. Stages and tasks are run in serial: once a task completes, the next task in the pipeline is executed.

Pipelines take a data object as input, and each task operates on the object in some way.

For an example of the Pipeliner in action, checkout the nxus-static-site module.

Installation

> npm install @nxus/pipeliner --save

Usage

Step 1: Define a pipeline

app.get('pipeliner').pipeline('my-pipeline')

Step 1a: Define stages

By default, every pipeline is pre-configured with three stages: 'collect', 'process', 'generate'. However, you can define your own stages:

app.get('pipliner').stages('my-pipeline', ['stage1', 'stage2', 'stage3'])

Step 2: Define tasks

A task is a javascript function that accepts any objects passed into the pipeline when it is run.

let myTask = (word) => {
  word.toUpperCase();
}

app.get('pipeliner').task('my-pipeline', 'process', myTask)

Step 3: Run a pipeline

Once all the tasks for a pipeline have been defined, the last step is to run the pipeline.

app.get('pipeliner').run('my-pipeline', someData)

API


Pipeliner

Examples

let myTask = (data) => {
  data.word.toUpperCase()
}
let data = {word: 'hello'}

let pipeliner = app.get('pipeliner')

pipeliner.pipeline('capitalize')
pipeliner.task('capitalize', 'process', myTask)
pipeliner.run('capitalize', data).then(() => {
  console.log('data') // {word: 'HELLO'}
})

getPipeline

Returns a specific pipeline

Parameters

  • pipeline string The name of a pipeline to return.

Returns object The pipeline object.

getPipelines

Returns all pipelines which have been defined

Returns object A hash of the pipelines.

pipeline

Create a new pipeline.

Parameters

  • pipeline string The name of the pipeline to create

run

Runs the specified pipeline, passing the arguments to each task.

Parameters

  • pipeline string the pipeline to run
  • args ...object Arguments to pass to the pipeline tasks

Returns Promise A promise that is executed when the pipeline completes.

stages

Define stages for a pipeline

Parameters

  • stages array An array of strings, each string being the name of a stage. Stages are executed in the order in the array.
  • pipeline string The name of the pipeline to use the stages.

Returns [type] [description]

task

Defintes a task for a pipeline and a stage.

Parameters

  • pipeline string The name of the pipeline
  • stage string The name of the string
  • job function A function which accepts data