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 {}