UNPKG

sflow

Version:

sflow is a powerful and highly-extensible library designed for processing and manipulating streams of data effortlessly. Inspired by the functional programming paradigm, it provides a rich set of utilities for transforming streams, including chunking, fil

34 lines (28 loc) 948 B
import { describe, expect, it } from "vitest"; import { finds } from "./finds"; import { sflow } from "./sflow"; describe("finds standalone", () => { it("should work as a standalone transform stream", async () => { const source = new ReadableStream({ start(controller) { controller.enqueue(1); controller.enqueue(2); controller.enqueue(3); controller.enqueue(4); controller.enqueue(5); controller.close(); }, }); const result = await sflow( source.pipeThrough(finds((x: number) => x > 3)), ).toArray(); expect(result).toEqual([4]); }); it("should work with multiple transform streams", async () => { const result = await sflow([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) .map((x) => x * 2) // [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] .by(finds((x: number) => x > 10)) // finds first > 10 .toArray(); expect(result).toEqual([12]); }); });