mirror of
https://github.com/get-drexa/drive.git
synced 2025-12-01 05:51:39 +00:00
30
src/lib/error.ts
Normal file
30
src/lib/error.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { toast } from "sonner"
|
||||
import { Code as ErrorCode, isApplicationError } from "../../convex/model/error"
|
||||
|
||||
const ERROR_MESSAGE = {
|
||||
[ErrorCode.DirectoryExists]: "Directory already exists",
|
||||
[ErrorCode.FileExists]: "File already exists",
|
||||
[ErrorCode.Internal]: "Internal application error",
|
||||
} as const
|
||||
|
||||
export function formatError(error: unknown): string {
|
||||
if (isApplicationError(error)) {
|
||||
return ERROR_MESSAGE[error.data.code]
|
||||
}
|
||||
if (error instanceof Error) {
|
||||
return error.message
|
||||
}
|
||||
return "Unknown error"
|
||||
}
|
||||
|
||||
export function defaultOnError(error: unknown) {
|
||||
console.log(error)
|
||||
toast.error(formatError(error))
|
||||
}
|
||||
|
||||
export function withDefaultOnError(fn: (error: unknown) => void) {
|
||||
return (error: unknown) => {
|
||||
defaultOnError(error)
|
||||
fn(error)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user