geninq
Version:
A JavaScript version of the Linq library for Generators
50 lines (49 loc) • 2.9 kB
TypeScript
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>;
}
}