Skip to main content

Module exports

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 - the basic object stream of any type
  • StringStream - a stream of strings
  • BufferStream - a stream of buffers
  • MultiStream - a group of streams
  • NumberStream - a stream of numbers
  • 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.

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

ParamTypeDefaultDescription
inputArray | Iterable.<any> | AsyncGeneratorFunction | GeneratorFunction | AsyncFunction | function | string | Readableargument to be turned into new stream
[options]DataStreamOptions | Writableoptions for creation of a new stream or the target stream
...argsArray.<any>additional arguments for the stream - will be passed to the function or generator

scramjet:fromArray(array, [options]) : DataStream

Creates a DataStream from an Array

Kind: static method of Scramjet

ParamTypeDefaultDescription
arrayArraylist of chunks
[options]DataStreamOptionsthe read stream options

scramjet:createTransformModule(transform, [options]) : 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

ParamTypeDefault
transformUseCallback
[options]CreateModuleOptions
...initialArgsArray.<any>

scramjet:createReadModule(anything, [options]) : 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

ParamTypeDefault
anythingArray | Iterable.<any> | AsyncGeneratorFunction | GeneratorFunction | AsyncFunction | function | string | Readable
[options]CreateModuleOptions
...initialArgsArray.<any>

scramjet:plugin(mixin) : ScramjetPlugin

Plugs in methods for any of the classes

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

ParamTypeDescription
mixinScramjetPluginthe plugin object

scramjet:API(version) : ScramjetPlugin

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

Kind: static method of Scramjet

ParamTypeDescription
versionnumberThe required version (currently only: 1)

Was it helpful?

Didn't find information needed?

Join our Scramjet Community on Discord, where you can get help from our engineers directly.