export type Success = { error?: undefined | null, data: D } export type Failure = { data?: undefined | null, error: E } /** * Result */ export type Result = Failure | Success export async function tryCatch(func: Promise): Promise> { try { const res = await func; return { data: res } } catch (e: unknown) { return { error: { msg: e as Error } } } }