alternative tangled frontend (extremely wip)
1/* eslint-disable */
2export type Ok<T = void> = T extends undefined
3 ? { ok: true }
4 : { ok: true; data: T };
5
6export type Err<E = void> = E extends undefined
7 ? { ok: false }
8 : { ok: false; error: E };
9
10export type Result<T = void, E = void> = Ok<T> | Err<E>;
11
12export const ok = <T = void>(data?: T): Ok<T> =>
13 data === undefined
14 ? ({ ok: true } as Ok<T>)
15 : ({ ok: true, data } as Ok<T>);
16
17export const err = <E = void>(error?: E): Err<E> =>
18 error === undefined
19 ? ({ ok: false } as Err<E>)
20 : ({ ok: false, error } as Err<E>);