UNPKG

batchjs

Version:

Batch processing framework for NodeJS

76 lines (75 loc) 2.2 kB
import { SingleObjectDuplex } from "./SingleObjectDuplex"; /** * @abstract * @class * Abstract class that allows you to emit discarded data in a single data stream adding support to discard events. * @extends SingleObjectDuplex * @template Tin * @template Tout * @example * ```typescript * class DiscardingStreamImplementation<Tin> extends DiscardingSingleObjectDuplex<Tin> { * constructor(){ * super({objectMode: true}); * } * * _write(chunk: T, encoding: BufferEncoding, callback: TransformCallback): void { * this.emit("discard", chunk); * callback(); * } * * _final(callback: TransformCallback): void { * this.push(null); * callback(); * } * * _read(): void {} * } * const stream:DiscardingStreamImplementation<string> = new DiscardingStreamImplementation(); * * stream.write("data1"); //Discarded * stream.write("data2"); //Discarded * stream.write("data3"); //Discarded * stream.end(); * * stream.on("discard", (chunk: string) => { * console.log(``Discarded chunk: ${chunk}```); * }); * ``` * ```shell * >> Discarded chunk: data1 * >> Discarded chunk: data2 * >> Discarded chunk: data3 * ``` */ export class DiscardingSingleObjectDuplex extends SingleObjectDuplex { /** * @constructor * @param options {ObjectDuplexOptions} * @param {Function} canEarlyFlush - A function that returns a boolean indicating whether the stream can early flush. */ constructor(options, canEarlyFlush) { super(options, canEarlyFlush); } addListener(event, listener) { return super.addListener(event, listener); } emit(event, ...args) { return super.emit(event, ...args); } on(event, listener) { return super.on(event, listener); } once(event, listener) { return super.once(event, listener); } prependListener(event, listener) { return super.prependListener(event, listener); } prependOnceListener(event, listener) { return super.prependOnceListener(event, listener); } removeListener(event, listener) { return super.removeListener(event, listener); } }