typed-utilities
Version:
Strongly typed general purpose utilities
368 lines (367 loc) • 9.46 kB
TypeScript
declare type AsyncConcurrentOptions = {
readonly maxConcurrency?: number;
};
export declare type MapAsync = <I, T>(items: readonly I[], fn: (item: I) => Promise<T>, opts?: AsyncConcurrentOptions) => Promise<T[]>;
export declare const mapAsyncSerial: MapAsync;
export declare const mapAsyncConcurrent: MapAsync;
declare type MapEntriesAsync<T> = {
readonly [K in keyof T]: T[K] extends PromiseLike<infer U> ? U : T;
};
export declare const mapEntriesAsyncConcurrent: <T>(entries: T, opts?: AsyncConcurrentOptions | undefined) => Promise<MapEntriesAsync<T>>;
export declare const mapEntriesAsyncSerial: <T>(entries: T) => Promise<MapEntriesAsync<T>>;
declare type ResolveAll = {
(values: readonly [], opts?: AsyncConcurrentOptions): Promise<[]>;
<T1>(values: readonly [Promise<T1>], opts?: AsyncConcurrentOptions): Promise<[
T1
]>;
<T1, T2>(values: readonly [Promise<T1>, Promise<T2>], opts?: AsyncConcurrentOptions): Promise<[T1, T2]>;
<T1, T2, T3>(values: readonly [Promise<T1>, Promise<T2>, Promise<T3>], opts?: AsyncConcurrentOptions): Promise<[T1, T2, T3]>;
<T1, T2, T3, T4>(values: readonly [Promise<T1>, Promise<T2>, Promise<T3>, Promise<T4>], opts?: AsyncConcurrentOptions): Promise<[T1, T2, T3, T4]>;
<T1, T2, T3, T4, T5>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>
], opts?: AsyncConcurrentOptions): Promise<[T1, T2, T3, T4, T5]>;
<T1, T2, T3, T4, T5, T6>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>
], opts?: AsyncConcurrentOptions): Promise<[T1, T2, T3, T4, T5, T6]>;
<T1, T2, T3, T4, T5, T6, T7>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>
], opts?: AsyncConcurrentOptions): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
<T1, T2, T3, T4, T5, T6, T7, T8>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>
]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>
], opts?: AsyncConcurrentOptions): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>,
Promise<T10>
], opts?: AsyncConcurrentOptions): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>,
Promise<T10>,
Promise<T11>
], opts?: AsyncConcurrentOptions): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>,
Promise<T10>,
Promise<T11>,
Promise<T12>
], opts?: AsyncConcurrentOptions): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>,
Promise<T10>,
Promise<T11>,
Promise<T12>,
Promise<T13>
], opts?: AsyncConcurrentOptions): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>,
Promise<T10>,
Promise<T11>,
Promise<T12>,
Promise<T13>,
Promise<T14>
], opts?: AsyncConcurrentOptions): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>,
Promise<T10>,
Promise<T11>,
Promise<T12>,
Promise<T13>,
Promise<T14>,
Promise<T15>
], opts?: AsyncConcurrentOptions): Promise<[
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
T12,
T13,
T14,
T15
]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>,
Promise<T10>,
Promise<T11>,
Promise<T12>,
Promise<T13>,
Promise<T14>,
Promise<T15>,
Promise<T16>
], opts?: AsyncConcurrentOptions): Promise<[
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
T12,
T13,
T14,
T15,
T16
]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>,
Promise<T10>,
Promise<T11>,
Promise<T12>,
Promise<T13>,
Promise<T14>,
Promise<T15>,
Promise<T16>,
Promise<T17>
], opts?: AsyncConcurrentOptions): Promise<[
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
T12,
T13,
T14,
T15,
T16,
T17
]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>,
Promise<T10>,
Promise<T11>,
Promise<T12>,
Promise<T13>,
Promise<T14>,
Promise<T15>,
Promise<T16>,
Promise<T17>,
Promise<T18>
], opts?: AsyncConcurrentOptions): Promise<[
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
T12,
T13,
T14,
T15,
T16,
T17,
T18
]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>,
Promise<T10>,
Promise<T11>,
Promise<T12>,
Promise<T13>,
Promise<T14>,
Promise<T15>,
Promise<T16>,
Promise<T17>,
Promise<T18>,
Promise<T19>
], opts?: AsyncConcurrentOptions): Promise<[
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
T12,
T13,
T14,
T15,
T16,
T17,
T18,
T19
]>;
<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20>(values: readonly [
Promise<T1>,
Promise<T2>,
Promise<T3>,
Promise<T4>,
Promise<T5>,
Promise<T6>,
Promise<T7>,
Promise<T8>,
Promise<T9>,
Promise<T10>,
Promise<T11>,
Promise<T12>,
Promise<T13>,
Promise<T14>,
Promise<T15>,
Promise<T16>,
Promise<T17>,
Promise<T18>,
Promise<T19>,
Promise<T20>
], opts?: AsyncConcurrentOptions): Promise<[
T1,
T2,
T3,
T4,
T5,
T6,
T7,
T8,
T9,
T10,
T11,
T12,
T13,
T14,
T15,
T16,
T17,
T18,
T19,
T20
]>;
<T>(values: readonly Promise<T>[], opts?: AsyncConcurrentOptions): Promise<T[]>;
};
export declare const resolveAllSerial: ResolveAll;
export declare const resolveAllConcurrent: ResolveAll;
export {};