UNPKG

@remcostoeten/fync

Version:

Unified TypeScript library for 9 popular APIs with consistent functional architecture

31 lines 1.21 kB
/** * Result type for predictable error handling * Following the pattern specified in architecture.md */ type TSuccess<T> = { ok: true; value: T; }; type TFailure<E = string> = { ok: false; error: E; }; export type TResult<T, E = string> = TSuccess<T> | TFailure<E>; export type TApiError = { message: string; statusCode?: number; details?: Record<string, any>; }; /** * Helper functions for creating and handling results */ export declare function success<T>(value: T): TSuccess<T>; export declare function failure<E = string>(error: E): TFailure<E>; export declare function isSuccess<T, E>(result: TResult<T, E>): result is TSuccess<T>; export declare function isFailure<T, E>(result: TResult<T, E>): result is TFailure<E>; export declare function unwrap<T, E>(result: TResult<T, E>): T; export declare function unwrapOr<T, E>(result: TResult<T, E>, defaultValue: T): T; export declare function mapResult<T, U, E>(result: TResult<T, E>, fn: (value: T) => U): TResult<U, E>; export declare function tryCatch<T>(fn: () => Promise<T>, errorTransform?: (error: any) => string | TApiError): Promise<TResult<T, string | TApiError>>; export {}; //# sourceMappingURL=result.d.ts.map