You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'use strict'; const {Transform} = require('stream');
class ObjectTransform extends Transform { constructor() { super({ objectMode: true }); } }
class FilterStream extends ObjectTransform { constructor(filter) { super(); this._filter = filter; }
_transform(data, encoding, callback) { if (this._filter(data)) { this.push(data); }
callback(); } }
class UniqueStream extends ObjectTransform { constructor() { super(); this._pushed = new Set(); }
_transform(data, encoding, callback) { if (!this._pushed.has(data)) { this.push(data); this._pushed.add(data); }
callback(); } }
module.exports = { FilterStream, UniqueStream };
|