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() } }