🏡 index : quine-global/webdriverio.git

import type { TransformCallback } from 'node:stream'
import { Transform } from 'node:stream'
import { removeLastListener } from './utils.js'

export default class RunnerStream extends Transform {
    constructor () {
        super()

        /**
         * Remove events that are automatically created by Writable stream
         */
        this.on('pipe', () => {
            removeLastListener(this, 'close')
            removeLastListener(this, 'drain')
            removeLastListener(this, 'error')
            removeLastListener(this, 'finish')
            removeLastListener(this, 'unpipe')
        })
    }

    _transform (chunk: Buffer, _encoding: BufferEncoding, callback: TransformCallback): void {
        callback(undefined, chunk)
    }

    _final (callback: (error?: Error | undefined) => void): void {
        this.unpipe()
        callback()
    }
}