geninq
Version:
A JavaScript version of the Linq library for Generators
13 lines (12 loc) • 877 B
TypeScript
import { Promised } from "./utils";
import "./geninq";
declare global {
interface Generator<T = unknown, TReturn = any, TNext = unknown> {
zip<TInput>(that: Generator<TInput, TReturn, TNext> | TInput[]): Generator<[T, TInput], TReturn, TNext>;
zip<TInput, TResult>(that: Generator<TInput, TReturn, TNext> | TInput[], selector: (a: T, b: TInput) => TResult): Generator<TResult, TReturn, TNext>;
}
interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> {
zip<TInput>(that: AsyncGenerator<TInput, TReturn, TNext> | Generator<TInput, TReturn, TNext> | TInput[]): AsyncGenerator<[T, TInput], TReturn, TNext>;
zip<TInput, TResult>(that: AsyncGenerator<TInput, TReturn, TNext> | Generator<TInput, TReturn, TNext> | TInput[], selector: (a: T, b: TInput) => Promised<TResult>): AsyncGenerator<TResult, TReturn, TNext>;
}
}