import { Readable, Writable } from "node:stream"; export function fromReadable( i: Readable | NodeJS.ReadableStream ): ReadableStream { return new ReadableStream({ start: (c) => { i.on("data", (data) => c.enqueue(data)); i.on("close", () => c.close()); i.on("error", (err) => c.error(err)); }, cancel: (reason) => ( (i as Partial & Partial).destroy?.( reason ), undefined ), }); } export function fromWritable( i: Writable | NodeJS.WritableStream ): WritableStream { return new WritableStream({ start: (c) => (i.on("error", (err) => c.error(err)), undefined), abort: (reason) => ( (i as Partial & Partial).destroy?.( reason ), undefined ), write: (data: string | Uint8Array, c) => (i.write(data), undefined), close: () => (i.end(), undefined), }); } // export function toReadable(i: ReadableStream): Readable { // const i = new Readable() // i.pipeTo(Readable) // return new Readable({ // start: (c) => { // }, // cancel: (reason) => (i.destroy(reason), undefined), // }); // } // export function toWritable(i: Writable) { // return new WritableStream({ // start: (c) => (i.on("error", (err) => c.error(err)), undefined), // abort: (reason) => (i.destroy(reason), undefined), // write: (data, c) => (i.write(data), undefined), // close: () => (i.end(), undefined), // }); // }