export const tryDexieOperation = <T>(
dexieOperation: () => Promise<T>
): Effect.Effect<T, DexieException> => {
// This successfully gives me the call site, but feels weird
const callSite = new Error().stack
return Effect.tryPromise(dexieOperation).pipe(
Effect.mapError(
(unknownException) =>
new DexieException({
cause: classifyDexieError(unknownException.error as DexieError),
})
),
Effect.tapError(logDexieException(callSite))
)
}
export const tryDexieOperation = <T>(
dexieOperation: () => Promise<T>
): Effect.Effect<T, DexieException> => {
// This successfully gives me the call site, but feels weird
const callSite = new Error().stack
return Effect.tryPromise(dexieOperation).pipe(
Effect.mapError(
(unknownException) =>
new DexieException({
cause: classifyDexieError(unknownException.error as DexieError),
})
),
Effect.tapError(logDexieException(callSite))
)
}