return-style
Version:
Non-intrusively convert the result of any function or promise to the user's desired style.
13 lines (11 loc) • 307 B
text/typescript
import { Awaitable } from '@blackglory/prelude'
export async function getFailureAsync<E = Error>(
fn: () => Awaitable<unknown>
): Promise<[failed: true, error: E] | [failed: false, error: undefined]> {
try {
await fn()
return [false, void 0]
} catch (err) {
return [true, err as E]
}
}