aboutsummaryrefslogtreecommitdiff
path: root/apps/web/lib/handle-errors.ts
diff options
context:
space:
mode:
authorCodeTorso <[email protected]>2024-06-20 08:38:21 -0600
committerGitHub <[email protected]>2024-06-20 08:38:21 -0600
commitaf90b960af7a8e6debc059f8ca67af878f0f409a (patch)
tree8097644103d6f49b5b247ddada12e78132167f93 /apps/web/lib/handle-errors.ts
parentadd: animated query input (diff)
parentadded multi-turn conversations (diff)
downloadsupermemory-af90b960af7a8e6debc059f8ca67af878f0f409a.tar.xz
supermemory-af90b960af7a8e6debc059f8ca67af878f0f409a.zip
Merge branch 'codetorso' into kartik
Diffstat (limited to 'apps/web/lib/handle-errors.ts')
-rw-r--r--apps/web/lib/handle-errors.ts25
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);
+}