UNPKG

lean4-code-actions

Version:

Refactorings and snippets for Lean 4

37 lines (27 loc) 838 B
import { isFunction, isString } from 'remeda' import { Cage, CageP } from '../cage' export type ErrorCage = string | Cage<Error> export type ErrorCageP = string | CageP<Error> export function uncageE(cage: (() => Error)): Error export function uncageE(cage: Error): Error export function uncageE(cage: ErrorCage) { if (isFunction(cage)) { return cage() } else if (isString(cage)) { return new Error(cage) } else { return cage } } export function uncageEP(cage: (() => Promise<Error>)): Promise<Error> export function uncageEP(cage: (() => Error)): Promise<Error> export function uncageEP(cage: Error): Promise<Error> export async function uncageEP(cage: ErrorCageP) { if (isFunction(cage)) { return await cage() } else if (isString(cage)) { return new Error(cage) } else { return cage } }