import { Cause, Effect } from "effect-app" import { logError, reportError } from "../errorReporter.js" // const onExitReportError = (name: string, unknownOnly?: boolean) => { // const report = reportError(name) // const log = logError(name) // return (self: Effect.Effect) => // Effect.onExit(self, (exit) => // Exit.isFailure(exit) // ? unknownOnly // ? Cause.hasInterruptsOnly(exit.cause) || Cause.isDie(exit.cause) // ? report(exit.cause) // : log(exit.cause) // : report(exit.cause) // : Effect.void) // } const tapErrorCause = (name: string, unknownOnly?: boolean) => { const report = reportError(name) const log = logError(name) return (self: Effect.Effect) => Effect.tapCause(self, (cause) => unknownOnly ? Cause.hasFails(cause) ? log(cause) : report(cause) : report(cause)) } export const reportRequestError = tapErrorCause("request") export const reportUnknownRequestError = tapErrorCause("request", true)