UNPKG

batchjs

Version:

Batch processing framework for NodeJS

40 lines (39 loc) 1.27 kB
import { Duplex } from "stream"; const defaultOptions = { objectMode: true, drainTimeout: 50 }; /** * @abstract * @class * Abstract class that handle data in a stream in object mode. * @extends Duplex * @template Tin * @template Tout */ // eslint-disable-next-line @typescript-eslint/no-explicit-any export class ObjectDuplex extends Duplex { drainTimeout; /** * @constructor * @param {ObjectDuplexOptions} options - The options for the ObjectDuplex. * @param [options.objectMode=true] {true} - Whether the stream should operate in object mode. * @param [options.drainTimeout=50] {number} - Milliseconds until the stream is considered drained. */ constructor(options) { const opts = { ...defaultOptions, ...options }; super(opts); this.drainTimeout = opts.drainTimeout; } write(chunk, encodingOrCallback, callback) { // eslint-disable-next-line @typescript-eslint/no-explicit-any return super.write(chunk, encodingOrCallback, callback); } end(chunkOrCb, encodingOrCb, cb) { // eslint-disable-next-line @typescript-eslint/no-explicit-any return super.end(chunkOrCb, encodingOrCb, cb); } read(size) { return super.read(size); } }