UNPKG

geninq

Version:

A JavaScript version of the Linq library for Generators

50 lines (49 loc) 2.9 kB
import { Promised } from "./utils"; declare global { interface Generator<T = unknown, TReturn = any, TNext = unknown> { /** * Returns distinct elements from a sequence by using the default equality comparer to compare values. * @returns A generator that contains distinct elements from the source sequence. */ distinct(this: Generator<number, TReturn, TNext>): Generator<number, TReturn, TNext>; /** * Returns distinct elements from a sequence by using the default equality comparer to compare values. * @returns A generator that contains distinct elements from the source sequence. */ distinct(this: Generator<string, TReturn, TNext>): Generator<string, TReturn, TNext>; /** * Returns distinct elements from a sequence by using the default equality comparer to compare values. * @returns A generator that contains distinct elements from the source sequence. */ distinct(this: Generator<boolean, TReturn, TNext>): Generator<boolean, TReturn, TNext>; /** * Returns distinct elements from a sequence by using a specified comparitor to compare values. * @param comparitor A comparitor to compare values. * @returns A generator that contains distinct elements from the source sequence. */ distinct(comparitor: (a: T, b: T) => boolean): Generator<T, TReturn, TNext>; } interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> { /** * Returns distinct elements from a sequence by using the default equality comparer to compare values. * @returns A generator that contains distinct elements from the source sequence. */ distinct(this: AsyncGenerator<number, TReturn, TNext>): AsyncGenerator<number, TReturn, TNext>; /** * Returns distinct elements from a sequence by using the default equality comparer to compare values. * @returns A generator that contains distinct elements from the source sequence. */ distinct(this: AsyncGenerator<string, TReturn, TNext>): AsyncGenerator<string, TReturn, TNext>; /** * Returns distinct elements from a sequence by using the default equality comparer to compare values. * @returns A generator that contains distinct elements from the source sequence. */ distinct(this: AsyncGenerator<boolean, TReturn, TNext>): AsyncGenerator<boolean, TReturn, TNext>; /** * Returns distinct elements from a sequence by using a specified comparitor to compare values. * @param comparitor A comparitor to compare values. * @returns A generator that contains distinct elements from the source sequence. */ distinct(comparitor: (a: T, b: T) => Promised<boolean>): AsyncGenerator<T, TReturn, TNext>; } }