parse-concat-stream

concat-stream + JSON.parse + callback interface and custom parsers

Usage no npm install needed!

<script type="module">
  import parseConcatStream from 'https://cdn.skypack.dev/parse-concat-stream';
</script>

README

parse-concat-stream Build Status Dependency Status DevDependency Status

npm

The simplest possible combination of concat-stream and native JSON.parse. It provides callback interface just like concat-stream does and accepts custom parser functions.

Example

> stread('{ "foo": 1, "bar": [2, 3] }')
    .pipe(parseConcat(function (err, data) {
      if (err) throw err;
      console.log(JSON.stringify(data, null, 1));
    }));
{
 "foo": 1,
 "bar": [
  2,
  3
 ]
}

Custom parser:

> var caps = function (string) {
    return (string.match(/[A-Z]/g) || []).join('').toLowerCase();
  };
> stread('   {\nMEdiS]]\n} SorAs    \tGEt')
    .pipe(parseConcat({ parse: caps }, function (err, data) {
      if (err) throw err;
      console.log(JSON.stringify(data));
    }));
"message"

API

parseConcat([opts], cb(err, data))

Return a writable stream, run cb once it closes.

data is JSON.parsed by default, unless custom opts.parse is provided.

null is a shorthand for the identity function, so that

parseConcat({ parse: null }, cb);

is equivalent to

require('concat-stream')({ encoding: 'string' }, cb.bind(null, null));
Option Type Required? Default
parse function(string) No JSON.parse

Install

npm install parse-concat-stream

License

MIT