Browse code
feat(errors): improve error messaging
Showing 1 changed files
... | ... |
@@ -1,11 +1,20 @@ |
1 |
-export function NoNextMethodError() {} |
|
2 |
-NoNextMethodError.prototype = Object.create(Error); |
|
3 |
- |
|
4 |
-export function NoApplicableMethodError() {} |
|
5 |
-NoApplicableMethodError.prototype = Object.create(Error); |
|
1 |
+function SubTypeError(name) { |
|
2 |
+ const cls = function () { |
|
3 |
+ const instance = Error(...arguments); |
|
4 |
+ Object.setPrototypeOf(instance, Object.getPrototypeOf(this)); |
|
5 |
+ Object.defineProperty(instance, "name", { |
|
6 |
+ value: name, |
|
7 |
+ writable: false, |
|
8 |
+ }); |
|
9 |
+ return instance; |
|
10 |
+ }; |
|
11 |
+ cls.prototype = Object.create(Error); |
|
12 |
+ return cls; |
|
13 |
+} |
|
6 | 14 |
|
7 |
-export function NoPrimaryMethodError() {} |
|
8 |
-NoPrimaryMethodError.prototype = Object.create(NoApplicableMethodError); |
|
15 |
+export const NoNextMethodError = SubTypeError("NoNextMethodError"); |
|
16 |
+export const NoApplicableMethodError = SubTypeError("NoApplicableMethodError"); |
|
17 |
+export const NoPrimaryMethodError = SubTypeError("NoPrimaryMethodError"); |
|
9 | 18 |
|
10 | 19 |
const before_qualifier = Symbol.for("before"); |
11 | 20 |
const after_qualifier = Symbol.for("after"); |