export interface ErrorCommon {
report?: boolean
error?: unknown
notifyUser?: boolean
message?: string
userFriendlyMessage?: string
}
export class DatabaseConnectionError extends Data.TaggedClass("DatabaseConnectionError")<ErrorCommon> {}
const setupDatabaseConnection = () => pipe(
//.... fetch auth data, tokens, setup connection, stuff that could fail with many different errors
Effect.catchAllCause(c =>
pipe(
Effect.logError(`Error setting up database connection`, c),
Effect.flatMap(() =>
Effect.fail(new DatabaseConnectionError({message: `Error setting up database connection`, report: true, error: c})),
),
),
),
)
export interface ErrorCommon {
report?: boolean
error?: unknown
notifyUser?: boolean
message?: string
userFriendlyMessage?: string
}
export class DatabaseConnectionError extends Data.TaggedClass("DatabaseConnectionError")<ErrorCommon> {}
const setupDatabaseConnection = () => pipe(
//.... fetch auth data, tokens, setup connection, stuff that could fail with many different errors
Effect.catchAllCause(c =>
pipe(
Effect.logError(`Error setting up database connection`, c),
Effect.flatMap(() =>
Effect.fail(new DatabaseConnectionError({message: `Error setting up database connection`, report: true, error: c})),
),
),
),
)