UNPKG

geninq

Version:

A JavaScript version of the Linq library for Generators

46 lines (42 loc) 1.52 kB
import { Build, Promised } from "./utils"; import "./select"; import "./array"; declare global { interface Generator<T = unknown, TReturn = any, TNext = unknown> { /** * Returns the minimum value in a sequence of number values. * @returns The minimum value in the sequence. */ min(this: Generator<number, TReturn, TNext>): number; /** * Invokes a transform function on each element of a generic * sequence and returns the minimum resulting value. * @param selector A transform function to apply to each element. * @returns The minimum value in the sequence. */ min(selector: (item: T) => number): number; } interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> { /** * Returns the minimum value in a sequence of number values. * @returns The minimum value in the sequence. */ min(this: Generator<number, TReturn, TNext>): Promise<number>; /** * Invokes a transform function on each element of a generic * sequence and returns the minimum resulting value. * @param selector A transform function to apply to each element. * @returns The minimum value in the sequence. */ min(selector: (item: T) => Promised<number>): Promise<number>; } } Build( "min", function (selector = (i) => i as number) { return Math.min(...this.select(selector).array()); }, async function (selector = (i) => i as number) { return Math.min(...(await this.select(selector).array())); } );