From baebec2270f7fa8cdb05df95e9779f4139868f56 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Fri, 28 Oct 2022 00:18:50 +0200 Subject: [PATCH] feat: Add base and early exit error classes --- packages/backend/src/errors/base.ts | 17 +++++++++++++++++ packages/backend/src/errors/early-exit.ts | 3 +++ 2 files changed, 20 insertions(+) create mode 100644 packages/backend/src/errors/base.ts create mode 100644 packages/backend/src/errors/early-exit.ts diff --git a/packages/backend/src/errors/base.ts b/packages/backend/src/errors/base.ts new file mode 100644 index 00000000..9a871982 --- /dev/null +++ b/packages/backend/src/errors/base.ts @@ -0,0 +1,17 @@ +import { IJSONObject } from '@automatisch/types'; + +export default class BaseError extends Error { + error = {}; + + constructor(error?: string | IJSONObject) { + super(); + + try { + this.error = JSON.parse(error as string); + } catch { + this.error = typeof error === 'string' ? { error } : error; + } + + this.name = this.constructor.name; + } +} diff --git a/packages/backend/src/errors/early-exit.ts b/packages/backend/src/errors/early-exit.ts new file mode 100644 index 00000000..c0d92d2c --- /dev/null +++ b/packages/backend/src/errors/early-exit.ts @@ -0,0 +1,3 @@ +import BaseError from './base'; + +export default class EarlyExitError extends BaseError {}