diff --git a/src/make-fetching.ts b/src/make-fetching.ts index c0e453d..b33889b 100644 --- a/src/make-fetching.ts +++ b/src/make-fetching.ts @@ -73,11 +73,21 @@ function makeFetching>( increment(); - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - const result = callback(...args); + let result: unknown; - if (typeof result === 'object' && result.finally) { - result.finally(() => { + try { + result = callback.apply(instance, args); + } catch (error) { + decrement(); + throw error; + } + + if ( + result && + typeof result === 'object' && + typeof (result as { finally?: unknown }).finally === 'function' + ) { + void (result as Promise).finally(() => { decrement(); }); } else {