16 lines
511 B
TypeScript
16 lines
511 B
TypeScript
/**
|
|
* Tries to execute an async function and handles any errors that occur.
|
|
* @param fn - The function to execute.
|
|
* @param onError - The callback to call if the function fails.
|
|
* @returns The result of the function.
|
|
*/
|
|
export const tryAsync = async (fn: () => unknown, onError?: (error: Error) => void): Promise<void> => {
|
|
try {
|
|
await fn();
|
|
} catch (error) {
|
|
const errorInstance = error instanceof Error ? error : new Error(`${error}`);
|
|
|
|
onError?.(errorInstance);
|
|
}
|
|
};
|