@whatwg-node/promise-helpers
Version:
Promise helpers
16 lines (15 loc) • 1.65 kB
text/typescript
export type MaybePromise<T> = MaybePromiseLike<T, Promise<T>>;
export type MaybePromiseLike<T, TPromise extends PromiseLike<T> = PromiseLike<T>> = TPromise | T;
export declare function isPromise<T>(value: MaybePromise<T>): value is Promise<T>;
export declare function isPromiseLike<T, TPromiseLike extends PromiseLike<T>>(value: MaybePromiseLike<T, TPromiseLike>): value is TPromiseLike;
export declare function handleMaybePromiseLike<TInput, TOutput, TPromiseLikeInput extends PromiseLike<TInput> = PromiseLike<TInput>, TPromiseLikeOutput extends PromiseLike<TOutput> = PromiseLike<TOutput>>(inputFactory: () => MaybePromiseLike<TInput, TPromiseLikeInput>, outputSuccessFactory: (value: TInput) => MaybePromiseLike<TOutput, TPromiseLikeOutput>, outputErrorFactory?: (err: any) => MaybePromiseLike<TOutput, TPromiseLikeOutput>): MaybePromiseLike<TOutput, TPromiseLikeOutput>;
export declare function handleMaybePromise<TInput, TOutput>(inputFactory: () => MaybePromise<TInput>, outputSuccessFactory: (value: TInput) => MaybePromise<TOutput>, outputErrorFactory?: (err: any) => MaybePromise<TOutput>): MaybePromise<TOutput>;
export declare function fakePromise<T>(value: T): Promise<T>;
export interface DeferredPromise<T = void> {
promise: Promise<T>;
resolve: (value: T) => void;
reject: (reason: any) => void;
}
export declare function createDeferredPromise<T = void>(): DeferredPromise<T>;
export declare function iterateAsyncVoid<TInput>(iterable: Iterable<TInput>, callback: (input: TInput, stopEarly: () => void) => MaybePromise<void>): MaybePromise<void>;
export declare function fakeRejectPromise(error: unknown): Promise<never>;