diff options
| author | Kinfe Michael Tariku <[email protected]> | 2024-06-25 19:56:54 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-06-25 19:56:54 +0300 |
| commit | f46e42c2dfd1b223d4ad701a86d05fc0bb380e45 (patch) | |
| tree | f17fdfadf3bec08eee7f02da33af952796657254 /apps/web/lib/handle-errors.ts | |
| parent | fix: import using absolute path (diff) | |
| parent | dev and prod databases (diff) | |
| download | supermemory-f46e42c2dfd1b223d4ad701a86d05fc0bb380e45.tar.xz supermemory-f46e42c2dfd1b223d4ad701a86d05fc0bb380e45.zip | |
Merge branch 'main' into feat/landing_revamp
Diffstat (limited to 'apps/web/lib/handle-errors.ts')
| -rw-r--r-- | apps/web/lib/handle-errors.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/apps/web/lib/handle-errors.ts b/apps/web/lib/handle-errors.ts new file mode 100644 index 00000000..42cae589 --- /dev/null +++ b/apps/web/lib/handle-errors.ts @@ -0,0 +1,25 @@ +import { isRedirectError } from "next/dist/client/components/redirect"; +import { toast } from "sonner"; +import { z } from "zod"; + +export function getErrorMessage(err: unknown) { + const unknownError = "Something went wrong, please try again later."; + + if (err instanceof z.ZodError) { + const errors = err.issues.map((issue) => { + return issue.message; + }); + return errors.join("\n"); + } else if (err instanceof Error) { + return err.message; + } else if (isRedirectError(err)) { + throw err; + } else { + return unknownError; + } +} + +export function showErrorToast(err: unknown) { + const errorMessage = getErrorMessage(err); + return toast.error(errorMessage); +} |