/** * 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 => { try { await fn(); } catch (error) { const errorInstance = error instanceof Error ? error : new Error(`${error}`); onError?.(errorInstance); } };