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
- :StringStream
DataStream- new StringStream([encoding], [options])
- stringStream.shift(bytes, func) ↺
- stringStream.split(splitter) ↺
- stringStream.match(matcher) ↺
- stringStream.toBufferStream() ↺
BufferStream - stringStream.parse(parser, [StreamClass]) ↺
DataStream - stringStream.toDataStream()
- stringStream.lines([eol]) ↺
- stringStream.JSONParse([perLine]) ↺
DataStream - stringStream.CSVParse([options]) ↺
DataStream - stringStream.append(param) ↺
- stringStream.prepend(param) ↺
- stringStream.exec(command, [options])
- StringStream:SPLIT_LINE
- StringStream:fromString(stream, encoding)
StringStream - StringStream:pipeline(readable, transforms)
StringStream - StringStream:from(source, [options])
StringStream
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 |
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. |
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 |
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. |
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
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 |
Alias for StringStream#parse
Kind: instance method of StringStream
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 |
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 |
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. |
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. |
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. |
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) |
A handy split by line regex to quickly get a line-by-line stream
Kind: static property of 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 |
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) |
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 |
{} |