:StringStream : DataStream

A stream of string objects for further transformation on top of DataStream.

Example:

StringStream.from(async () => (await fetch("https://example.com/data/article.txt")).text() ) .lines() .append("\r\n") .pipe(fs.createWriteStream("./path/to/file.txt"));

Kind: static class
Extends: DataStream
Scope: public

new StringStream([encoding], [options])

Constructs the stream with the given encoding

Returns: StringStream - the created data stream

Param Type Default Description
[encoding] string ""utf-8"" the encoding to use
[options] DataStreamOptions {} the encoding to use

stringStream.shift(bytes, func) ↺

Shifts given length of chars from the original stream

Works the same way as {@see DataStream.shift}, but in this case extracts the given number of characters.

Kind: instance method of StringStream
Chainable
Test: test/methods/string-stream-shift.js

Param Type Description
bytes number The number of characters to shift.
func ShiftStringCallback Function that receives a string of shifted chars.

stringStream.split(splitter) ↺

Splits the string stream by the specified RegExp or string

Kind: instance method of StringStream
Chainable
Test: test/methods/string-stream-split.js

Param Type Description
splitter RegExp | string What to split by

stringStream.match(matcher) ↺

Finds matches in the string stream and streams the match results

Kind: instance method of StringStream
Chainable
Test: test/methods/string-stream-match.js

Param Type Description
matcher RegExp A function that will be called for every stream chunk.

stringStream.toBufferStream() : BufferStream ↺

Transforms the StringStream to BufferStream

Creates a buffer stream from the given string stream. Still it returns a DataStream derivative and isn't the typical node.js stream so you can do all your transforms when you like.

Kind: instance method of StringStream
Chainable
Returns: BufferStream - The converted stream.
Meta.noreadme:
Test: test/methods/string-stream-tobufferstream.js

stringStream.parse(parser, [StreamClass]) : DataStream ↺

Parses every string to object

The method MUST parse EVERY string into a single object, so the string stream here should already be split.

Kind: instance method of StringStream
Chainable
Returns: DataStream - The parsed objects stream.
Test: test/methods/string-stream-parse.js

Param Type Description
parser ParseCallback The transform function
[StreamClass] function the output stream class to return

stringStream.toDataStream()

Alias for StringStream#parse

Kind: instance method of StringStream

stringStream.lines([eol]) ↺

Splits the string stream by the specified regexp or string

Kind: instance method of StringStream
Chainable
Test: test/methods/string-stream-split.js

Param Type Default Description
[eol] string | RegExp "/\r?\n/" End of line string or regex

stringStream.JSONParse([perLine]) : DataStream ↺

Parses each entry as JSON. Ignores empty lines

Kind: instance method of StringStream
Chainable
Returns: DataStream - stream of parsed items

Param Type Default Description
[perLine] Boolean true instructs to split per line

stringStream.CSVParse([options]) : DataStream ↺

Parses CSV to DataString using 'papaparse' module.

Kind: instance method of StringStream
Chainable
Returns: DataStream - stream of parsed items
Test: test/methods/data-stream-separate.js

Param Type Default Description
[options] object {} options for the papaparse.parse method.

stringStream.append(param) ↺

Appends given argument to all the items.

Kind: instance method of StringStream
Chainable
Test: test/methods/string-stream-append.js

Param Type Description
param ThenFunction | string the argument to append. If function passed then it will be called and resolved and the resolution will be appended.

stringStream.prepend(param) ↺

Prepends given argument to all the items.

Kind: instance method of StringStream
Chainable
Test: test/methods/string-stream-prepend.js

Param Type Description
param ThenFunction | string the argument to prepend. If function passed then it will be called and resolved and the resolution will be prepended.

stringStream.exec(command, [options])

Executes a given sub-process with arguments and pipes the current stream into it while returning the output as another DataStream.

Pipes the current stream into the sub-processes stdin. The data is serialized and deserialized as JSON lines by default. You can provide your own alternative methods in the ExecOptions object.

Note: if you're piping both stderr and stdout (options.stream=3) keep in mind that chunks may get mixed up!

Kind: instance method of StringStream
Test: test/methods/string-stream-exec.js

Param Type Default Description
command string command to execute
[options] ExecOptions | any {} options to be passed to spawn and defining serialization.
...args Array.<string> additional arguments (will overwrite to SpawnOptions args even if not given)

StringStream:SPLIT_LINE

A handy split by line regex to quickly get a line-by-line stream

Kind: static property of StringStream

StringStream:fromString(stream, encoding) : StringStream

Creates a StringStream and writes a specific string.

Kind: static method of StringStream
Returns: StringStream - new StringStream.

Param Type Description
stream string the string to push the your stream
encoding string optional encoding

StringStream:pipeline(readable, transforms) : StringStream

Creates a pipeline of streams and returns a scramjet stream.

Kind: static method of StringStream
Returns: StringStream - a new StringStream instance of the resulting pipeline
See: DataStream.pipeline

Param Type Description
readable Array | Iterable.<any> | AsyncGeneratorFunction | GeneratorFunction | AsyncFunction | function | string | Readable the initial readable argument that is streamable by scramjet.from
transforms AsyncFunction | function | Transform Transform functions (as in DataStream..use) or Transform streams (any number of these as consecutive arguments)

StringStream:from(source, [options]) : StringStream

Create StringStream from anything.

Kind: static method of StringStream
Returns: StringStream - new StringStream.
See

  • DataStream.from
  • module:scramjet.from
Param Type Default Description
source string | Array | Iterable.<any> | AsyncGeneratorFunction | GeneratorFunction | AsyncFunction | function | Readable argument to be turned into new stream
[options] DataStreamOptions | Writable {}