From d7236fd6f8e914cbda840fc8a67fe6a4d5b6d385 Mon Sep 17 00:00:00 2001 From: tabcat Date: Tue, 22 Nov 2022 12:39:24 -0600 Subject: [PATCH 1/2] feat: add CodeError --- packages/interfaces/src/errors.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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 + } +} From 2cfe680516d5786d217c5ad883494b6d33e7d86d Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Tue, 3 Jan 2023 16:56:07 +0000 Subject: [PATCH 2/2] chore: review comments --- packages/interfaces/src/errors.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/interfaces/src/errors.ts b/packages/interfaces/src/errors.ts index dc7f414a8..fe1b8e663 100644 --- a/packages/interfaces/src/errors.ts +++ b/packages/interfaces/src/errors.ts @@ -28,7 +28,7 @@ export class CodeError = Record> ex ) { super(message) - this.name = 'CodeError' + this.name = props?.name ?? 'CodeError' this.props = props ?? {} as T // eslint-disable-line @typescript-eslint/consistent-type-assertions } }