@kontent-ai/core-sdk
Version:
Core package with shared / common functionality for Kontent.ai SDKs
31 lines (26 loc) • 669 B
text/typescript
type Success<TData> = {
readonly success: true;
readonly data: TData;
readonly error?: never;
};
type Failure<TError = unknown> = {
readonly success: false;
readonly data?: never;
readonly error: TError;
};
export type Result<TData, TError = unknown> = Success<TData> | Failure<TError>;
export async function tryCatchAsync<T>(fn: () => Promise<T>): Promise<Result<T>> {
try {
const data = await fn();
return { success: true, data };
} catch (error) {
return { success: false, error };
}
}
export function tryCatch<T>(fn: () => T): Result<T> {
try {
return { success: true, data: fn() };
} catch (error) {
return { success: false, error };
}
}