12 lines
317 B
TypeScript
12 lines
317 B
TypeScript
export type SafeTryResult<T> = Promise<
|
|
[T, undefined] | [undefined, Error | unknown]
|
|
>
|
|
|
|
export async function safeTry<T>(func: Promise<T>): SafeTryResult<T> {
|
|
try {
|
|
return [await func, undefined] as const
|
|
} catch (err) {
|
|
return [undefined, err instanceof Error ? err : (err as unknown)] as const
|
|
}
|
|
}
|