villa
Version:
Promise utilities for async/await-ready environment.
47 lines (46 loc) • 2.48 kB
TypeScript
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>;