@4players/odin-common
Version:
A collection of commonly used type definitions and utility functions across ODIN web projects
19 lines (18 loc) • 718 B
TypeScript
export declare function assert(condition: unknown, message: string): asserts condition;
export declare function fail(message: string): never;
export type Failure = {
type: 'Failure';
reason: string;
};
export type Success<T> = {
type: 'Success';
value: T;
};
export type Result<T> = Success<T> | Failure;
export declare function success<T>(value: T): Success<T>;
export declare function success(value: void): Success<void>;
export declare function failure(reason: string): Failure;
export declare function unwrap<T>(result: Result<T>): T;
export declare function unwrapOr<T>(result: Result<T>, fallback: T): T;
export type Accept<T> = (result: T) => void;
export type Reject = (reason: Error) => void;