UNPKG

json-streaming-reader

Version:

Line delimited and concatenated JSON streaming protocol reader.

42 lines 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = require("stream"); const StreamJson = require("stream-json"); const JsonStreamRecordBuilder_1 = require("./JsonStreamRecordBuilder"); class JsonStreamReader extends stream_1.Transform { constructor() { super({ writableObjectMode: false, readableObjectMode: true }); this.builder = new JsonStreamRecordBuilder_1.JsonStreamRecordBuilder(); this.parser = StreamJson({ jsonStreaming: true, streamKeys: false, streamNumbers: false, streamStrings: false, streamValues: false, }); this.parser.on('data', (chunk) => { try { this.builder.onData(chunk); } catch (e) { this.push(null); // stop stream this.emit('error', e); return; } if (this.builder.isDone()) { const record = this.builder.getRecord(); this.builder.purge(); // push record to stream this.push({ record }); } }); } _transform(chunk, encoding, callback) { this.parser._transform(chunk, encoding, callback); } } exports.JsonStreamReader = JsonStreamReader; //# sourceMappingURL=JsonStreamReader.js.map