Transforms to parse and stringify ndjson
npm install @studio/ndjson☯️ Transforms to parse and stringify [ndjson][1].
> This module also works in the browser using a [naive stream shim][4] for
> small Browserify bundles.
To stringify an object stream into ndjson:
``js
const StringifyTransform = require('@studio/ndjson/stringify');
object_stream.pipe(new StringifyTransform()).pipe(process.stdout);
`
To parse ndjson into an object stream:
`js
const ParseTransform = require('@studio/ndjson/parse');
process.stdin.pipe(new ParseTransform()).pipe(object_stream);
`
`bash`
❯ npm i @studio/ndjson
Require the transform you need:
- @studio/ndjson/stringify: Exports the StringifyTransform class which@studio/ndjson/parse
reads objects and writes strings.
- : Exports the ParseTransform class which reads
strings and writes objects.
The module main exports StringifyTransform and ParseTransform if you need
both:
`js`
const { StringifyTransform, ParseTransform } = require('@studio/ndjson');
The ParseTransform constructor accepts an options object with these
properties:
- loose: Whether to ignore data before the first { in each line.loose_out
- : A stream to receive data that was found before the first { inloose
each line. Implies .
If JSON.parse or JSON.stringify throw an error, the transform emits anerror event with the error object having a code property withERR_JSON_PARSE or ERR_JSON_STRINGIFY. For parse errors, the line property
on the error is the string that could not be parsed.
- 👻 [Studio Log][2]: This module was refactored out of the logger for
[JavaScript Studio][3].
- 💧 [Studio Browser Stream][4] is a naive stream` shim for small Browserify
bundles.
- 📦 [Studio Changes][5] is used to create the changelog for this module.
MIT
[1]: http://ndjson.org/
[2]: https://github.com/javascript-studio/studio-log
[3]: https://javascript.studio
[4]: https://github.com/javascript-studio/studio-browser-stream
[5]: https://github.com/javascript-studio/studio-changes