Fast, asynchronous, functional reactive stream programming framework with multi‑threading capability based on ES6+.

Master Build StatusMaster Build StatusDependenciesDev DependenciesKnown VulnerabilitiesDeepScan grade
Classes
  • scramjet : Object

    Scramjet main exports expose all the stream classes and a number of methods.

    All scramjet streams allow writing, reading or transform modes - currently exclusively (meaning you can't have two at once). Any of the scramjet streams can be constructed with the following options passed to mimic node.js standard streams:

    • async promiseTransform(chunk) - transform method that resolves with a single output chunk
    • async promiseWrite(chunk) - write method that that resolves when chunk is written
    • async promiseRead(count) - read method that resolves with an array of chunks when called

    See node.js API for stream implementers for details

    The object exposes the following classes:

    • DataStream {@see DataStream} - the basic object stream of any type
    • StringStream {@see StringStream} - a stream of strings
    • BufferStream {@see BufferStream} - a stream of buffers
    • MultiStream {@see MultiStream} - a group of streams
    • NumberStream {@see NumberStream} - a stream of numbers
    • WindowStream {@see WindowStream} - a stream of windows of objects

    The general concept of Scramjet streams is facilitating node's TransformStream mechanism so that you don't need to create a number of streams and create the pipeline, but use the concept of chaining instead. When you call parse method for instance, scramjet creates a new stream, pipes it to the callee and forwards errors.

    What's worth mentioning - scramjet tries to limit the number of created transform streams and pushes the transforms one after another into the same stream class therefore a code stream.map(transform1).map(transform2).filter(transform3) will only operate on a single transform stream that evaluates all three transforms one after another.

    Extends: Object

    scramjet:errors : ScramjetErrors

    Exposes error classes (undocumented)

    Kind: static property of scramjet
    Read only: true

    scramjet:StreamWorker : StreamWorker

    A Stream Worker class

    Kind: static property of scramjet
    Inject: StreamWorker

    scramjet:from(input, [options]) : DataStream

    Creates a DataStream that's piped from the passed readable.

    Kind: static method of scramjet

    Param Type Default Description
    input Array | Iterable | AsyncGeneratorFunction | GeneratorFunction | AsyncFunction | function | String | Readable argument to be turned into new stream
    [options] DataStreamOptions | Writable {} options for creation of a new stream or the target stream
    [...args] * additional arguments for the stream - will be passed to the function or generator

    scramjet:fromArray(args) : DataStream

    Creates a DataStream from an Array

    Kind: static method of scramjet

    Param Type
    args Array.<*>

    scramjet:createTransformModule(transform, options, ...initialArgs) : function

    Creates a safe wrapper for scramjet transform module. See Modules documentation for more info.

    Kind: static method of scramjet
    Returns: function - a scramjet module function

    Param Type
    transform UseCallback
    options CreateModuleOptions
    ...initialArgs any

    scramjet:createReadModule(anything, options, ...initialArgs) : function

    Creates a safe wrapper for scramjet read module. See Modules documentation for more info.

    Kind: static method of scramjet
    Returns: function - a scramjet module function

    Param Type
    anything Array | Iterable | AsyncGeneratorFunction | GeneratorFunction | AsyncFunction | function | String | Readable
    options CreateModuleOptions
    ...initialArgs any

    scramjet:plugin(mixin) : ScramjetPlugin

    Plugs in methods for any of the classes

    Kind: static method of scramjet
    Test: test/methods/scramjet-plugin.js

    Param Type Description
    mixin ScramjetPlugin the plugin object

    scramjet:API(version) : ScramjetPlugin

    Gets an API version (this may be important for future use)

    Kind: static method of scramjet

    Param Type Description
    version Number The required version (currently only: 1)