0.0.1 • Published 12 months ago

merge-readable-streams v0.0.1

Weekly downloads
-
License
-
Repository
-
Last release
12 months ago

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