2024-10-06 01:20:32 +01:00
|
|
|
export function tc<T>(tryFunc: () => T, catchFunc: T | ((e?: Error) => T)) {
|
|
|
|
|
let val: T;
|
|
|
|
|
try {
|
|
|
|
|
val = tryFunc();
|
|
|
|
|
} catch (e: unknown) {
|
|
|
|
|
if (typeof catchFunc === 'function') {
|
2025-12-22 02:36:48 +01:00
|
|
|
// @ts-expect-error - catchFunc is a function
|
2024-10-06 01:20:32 +01:00
|
|
|
val = catchFunc(e);
|
|
|
|
|
} else {
|
|
|
|
|
val = catchFunc;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return val;
|
|
|
|
|
}
|