@@ -74,5 +74,10 @@ "use strict"; | ||
| const C = this.getClass(highLvErrName); | ||
| return this.reformatTrace(new C(this.getHighLevelError(highLvErrName), { | ||
| const err = new C(this.getHighLevelError(highLvErrName), { | ||
| message | ||
| }, this._config.baseErrorConfig)); | ||
| }, this._config.baseErrorConfig); | ||
| if (typeof this._config.onCreateError === 'function') { | ||
| this._config.onCreateError(err); | ||
| } | ||
| this.reformatTrace(err); | ||
| return err; | ||
| } | ||
@@ -90,3 +95,8 @@ /** | ||
| const C = this.getClass(highLvErrName); | ||
| return this.reformatTrace(new C(this.getHighLevelError(highLvErrName), this.getLowLevelError(lowLvErrName), this._config.baseErrorConfig)); | ||
| const err = new C(this.getHighLevelError(highLvErrName), this.getLowLevelError(lowLvErrName), this._config.baseErrorConfig); | ||
| if (typeof this._config.onCreateError === 'function') { | ||
| this._config.onCreateError(err); | ||
| } | ||
| this.reformatTrace(err); | ||
| return err; | ||
| } | ||
@@ -101,3 +111,2 @@ /** | ||
| err.stack = stack.join('\n'); | ||
| return err; | ||
| } | ||
@@ -104,0 +113,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"ErrorRegistry.js","sourceRoot":"","sources":["../src/ErrorRegistry.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"ErrorRegistry.js","sourceRoot":"","sources":["../src/ErrorRegistry.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * A High Level Error definition defined by the user | ||
| */ | ||
| import { BaseRegistryError } from './error-types/BaseRegistryError'; | ||
| export interface HighLevelError { | ||
@@ -234,2 +235,6 @@ /** | ||
| baseErrorConfig?: IBaseErrorConfig; | ||
| /** | ||
| * Handler to modify the created error when newError / newBareError is called | ||
| */ | ||
| onCreateError?: (err: BaseRegistryError) => void; | ||
| } | ||
@@ -236,0 +241,0 @@ /** |
| "use strict"; | ||
| /** | ||
| * A High Level Error definition defined by the user | ||
| */ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| //# sourceMappingURL=interfaces.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA;;GAEG"} | ||
| {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""} |
+8
-0
@@ -0,1 +1,9 @@ | ||
| ## 1.2.7 - Tue Mar 09 2021 01:55:52 | ||
| **Contributor:** Theo Gravity | ||
| - Add `ErrorRegistry` config option `onCreateError` | ||
| You can now globally modify new errors created from the error registry via the `onCreateError` handler. | ||
| ## 1.2.6 - Tue Mar 09 2021 00:23:04 | ||
@@ -2,0 +10,0 @@ |
+1
-1
| { | ||
| "name": "new-error", | ||
| "version": "1.2.6", | ||
| "version": "1.2.7", | ||
| "description": "A production-grade error creation and serialization library designed for Typescript", | ||
@@ -5,0 +5,0 @@ "main": "build/index.js", |
+21
-0
@@ -402,2 +402,6 @@ # new-error | ||
| baseErrorConfig?: IBaseErrorConfig | ||
| /** | ||
| * Handler to modify the created error when newError / newBareError is called | ||
| */ | ||
| onCreateError?: (err: BaseRegistryError) => void | ||
| } | ||
@@ -448,2 +452,19 @@ ``` | ||
| ### Error creation handler | ||
| If you want all errors created from the registry to have defined properties, you can use the `onCreateError` config option to modify the created error. | ||
| For example, if you want to create an error id for each new error: | ||
| ```ts | ||
| const errRegistry = new ErrorRegistry(errors, errorCodes, { | ||
| onCreateError: (err) => { | ||
| err.withErrorId('test-id') | ||
| } | ||
| }) | ||
| // the err should have 'test-id' set for the error id | ||
| const err = errRegistry.newError('INTERNAL_SERVER_ERROR', 'DATABASE_FAILURE') | ||
| ``` | ||
| ## `instanceOf` / comparisons | ||
@@ -450,0 +471,0 @@ |
84215
1.97%1088
1.02%937
2.29%