We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 3ab209e commit bff390cCopy full SHA for bff390c
1 file changed
chat/src/lib/error-utils.ts
@@ -0,0 +1,28 @@
1
+export type ErrorWithMessage = {
2
+ message: string
3
+}
4
+
5
+function isErrorWithMessage(error: unknown): error is ErrorWithMessage {
6
+ return (
7
+ typeof error === 'object' &&
8
+ error !== null &&
9
+ 'message' in error &&
10
+ typeof (error as Record<string, unknown>).message === 'string'
11
+ )
12
13
14
+function toErrorWithMessage(maybeError: unknown): ErrorWithMessage {
15
+ if (isErrorWithMessage(maybeError)) return maybeError
16
17
+ try {
18
+ return new Error(JSON.stringify(maybeError))
19
+ } catch {
20
+ // fallback in case there's an error stringifying the maybeError
21
+ // like with circular references for example.
22
+ return new Error(String(maybeError))
23
+ }
24
25
26
+export function getErrorMessage(error: unknown) {
27
+ return toErrorWithMessage(error).message
28
0 commit comments