0.0.1 • Published 12 months ago
merge-readable-streams v0.0.1
merge-readable-streams
Usages & Spec
import { sleep } from "bun";
import { mergeReadableStreams } from ".";
it("works", async () => {
const readableStream1 = new ReadableStream({
async start(controller) {
await sleep(10 - 5);
controller.enqueue("a");
await sleep(10 );
controller.enqueue("b");
await sleep(10 );
controller.enqueue("c");
controller.close();
},
});
const readableStream2 = new ReadableStream({
async start(controller) {
await sleep(10);
controller.enqueue("1");
await sleep(10);
controller.enqueue("2");
await sleep(10);
controller.enqueue("3");
controller.close();
},
});
const mergedStream = mergeReadableStreams([readableStream1, readableStream2]);
const reader = mergedStream.getReader();
const values: string[] = [];
const result = await reader.read().then(function process({ done, value }): any {
console.log(value)
if (done) {
expect(values).toEqual(["a", "1", "b", "2", "c", "3"]);
return Promise.resolve(values.join(''));
} else {
values.push(value);
return reader.read().then(process);
}
});
expect(result).toBe("a1b2c3");
});
0.0.1
12 months ago