@nutgaard/data-pack
Version:
Utility pack for working with random data
22 lines (21 loc) • 1.13 kB
TypeScript
export declare class GeneratorFlow<T = unknown> {
private readonly generator;
constructor(generator: () => Generator<T, void, undefined>);
static ofArray<T>(array: T[]): GeneratorFlow<T>;
skipWhile(predicate: (t: T, index: number) => boolean): GeneratorFlow<T>;
takeWhile(predicate: (t: T, index: number) => boolean): GeneratorFlow<T>;
skip(num: number): GeneratorFlow<T>;
tail(): GeneratorFlow<T>;
take(num: number): GeneratorFlow<T>;
map<S>(func: (t: T, index: number) => S): GeneratorFlow<S>;
flatMap<S>(func: (t: T, index: number) => Generator<S, void, undefined>): GeneratorFlow<S>;
filter(predicate: (t: T) => boolean): GeneratorFlow<T>;
reduce<S>(func: (accumulator: S, element: T, index: number) => S, initialValue: S): S;
zip<S>(other: Generator<S> | GeneratorFlow<S>): GeneratorFlow<[T, S]>;
cartesianProduct<S>(other: () => Generator<S> | GeneratorFlow<S>): GeneratorFlow<[T, S]>;
concat(other: Generator<T> | GeneratorFlow<T>): GeneratorFlow<T>;
size(): number;
peek(block: (t: T) => void): GeneratorFlow<T>;
toArray(): T[];
toSet(): Set<T>;
}