evnty
Version:
Async-first, reactive event handling library for complex event flows in browser and Node.js
50 lines (49 loc) • 1.51 kB
TypeScript
import { Fn, MaybePromise } from './types.js';
declare const ERR_BRAND: unique symbol;
/**
* @internal
*/
export interface ResultError<E = unknown> {
readonly error: E;
readonly [ERR_BRAND]: true;
}
/**
* @internal
*/
export declare function err<E>(error: E): ResultError<E>;
/**
* @internal
*/
export declare function isErr(result: unknown): result is ResultError<unknown>;
/**
* @internal
*/
export declare function isOk(result: unknown): boolean;
/**
* @internal
*/
export type DispatchResultItem<T> = MaybePromise<T> | ResultError;
/**
* @internal
*/
export declare function unwrap<T>(results: DispatchResultItem<T>[]): MaybePromise<T>[];
/**
* Wraps an array of values or promises (typically listener results) and provides batch resolution.
*
* @template T
*/
export declare class DispatchResult<T> implements PromiseLike<T[]> {
#private;
readonly [Symbol.toStringTag] = "DispatchResult";
constructor(results: DispatchResultItem<T>[]);
then<TResult1 = T, TResult2 = never>(onfulfilled?: Fn<[T[]], MaybePromise<TResult1>> | null, onrejected?: Fn<[any], MaybePromise<TResult2>> | null): PromiseLike<TResult1 | TResult2>;
/**
* Resolves all listener results, rejecting if any promise rejects or any ResultError exists.
*/
all(): T[] | Promise<T[]>;
/**
* Waits for all listener results to settle, regardless of fulfillment or rejection.
*/
settled(): PromiseSettledResult<T>[] | Promise<PromiseSettledResult<T>[]>;
}
export {};