retryable-operation
Version:
a simple package that allow executing retryable operation and providing retry options
19 lines (17 loc) • 439 B
text/typescript
export type Ok<T> = { _tag: "Ok"; ok: T; isOk: true; isErr: false };
export type Err<E> = { _tag: "Err"; err: E; isErr: true; isOk: false };
export type Result<T, E> = Ok<T> | Err<E>;
export const Result = Object.freeze({
Ok: <T, E>(ok: T): Result<T, E> => ({
_tag: "Ok",
ok,
isOk: true,
isErr: false,
}),
Err: <T, E>(err: E): Result<T, E> => ({
_tag: "Err",
err,
isErr: true,
isOk: false,
}),
});