diff options
Diffstat (limited to 'packages/backend/src/server/api/error.ts')
| -rw-r--r-- | packages/backend/src/server/api/error.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/error.ts b/packages/backend/src/server/api/error.ts new file mode 100644 index 0000000000..cb0bdc9f47 --- /dev/null +++ b/packages/backend/src/server/api/error.ts @@ -0,0 +1,28 @@ +type E = { message: string, code: string, id: string, kind?: 'client' | 'server', httpStatusCode?: number }; + +export class ApiError extends Error { + public message: string; + public code: string; + public id: string; + public kind: string; + public httpStatusCode?: number; + public info?: any; + + constructor(e?: E | null | undefined, info?: any | null | undefined) { + if (e == null) e = { + message: 'Internal error occurred. Please contact us if the error persists.', + code: 'INTERNAL_ERROR', + id: '5d37dbcb-891e-41ca-a3d6-e690c97775ac', + kind: 'server', + httpStatusCode: 500 + }; + + super(e.message); + this.message = e.message; + this.code = e.code; + this.id = e.id; + this.kind = e.kind || 'client'; + this.httpStatusCode = e.httpStatusCode; + this.info = info; + } +} |