streamsplit
Version:
Memory/CPU efficient stream splitter by token
36 lines (27 loc) • 2.51 kB
JavaScript
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
;