UNPKG

from-node-stream

Version:
75 lines (70 loc) 1.77 kB
// index.ts import { mergeStream } from "sflow"; // fromReadable.ts function fromReadable(i) { 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.destroy?.(reason), undefined) }); } // fromWritable.ts function fromWritable(i) { 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) }); } // index.ts function fromStdioDropErr(p) { return { writable: fromWritable(p.stdin), readable: fromReadable(p.stdout) }; } function fromStdioMergeError(p) { const stdin = fromWritable(p.stdin); const stdout = fromReadable(p.stdout); const stderr = fromReadable(p.stderr); return { writable: stdin, readable: mergeStream(stdout, stderr) }; } function fromStdioAndForwardError(p, { stderr }) { const stdin = fromWritable(p.stdin); const stdout = fromReadable(p.stdout); if (p.stderr?.pipe) fromReadable(p.stderr).pipeTo(fromWritable(stderr)); return { writable: stdin, readable: stdout }; } function fromStdio(p, { stderr } = {}) { if (stderr === undefined) { return fromStdioMergeError(p); } else if (stderr === null) { return fromStdioDropErr(p); } else { if (p.stderr?.pipe) fromReadable(p.stderr).pipeTo(fromWritable(stderr)); return fromStdioDropErr(p); } } export { fromWritable, fromStdioMergeError, fromStdioDropErr, fromStdioAndForwardError, fromStdio, fromReadable }; //# debugId=C247144402D037BB64756E2164756E21