UNPKG

villa

Version:

Promise utilities for async/await-ready environment.

47 lines (46 loc) 2.48 kB
import { Resolvable } from '.'; export declare type EachHandler<T> = (value: T, index: number, values: T[]) => Resolvable<void | boolean>; /** * Asynchronous version of `Array#forEach()`. */ export declare function each<T>(values: T[], handler: EachHandler<T>): Promise<boolean>; export declare type SomeHandler<T> = (value: T, index: number, values: T[]) => Resolvable<boolean>; /** * Asynchronous version of `Array#some()`. */ export declare function some<T>(values: T[], handler: SomeHandler<T>): Promise<boolean>; export declare type EveryHandler<T> = (value: T, index: number, values: T[]) => Resolvable<boolean>; /** * Asynchronous version of `Array#every()`. */ export declare function every<T>(values: T[], handler: EveryHandler<T>): Promise<boolean>; export declare type MapTransformer<T, TResult> = (value: T, index: number, values: T[]) => Resolvable<TResult>; /** * Asynchronous version of `Array#map()` with basic concurrency control. */ export declare function map<T, TResult>(values: T[], transformer: MapTransformer<T, TResult>, concurrency?: number): Promise<TResult[]>; export declare type ReduceTransformer<T, TResult> = (result: TResult, value: T, index: number, values: T[]) => Resolvable<TResult>; /** * Asynchronous version of `Array#reduce()`. */ export declare function reduce<T, TResult>(values: T[], transformer: ReduceTransformer<T, TResult>, initial: TResult): Promise<TResult>; export declare function reduce<T>(values: T[], transformer: ReduceTransformer<T, T>): Promise<T | undefined>; /** * Asynchronous version of `Array#reduceRight()`. */ export declare function reduceRight<T, TResult>(values: T[], transformer: ReduceTransformer<T, TResult>, initial: TResult): Promise<TResult>; export declare function reduceRight<T>(values: T[], transformer: ReduceTransformer<T, T>): Promise<T | undefined>; export declare type FilterHandler<T> = (value: T, index: number, values: T[]) => Resolvable<boolean>; /** * Asynchronous version of `Array#filter()`. */ export declare function filter<T>(values: T[], handler: FilterHandler<T>): Promise<T[]>; export declare type FindHandler<T> = (value: T, index: number, values: T[]) => Resolvable<boolean>; /** * Asynchronous version of `Array#find()`. */ export declare function find<T>(values: T[], handler: FindHandler<T>): Promise<T | undefined>; /** * Asynchronous version of `Array#findIndex()`. */ export declare function findIndex<T>(values: T[], handler: FindHandler<T>): Promise<number>;