UNPKG

@jsonlines/core

Version:

parse and stringify jsonlines files through streams

72 lines (63 loc) 2.55 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); require('core-js/modules/es.array.iterator'); require('core-js/modules/es.promise'); require('./_chunks/line-sep-69d200dd.js'); require('stream'); var duplexBase = require('./_chunks/duplex-base-8f9de019.js'); var readlineStream = require('./readline-stream.js'); require('core-js/modules/es.symbol.description'); var nullValue = require('./null-value.js'); function _interopNamespace(e) { if (e && e.__esModule) { return e; } else { var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n['default'] = e; return Object.freeze(n); } } function wrapParseFunc(parse) { return line => Promise.resolve(parse(line)).then(s => { if (s === null) return nullValue.nullValue;else return s; }); } class JsonLinesParseStream extends duplexBase.AsyncDuplexBase { constructor(options) { var _options$lineSep, _options$parse; const gzip = options === null || options === void 0 ? void 0 : options.gzip; const readline = new readlineStream.ReadLineStream({ encoding: options === null || options === void 0 ? void 0 : options.encoding, lineSep: (_options$lineSep = options === null || options === void 0 ? void 0 : options.lineSep) !== null && _options$lineSep !== void 0 ? _options$lineSep : "lf", parse: wrapParseFunc((_options$parse = options === null || options === void 0 ? void 0 : options.parse) !== null && _options$parse !== void 0 ? _options$parse : JSON.parse) }); super({ writable: gzip ? () => Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('zlib')); }).then(zlib => { const gunzip = zlib.createGunzip(gzip === true ? undefined : gzip); gunzip.pipe(readline); return gunzip; }) : readline, readable: readline }, { readableObjectMode: true, writableObjectMode: false }); } } function parse(...args) { return new JsonLinesParseStream(...args); } exports.JsonLinesParseStream = JsonLinesParseStream; exports.parse = parse; //# sourceMappingURL=parse.js.map