UNPKG

streamsplit

Version:

Memory/CPU efficient stream splitter by token

36 lines (27 loc) 2.51 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (params) { return (0, _tobuffer2.default)((0, _extend2.default)({ token: '\n' }, params)).flatMap(function (buf) { try { return _rxjs.Observable.of(JSON.parse(buf)); } catch (e) { return _rxjs.Observable.throw(e); } }); }; var _tobuffer = require('./tobuffer.js'); var _tobuffer2 = _interopRequireDefault(_tobuffer); var _extend = require('extend'); var _extend2 = _interopRequireDefault(_extend); var _rxjs = require('rxjs'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } module.exports = exports['default']; /** * Creates a splitter that emits chunks of data in the form of a JSON Object. * By default token is '\n' and can be undefined when calling this. * @param {object} params the constructor params for the Splitter * @returns {Observable.<object>} */ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNwbGl0dGVycy90b2pzb24uanMiXSwibmFtZXMiOlsicGFyYW1zIiwidG9rZW4iLCJmbGF0TWFwIiwib2YiLCJKU09OIiwicGFyc2UiLCJidWYiLCJlIiwidGhyb3ciXSwibWFwcGluZ3MiOiI7Ozs7OztrQkFTZSxVQUFVQSxNQUFWLEVBQWtCO0FBQy9CLFNBQU8sd0JBQVMsc0JBQU8sRUFBRUMsT0FBTyxJQUFULEVBQVAsRUFBd0JELE1BQXhCLENBQVQsRUFDSkUsT0FESSxDQUNJLGVBQU87QUFDZCxRQUFJO0FBQ0YsYUFBTyxpQkFBV0MsRUFBWCxDQUFjQyxLQUFLQyxLQUFMLENBQVdDLEdBQVgsQ0FBZCxDQUFQO0FBQ0QsS0FGRCxDQUVFLE9BQU9DLENBQVAsRUFBVTtBQUNWLGFBQU8saUJBQVdDLEtBQVgsQ0FBaUJELENBQWpCLENBQVA7QUFDRDtBQUNGLEdBUEksQ0FBUDtBQVFELEM7O0FBbEJEOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7QUFDQSIsImZpbGUiOiJzcGxpdHRlcnMvdG9qc29uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRvQnVmZmVyIGZyb20gJy4vdG9idWZmZXIuanMnO1xuaW1wb3J0IGV4dGVuZCBmcm9tICdleHRlbmQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuLyoqXG4gKiBDcmVhdGVzIGEgc3BsaXR0ZXIgdGhhdCBlbWl0cyBjaHVua3Mgb2YgZGF0YSBpbiB0aGUgZm9ybSBvZiBhIEpTT04gT2JqZWN0LlxuICogQnkgZGVmYXVsdCB0b2tlbiBpcyAnXFxuJyBhbmQgY2FuIGJlIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdGhpcy5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwYXJhbXMgdGhlIGNvbnN0cnVjdG9yIHBhcmFtcyBmb3IgdGhlIFNwbGl0dGVyXG4gKiBAcmV0dXJucyB7T2JzZXJ2YWJsZS48b2JqZWN0Pn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHBhcmFtcykge1xuICByZXR1cm4gdG9CdWZmZXIoZXh0ZW5kKHsgdG9rZW46ICdcXG4nIH0sIHBhcmFtcykpXG4gICAgLmZsYXRNYXAoYnVmID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBPYnNlcnZhYmxlLm9mKEpTT04ucGFyc2UoYnVmKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBPYnNlcnZhYmxlLnRocm93KGUpO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19