UNPKG

typed-utilities

Version:
462 lines (461 loc) 12.8 kB
declare enum AsyncResultTag { Pending = "pending", Resolved = "resolved", Rejected = "rejected" } export declare type Pending = [tag: AsyncResultTag.Pending]; export declare type Rejected<Error> = [tag: AsyncResultTag.Rejected, error: Error]; export declare type Resolved<Value> = [tag: AsyncResultTag.Resolved, value: Value]; export declare type AsyncResult<Value = unknown, Error = unknown> = Pending | Rejected<Error> | Resolved<Value>; export declare type AsyncResultDependencyList<Value = unknown, Error = unknown> = readonly [tag: AsyncResultTag.Pending, value: null, error: null] | readonly [tag: AsyncResultTag.Rejected, value: null, error: Error] | readonly [tag: AsyncResultTag.Resolved, value: Value, error: null]; declare function isPending(result: AsyncResult<unknown, unknown>): result is Pending; declare function assertPending(result: AsyncResult<unknown, unknown>, message?: string): asserts result is Pending; declare function isRejected<Error = unknown>(result: AsyncResult<unknown, Error>): result is Rejected<Error>; declare function assertRejected<Error = unknown>(result: AsyncResult<unknown, Error>, message?: string): asserts result is Rejected<Error>; declare function isResolved<Value = unknown>(result: AsyncResult<Value, unknown>): result is Resolved<Value>; declare function assertResolved<Value = unknown>(result: AsyncResult<Value>, message?: string): asserts result is Resolved<Value>; declare type Match<IfPending, IfRejected, IfResolved, Value = unknown, Error = unknown> = { readonly pending: () => IfPending; readonly rejected: (error: Error) => IfRejected; readonly resolved: (value: Value) => IfResolved; }; declare type Join = { <V1>(values: readonly [AsyncResult<V1>]): AsyncResult<[V1], AggregateError>; <V1, V2>(values: readonly [AsyncResult<V1>, AsyncResult<V2>]): AsyncResult<[ V1, V2 ], AggregateError>; <V1, V2, V3>(values: readonly [AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>]): AsyncResult<[V1, V2, V3], AggregateError>; <V1, V2, V3, V4>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4> ]): AsyncResult<[V1, V2, V3, V4], AggregateError>; <V1, V2, V3, V4, V5>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5> ]): AsyncResult<[V1, V2, V3, V4, V5], AggregateError>; <V1, V2, V3, V4, V5, V6>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6> ]): AsyncResult<[V1, V2, V3, V4, V5, V6], AggregateError>; <V1, V2, V3, V4, V5, V6, V7>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7> ]): AsyncResult<[V1, V2, V3, V4, V5, V6, V7], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8> ]): AsyncResult<[V1, V2, V3, V4, V5, V6, V7, V8], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9> ]): AsyncResult<[V1, V2, V3, V4, V5, V6, V7, V8, V9], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9, V10>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9>, AsyncResult<V10> ]): AsyncResult<[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9>, AsyncResult<V10>, AsyncResult<V11> ]): AsyncResult<[ V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11 ], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9>, AsyncResult<V10>, AsyncResult<V11>, AsyncResult<V12> ]): AsyncResult<[ V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12 ], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9>, AsyncResult<V10>, AsyncResult<V11>, AsyncResult<V12>, AsyncResult<V13> ]): AsyncResult<[ V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13 ], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9>, AsyncResult<V10>, AsyncResult<V11>, AsyncResult<V12>, AsyncResult<V13>, AsyncResult<V14> ]): AsyncResult<[ V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14 ], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9>, AsyncResult<V10>, AsyncResult<V11>, AsyncResult<V12>, AsyncResult<V13>, AsyncResult<V14>, AsyncResult<V15> ]): AsyncResult<[ V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15 ], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9>, AsyncResult<V10>, AsyncResult<V11>, AsyncResult<V12>, AsyncResult<V13>, AsyncResult<V14>, AsyncResult<V15>, AsyncResult<V16> ]): AsyncResult<[ V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16 ], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9>, AsyncResult<V10>, AsyncResult<V11>, AsyncResult<V12>, AsyncResult<V13>, AsyncResult<V14>, AsyncResult<V15>, AsyncResult<V16>, AsyncResult<V17> ]): AsyncResult<[ V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17 ], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9>, AsyncResult<V10>, AsyncResult<V11>, AsyncResult<V12>, AsyncResult<V13>, AsyncResult<V14>, AsyncResult<V15>, AsyncResult<V16>, AsyncResult<V17>, AsyncResult<V18> ]): AsyncResult<[ V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18 ], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9>, AsyncResult<V10>, AsyncResult<V11>, AsyncResult<V12>, AsyncResult<V13>, AsyncResult<V14>, AsyncResult<V15>, AsyncResult<V16>, AsyncResult<V17>, AsyncResult<V18>, AsyncResult<V19> ]): AsyncResult<[ V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19 ], AggregateError>; <V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20>(values: readonly [ AsyncResult<V1>, AsyncResult<V2>, AsyncResult<V3>, AsyncResult<V4>, AsyncResult<V5>, AsyncResult<V6>, AsyncResult<V7>, AsyncResult<V8>, AsyncResult<V9>, AsyncResult<V10>, AsyncResult<V11>, AsyncResult<V12>, AsyncResult<V13>, AsyncResult<V14>, AsyncResult<V15>, AsyncResult<V16>, AsyncResult<V17>, AsyncResult<V18>, AsyncResult<V19>, AsyncResult<V20> ]): AsyncResult<[ V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20 ], AggregateError>; <V>(values: readonly AsyncResult<V>[]): AsyncResult<V[], AggregateError>; }; export declare const AsyncResult: { Tag: typeof AsyncResultTag; is: { pending: typeof isPending; rejected: typeof isRejected; resolved: typeof isResolved; }; assert: { pending: typeof assertPending; rejected: typeof assertRejected; resolved: typeof assertResolved; }; of: { pending: () => Pending & AsyncResult<never, never>; rejected: <Error_1 = unknown>(error: Error_1) => Rejected<Error_1>; resolved: <Value = unknown>(value: Value) => Resolved<Value>; }; to: { resolvedValue: <Value_1 = unknown>(resolved: Resolved<Value_1>) => Value_1; rejectedError: <Error_2 = unknown>(rejected: Rejected<Error_2>) => Error_2; dependencyList: <Value_2 = unknown, Error_3 = unknown>(result: AsyncResult<Value_2, Error_3>) => AsyncResultDependencyList<Value_2, Error_3>; }; match: <IfPending, IfRejected, IfResolved, Value_3 = unknown, Error_4 = unknown>(result: AsyncResult<Value_3, Error_4>, match: Match<IfPending, IfRejected, IfResolved, Value_3, Error_4>) => IfPending | IfRejected | IfResolved; join: Join; pipe: <T, U>(result: AsyncResult<T, unknown>, fn: (value: T) => U) => AsyncResult<U, unknown>; catch: <T_1, E, S>(result: AsyncResult<T_1, E>, fn: (error: E) => S) => AsyncResult<T_1 | S, unknown>; }; export {};