UNPKG

evnty

Version:

Async-first, reactive event handling library for complex event flows in browser and Node.js

50 lines (49 loc) 1.51 kB
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 {};