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
24 lines (23 loc) • 1.03 kB
TypeScript
import { type Ord } from "rambda";
import type { Awaitable } from "./Awaitable";
import type { FlowSource } from "./FlowSource";
import type { sflow } from "./sflow";
type Slots<T> = Array<{
value?: T;
done: boolean;
} | null>;
type Transformer<T> = (slots: Slots<T>, ctrl: ReadableStreamDefaultController<T>) => Awaitable<Slots<T>>;
type OrdFn<T> = (value: T) => Ord;
export declare function mergeStreamsBy<T>(transform: Transformer<T>, srcs: FlowSource<T>[]): sflow<T>;
export declare function mergeStreamsBy<T>(transform: Transformer<T>): {
(srcs: FlowSource<T>[]): sflow<T>;
};
export declare function mergeStreamsByAscend<T>(ordFn: OrdFn<T>, sources: FlowSource<T>[]): sflow<T>;
export declare function mergeStreamsByAscend<T>(ordFn: OrdFn<T>): {
(sources: FlowSource<T>[]): sflow<T>;
};
export declare function mergeStreamsByDescend<T>(ordFn: OrdFn<T>, srcs: FlowSource<T>[]): sflow<T>;
export declare function mergeStreamsByDescend<T>(ordFn: OrdFn<T>): {
(srcs: FlowSource<T>[]): sflow<T>;
};
export {};