diff --git a/packages/interfaces/src/errors.ts b/packages/interfaces/src/errors.ts index e246c066d..dc7f414a8 100644 --- a/packages/interfaces/src/errors.ts +++ b/packages/interfaces/src/errors.ts @@ -17,3 +17,18 @@ export class AbortError extends Error { return 'aborted' } } + +export class CodeError = Record> extends Error { + public readonly props: T + + constructor ( + message: string, + public readonly code: string, + props?: T + ) { + super(message) + + this.name = 'CodeError' + this.props = props ?? {} as T // eslint-disable-line @typescript-eslint/consistent-type-assertions + } +}