geninq
Version:
A JavaScript version of the Linq library for Generators
13 lines (12 loc) • 933 B
TypeScript
import { Promised } from "./utils";
import "./select";
declare global {
interface Generator<T = unknown, TReturn = any, TNext = unknown> {
select_many<TCollection>(selector: (item: T, index: number) => Generator<TCollection>): Generator<TCollection, TReturn, TNext>;
select_many<TCollection, TResult>(selector: (item: T, index: number) => Generator<TCollection>, result_selector: (item: T, part: TCollection) => TResult): Generator<TResult, TReturn, TNext>;
}
interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> {
select_many<TCollection>(selector: (item: T, index: number) => AsyncGenerator<TCollection>): AsyncGenerator<TCollection, TReturn, TNext>;
select_many<TCollection, TResult>(selector: (item: T, index: number) => AsyncGenerator<TCollection>, result_selector: (item: T, part: TCollection) => Promised<TResult>): AsyncGenerator<TResult, TReturn, TNext>;
}
}