Skip to main content

@boost/pipeline

Build Status npm version npm deps

Pipe an input through a series of routines and tasks to produce an output, or simply, run logic in a series of stages.

import { Context, WaterfallPipeline } from '@boost/pipeline';
const ast = new WaterfallPipeline(new Context(), filePath)  .pipe('Parsing AST', parseAst)  .pipe('Linting rules', runLintsOnAst)  .pipe('Transforming nodes', transformNodesOnAst)  .pipe('Writing contents', writeAstToFile)  .run();

Features#

  • Parallel and serial based processing pipelines.
  • Supports 2 types of work units: tasks and routines.
  • Pooling and aggregated implementations for computation heavy or complex logic.
  • Contextually aware executions.

Installation#

yarn add @boost/pipeline

Documentation#

Index

Type aliases

Action

Action<Ctx, Input, Output>: (context: Ctx, value: Input, workUnit: AnyWorkUnit) => Output | Promise<Output>

Type parameters

  • Ctx: Context
  • Input = unknown
  • Output = Input

AnyPipeline

AnyPipeline: Pipeline<{}, Context, any, any>

AnyWorkUnit

AnyWorkUnit: WorkUnit<{}, any, any>

PipelineErrorCode

PipelineErrorCode: keyof typeof errors

Status

Status: failed | passed | pending | running | skipped

Variables

constPipelineError

PipelineError: new (code: ACTION_REQUIRED | ROUTINE_INVALID_KEY | WORK_REQUIRED_TITLE | WORK_TIME_OUT | WORK_UNKNOWN, params?: unknown[]) => Error & ScopedError<ACTION_REQUIRED | ROUTINE_INVALID_KEY | WORK_REQUIRED_TITLE | WORK_TIME_OUT | WORK_UNKNOWN> = ...

constSTATUS_FAILED

STATUS_FAILED: Status = 'failed'

constSTATUS_PASSED

STATUS_PASSED: Status = 'passed'

constSTATUS_PENDING

STATUS_PENDING: Status = 'pending'

constSTATUS_RUNNING

STATUS_RUNNING: Status = 'running'

constSTATUS_SKIPPED

STATUS_SKIPPED: Status = 'skipped'