export type AsyncResult = | [data: undefined, error: TError] | [data: TData, error: undefined]; export function asyncResult( promise: Promise, ): Promise> { return Promise.resolve(promise).then( (data) => [data, undefined] as [TData, undefined], (error) => [undefined, error] as [undefined, TError], ); }