mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-02-04 13:21:45 +00:00
21 lines
385 B
TypeScript
21 lines
385 B
TypeScript
type Success<T> = {
|
|
data: T;
|
|
error: null;
|
|
};
|
|
|
|
type Failure<E> = {
|
|
data: null;
|
|
error: E;
|
|
};
|
|
|
|
export type Result<T, E = Error> = Success<T> | Failure<E>;
|
|
|
|
export async function tryCatch<T, E = Error>(promise: Promise<T>): Promise<Result<T, E>> {
|
|
try {
|
|
const data = await promise;
|
|
return { data, error: null };
|
|
} catch (error) {
|
|
return { data: null, error: error as E };
|
|
}
|
|
}
|