yerror 6.2.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,201 +0,0 @@
1
- "use strict";
2
-
3
- var _assert = _interopRequireDefault(require("assert"));
4
-
5
- var _ = _interopRequireDefault(require("."));
6
-
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
-
9
- /* eslint max-nested-callbacks:[0], no-magic-numbers:[0] */
10
- describe('YError', () => {
11
- describe('.__constructor', () => {
12
- it('Should work', () => {
13
- var err = new _.default('E_ERROR', 'arg1', 'arg2');
14
- (0, _assert.default)(err instanceof Error);
15
-
16
- _assert.default.equal(err.name, err.toString());
17
-
18
- _assert.default.equal(err.code, 'E_ERROR');
19
-
20
- _assert.default.deepEqual(err.params, ['arg1', 'arg2']);
21
-
22
- _assert.default.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');
23
- });
24
- it('Should work without code', () => {
25
- var err = new _.default();
26
-
27
- _assert.default.equal(err.code, 'E_UNEXPECTED');
28
-
29
- _assert.default.deepEqual(err.params, []);
30
-
31
- _assert.default.equal(err.toString(), 'YError: E_UNEXPECTED ()');
32
-
33
- _assert.default.equal(err.name, err.toString());
34
- });
35
- it('Should work without new', () => {
36
- var err = new _.default('E_ERROR', 'arg1', 'arg2');
37
-
38
- _assert.default.equal(err.code, 'E_ERROR');
39
-
40
- (0, _assert.default)(err instanceof _.default);
41
-
42
- _assert.default.deepEqual(err.params, ['arg1', 'arg2']);
43
-
44
- _assert.default.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');
45
-
46
- _assert.default.equal(err.name, err.toString());
47
- });
48
- });
49
- describe('.wrap()', () => {
50
- it('Should work with standard errors and a message', () => {
51
- // eslint-disable-line
52
- var err = _.default.wrap(new Error('This is an error!'));
53
-
54
- _assert.default.equal(err.code, 'E_UNEXPECTED');
55
-
56
- _assert.default.equal(err.wrappedErrors.length, 1);
57
-
58
- _assert.default.deepEqual(err.params, ['This is an error!']);
59
-
60
- if (Error.captureStackTrace) {
61
- (0, _assert.default)(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
62
- (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains cast error.');
63
-
64
- _assert.default.equal(err.name, err.toString());
65
- }
66
- });
67
- it('Should work with standard errors and an error code', () => {
68
- var err = _.default.wrap(new Error('E_ERROR'));
69
-
70
- _assert.default.equal(err.code, 'E_ERROR');
71
-
72
- _assert.default.equal(err.wrappedErrors.length, 1);
73
-
74
- _assert.default.deepEqual(err.params, []);
75
-
76
- if (Error.captureStackTrace) {
77
- (0, _assert.default)(-1 !== err.stack.indexOf('Error: E_ERROR'), 'Stack contains original error.');
78
- (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR ()'), 'Stack contains cast error.');
79
- }
80
-
81
- _assert.default.equal(err.name, err.toString());
82
- });
83
- it('Should work with standard errors, an error code and params', () => {
84
- var err = _.default.wrap(new Error('E_ERROR'), 'E_ERROR_2', 'arg1', 'arg2');
85
-
86
- _assert.default.equal(err.code, 'E_ERROR_2');
87
-
88
- _assert.default.equal(err.wrappedErrors.length, 1);
89
-
90
- _assert.default.deepEqual(err.params, ['arg1', 'arg2']);
91
-
92
- if (Error.captureStackTrace) {
93
- (0, _assert.default)(-1 !== err.stack.indexOf('Error: E_ERROR'), 'Stack contains first error.');
94
- (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR_2 (arg1, arg2)'), 'Stack contains second error.');
95
- }
96
-
97
- _assert.default.equal(err.name, err.toString());
98
- });
99
- it('Should work with several wrapped errors', () => {
100
- var err = _.default.wrap(_.default.wrap(new Error('E_ERROR_1'), 'E_ERROR_2', 'arg2.1', 'arg2.2'), 'E_ERROR_3', 'arg3.1', 'arg3.2');
101
-
102
- _assert.default.equal(err.code, 'E_ERROR_3');
103
-
104
- _assert.default.equal(err.wrappedErrors.length, 2);
105
-
106
- _assert.default.deepEqual(err.params, ['arg3.1', 'arg3.2']);
107
-
108
- if (Error.captureStackTrace) {
109
- (0, _assert.default)(-1 !== err.stack.indexOf('Error: E_ERROR_1'), 'Stack contains first error.');
110
- (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR_2 (arg2.1, arg2.2)'), 'Stack contains second error.');
111
- (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR_3 (arg3.1, arg3.2)'), 'Stack contains second error.');
112
- }
113
-
114
- _assert.default.equal(err.name, err.toString());
115
- });
116
- });
117
- describe('.cast()', () => {
118
- it('Should work with standard errors and a message', () => {
119
- var err = _.default.cast(new Error('This is an error!'));
120
-
121
- _assert.default.equal(err.code, 'E_UNEXPECTED');
122
-
123
- _assert.default.equal(err.wrappedErrors.length, 1);
124
-
125
- _assert.default.deepEqual(err.params, ['This is an error!']);
126
-
127
- if (Error.captureStackTrace) {
128
- (0, _assert.default)(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
129
- (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains cast error.');
130
- }
131
-
132
- _assert.default.equal(err.name, err.toString());
133
- });
134
- it('Should let YError instances pass through', () => {
135
- var err = _.default.cast(new _.default('E_ERROR', 'arg1', 'arg2'));
136
-
137
- _assert.default.equal(err.code, 'E_ERROR');
138
-
139
- _assert.default.deepEqual(err.params, ['arg1', 'arg2']);
140
-
141
- if (Error.captureStackTrace) {
142
- (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR (arg1, arg2)'), 'Stack contains cast error.');
143
- }
144
-
145
- _assert.default.equal(err.name, err.toString());
146
- });
147
- });
148
- describe('.bump()', () => {
149
- it('Should work with standard errors and a message', () => {
150
- var err = _.default.bump(new Error('This is an error!'));
151
-
152
- _assert.default.equal(err.code, 'E_UNEXPECTED');
153
-
154
- _assert.default.equal(err.wrappedErrors.length, 1);
155
-
156
- _assert.default.deepEqual(err.params, ['This is an error!']);
157
-
158
- if (Error.captureStackTrace) {
159
- (0, _assert.default)(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
160
- (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains bumped error.');
161
- }
162
-
163
- _assert.default.equal(err.name, err.toString());
164
- });
165
- it('Should work with YError like errors', () => {
166
- var baseErr = new Error('E_A_NEW_ERROR');
167
- baseErr.code = 'E_A_NEW_ERROR';
168
- baseErr.params = ['baseParam1', 'baseParam2'];
169
-
170
- let err = _.default.bump(baseErr);
171
-
172
- _assert.default.equal(err.code, 'E_A_NEW_ERROR');
173
-
174
- _assert.default.equal(err.wrappedErrors.length, 1);
175
-
176
- _assert.default.deepEqual(err.params, ['baseParam1', 'baseParam2']);
177
-
178
- if (Error.captureStackTrace) {
179
- (0, _assert.default)(-1 !== err.stack.indexOf('Error: E_A_NEW_ERROR'), 'Stack contains original error.');
180
- (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_A_NEW_ERROR (baseParam1, baseParam2)'), 'Stack contains bumped error.');
181
- }
182
-
183
- _assert.default.equal(err.name, err.toString());
184
- });
185
- it('Should work with Y errors and a message', () => {
186
- var err = _.default.bump(new _.default('E_ERROR', 'arg1.1', 'arg1.2'), 'E_ERROR_2', 'arg2.1', 'arg2.2');
187
-
188
- _assert.default.equal(err.code, 'E_ERROR');
189
-
190
- _assert.default.deepEqual(err.params, ['arg1.1', 'arg1.2']);
191
-
192
- if (Error.captureStackTrace) {
193
- (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'), 'Stack contains original error.');
194
- (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'), 'Stack contains bumped error.');
195
- }
196
-
197
- _assert.default.equal(err.name, err.toString());
198
- });
199
- });
200
- });
201
- //# sourceMappingURL=index.mocha.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mocha.js","names":["describe","it","err","YError","assert","Error","equal","name","toString","code","deepEqual","params","wrap","wrappedErrors","length","captureStackTrace","stack","indexOf","cast","bump","baseErr"],"sources":["../src/index.mocha.js"],"sourcesContent":["/* eslint max-nested-callbacks:[0], no-magic-numbers:[0] */\nimport assert from 'assert';\nimport YError from '.';\n\ndescribe('YError', () => {\n describe('.__constructor', () => {\n it('Should work', () => {\n var err = new YError('E_ERROR', 'arg1', 'arg2');\n\n assert(err instanceof Error);\n assert.equal(err.name, err.toString());\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');\n });\n it('Should work without code', () => {\n var err = new YError();\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.deepEqual(err.params, []);\n assert.equal(err.toString(), 'YError: E_UNEXPECTED ()');\n assert.equal(err.name, err.toString());\n });\n it('Should work without new', () => {\n var err = new YError('E_ERROR', 'arg1', 'arg2');\n\n assert.equal(err.code, 'E_ERROR');\n assert(err instanceof YError);\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.wrap()', () => {\n it('Should work with standard errors and a message', () => {\n // eslint-disable-line\n var err = YError.wrap(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains cast error.',\n );\n assert.equal(err.name, err.toString());\n }\n });\n\n it('Should work with standard errors and an error code', () => {\n var err = YError.wrap(new Error('E_ERROR'));\n\n assert.equal(err.code, 'E_ERROR');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, []);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR ()'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with standard errors, an error code and params', () => {\n var err = YError.wrap(new Error('E_ERROR'), 'E_ERROR_2', 'arg1', 'arg2');\n\n assert.equal(err.code, 'E_ERROR_2');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR'),\n 'Stack contains first error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_2 (arg1, arg2)'),\n 'Stack contains second error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with several wrapped errors', () => {\n var err = YError.wrap(\n YError.wrap(new Error('E_ERROR_1'), 'E_ERROR_2', 'arg2.1', 'arg2.2'),\n 'E_ERROR_3',\n 'arg3.1',\n 'arg3.2',\n );\n\n assert.equal(err.code, 'E_ERROR_3');\n assert.equal(err.wrappedErrors.length, 2);\n assert.deepEqual(err.params, ['arg3.1', 'arg3.2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR_1'),\n 'Stack contains first error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_2 (arg2.1, arg2.2)'),\n 'Stack contains second error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_3 (arg3.1, arg3.2)'),\n 'Stack contains second error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.cast()', () => {\n it('Should work with standard errors and a message', () => {\n var err = YError.cast(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should let YError instances pass through', () => {\n var err = YError.cast(new YError('E_ERROR', 'arg1', 'arg2'));\n\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1, arg2)'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.bump()', () => {\n it('Should work with standard errors and a message', () => {\n var err = YError.bump(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with YError like errors', () => {\n var baseErr = new Error('E_A_NEW_ERROR');\n\n baseErr.code = 'E_A_NEW_ERROR';\n baseErr.params = ['baseParam1', 'baseParam2'];\n\n let err = YError.bump(baseErr);\n\n assert.equal(err.code, 'E_A_NEW_ERROR');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['baseParam1', 'baseParam2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_A_NEW_ERROR'),\n 'Stack contains original error.',\n );\n assert(\n -1 !==\n err.stack.indexOf('YError: E_A_NEW_ERROR (baseParam1, baseParam2)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with Y errors and a message', () => {\n var err = YError.bump(\n new YError('E_ERROR', 'arg1.1', 'arg1.2'),\n 'E_ERROR_2',\n 'arg2.1',\n 'arg2.2',\n );\n\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1.1', 'arg1.2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n});\n"],"mappings":"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"}
@@ -1,153 +0,0 @@
1
- import assert from 'assert';
2
- import YError from '.';
3
- describe('YError', () => {
4
- describe('.__constructor', () => {
5
- it('Should work', () => {
6
- var err = new YError('E_ERROR', 'arg1', 'arg2');
7
- assert(err instanceof Error);
8
- assert.equal(err.name, err.toString());
9
- assert.equal(err.code, 'E_ERROR');
10
- assert.deepEqual(err.params, ['arg1', 'arg2']);
11
- assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');
12
- });
13
- it('Should work without code', () => {
14
- var err = new YError();
15
- assert.equal(err.code, 'E_UNEXPECTED');
16
- assert.deepEqual(err.params, []);
17
- assert.equal(err.toString(), 'YError: E_UNEXPECTED ()');
18
- assert.equal(err.name, err.toString());
19
- });
20
- it('Should work without new', () => {
21
- var err = new YError('E_ERROR', 'arg1', 'arg2');
22
- assert.equal(err.code, 'E_ERROR');
23
- assert(err instanceof YError);
24
- assert.deepEqual(err.params, ['arg1', 'arg2']);
25
- assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');
26
- assert.equal(err.name, err.toString());
27
- });
28
- });
29
- describe('.wrap()', () => {
30
- it('Should work with standard errors and a message', () => {
31
- var err = YError.wrap(new Error('This is an error!'));
32
- assert.equal(err.code, 'E_UNEXPECTED');
33
- assert.equal(err.wrappedErrors.length, 1);
34
- assert.deepEqual(err.params, ['This is an error!']);
35
-
36
- if (Error.captureStackTrace) {
37
- assert(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
38
- assert(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains cast error.');
39
- assert.equal(err.name, err.toString());
40
- }
41
- });
42
- it('Should work with standard errors and an error code', () => {
43
- var err = YError.wrap(new Error('E_ERROR'));
44
- assert.equal(err.code, 'E_ERROR');
45
- assert.equal(err.wrappedErrors.length, 1);
46
- assert.deepEqual(err.params, []);
47
-
48
- if (Error.captureStackTrace) {
49
- assert(-1 !== err.stack.indexOf('Error: E_ERROR'), 'Stack contains original error.');
50
- assert(-1 !== err.stack.indexOf('YError: E_ERROR ()'), 'Stack contains cast error.');
51
- }
52
-
53
- assert.equal(err.name, err.toString());
54
- });
55
- it('Should work with standard errors, an error code and params', () => {
56
- var err = YError.wrap(new Error('E_ERROR'), 'E_ERROR_2', 'arg1', 'arg2');
57
- assert.equal(err.code, 'E_ERROR_2');
58
- assert.equal(err.wrappedErrors.length, 1);
59
- assert.deepEqual(err.params, ['arg1', 'arg2']);
60
-
61
- if (Error.captureStackTrace) {
62
- assert(-1 !== err.stack.indexOf('Error: E_ERROR'), 'Stack contains first error.');
63
- assert(-1 !== err.stack.indexOf('YError: E_ERROR_2 (arg1, arg2)'), 'Stack contains second error.');
64
- }
65
-
66
- assert.equal(err.name, err.toString());
67
- });
68
- it('Should work with several wrapped errors', () => {
69
- var err = YError.wrap(YError.wrap(new Error('E_ERROR_1'), 'E_ERROR_2', 'arg2.1', 'arg2.2'), 'E_ERROR_3', 'arg3.1', 'arg3.2');
70
- assert.equal(err.code, 'E_ERROR_3');
71
- assert.equal(err.wrappedErrors.length, 2);
72
- assert.deepEqual(err.params, ['arg3.1', 'arg3.2']);
73
-
74
- if (Error.captureStackTrace) {
75
- assert(-1 !== err.stack.indexOf('Error: E_ERROR_1'), 'Stack contains first error.');
76
- assert(-1 !== err.stack.indexOf('YError: E_ERROR_2 (arg2.1, arg2.2)'), 'Stack contains second error.');
77
- assert(-1 !== err.stack.indexOf('YError: E_ERROR_3 (arg3.1, arg3.2)'), 'Stack contains second error.');
78
- }
79
-
80
- assert.equal(err.name, err.toString());
81
- });
82
- });
83
- describe('.cast()', () => {
84
- it('Should work with standard errors and a message', () => {
85
- var err = YError.cast(new Error('This is an error!'));
86
- assert.equal(err.code, 'E_UNEXPECTED');
87
- assert.equal(err.wrappedErrors.length, 1);
88
- assert.deepEqual(err.params, ['This is an error!']);
89
-
90
- if (Error.captureStackTrace) {
91
- assert(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
92
- assert(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains cast error.');
93
- }
94
-
95
- assert.equal(err.name, err.toString());
96
- });
97
- it('Should let YError instances pass through', () => {
98
- var err = YError.cast(new YError('E_ERROR', 'arg1', 'arg2'));
99
- assert.equal(err.code, 'E_ERROR');
100
- assert.deepEqual(err.params, ['arg1', 'arg2']);
101
-
102
- if (Error.captureStackTrace) {
103
- assert(-1 !== err.stack.indexOf('YError: E_ERROR (arg1, arg2)'), 'Stack contains cast error.');
104
- }
105
-
106
- assert.equal(err.name, err.toString());
107
- });
108
- });
109
- describe('.bump()', () => {
110
- it('Should work with standard errors and a message', () => {
111
- var err = YError.bump(new Error('This is an error!'));
112
- assert.equal(err.code, 'E_UNEXPECTED');
113
- assert.equal(err.wrappedErrors.length, 1);
114
- assert.deepEqual(err.params, ['This is an error!']);
115
-
116
- if (Error.captureStackTrace) {
117
- assert(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
118
- assert(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains bumped error.');
119
- }
120
-
121
- assert.equal(err.name, err.toString());
122
- });
123
- it('Should work with YError like errors', () => {
124
- var baseErr = new Error('E_A_NEW_ERROR');
125
- baseErr.code = 'E_A_NEW_ERROR';
126
- baseErr.params = ['baseParam1', 'baseParam2'];
127
- let err = YError.bump(baseErr);
128
- assert.equal(err.code, 'E_A_NEW_ERROR');
129
- assert.equal(err.wrappedErrors.length, 1);
130
- assert.deepEqual(err.params, ['baseParam1', 'baseParam2']);
131
-
132
- if (Error.captureStackTrace) {
133
- assert(-1 !== err.stack.indexOf('Error: E_A_NEW_ERROR'), 'Stack contains original error.');
134
- assert(-1 !== err.stack.indexOf('YError: E_A_NEW_ERROR (baseParam1, baseParam2)'), 'Stack contains bumped error.');
135
- }
136
-
137
- assert.equal(err.name, err.toString());
138
- });
139
- it('Should work with Y errors and a message', () => {
140
- var err = YError.bump(new YError('E_ERROR', 'arg1.1', 'arg1.2'), 'E_ERROR_2', 'arg2.1', 'arg2.2');
141
- assert.equal(err.code, 'E_ERROR');
142
- assert.deepEqual(err.params, ['arg1.1', 'arg1.2']);
143
-
144
- if (Error.captureStackTrace) {
145
- assert(-1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'), 'Stack contains original error.');
146
- assert(-1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'), 'Stack contains bumped error.');
147
- }
148
-
149
- assert.equal(err.name, err.toString());
150
- });
151
- });
152
- });
153
- //# sourceMappingURL=index.mocha.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mocha.mjs","names":["assert","YError","describe","it","err","Error","equal","name","toString","code","deepEqual","params","wrap","wrappedErrors","length","captureStackTrace","stack","indexOf","cast","bump","baseErr"],"sources":["../src/index.mocha.js"],"sourcesContent":["/* eslint max-nested-callbacks:[0], no-magic-numbers:[0] */\nimport assert from 'assert';\nimport YError from '.';\n\ndescribe('YError', () => {\n describe('.__constructor', () => {\n it('Should work', () => {\n var err = new YError('E_ERROR', 'arg1', 'arg2');\n\n assert(err instanceof Error);\n assert.equal(err.name, err.toString());\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');\n });\n it('Should work without code', () => {\n var err = new YError();\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.deepEqual(err.params, []);\n assert.equal(err.toString(), 'YError: E_UNEXPECTED ()');\n assert.equal(err.name, err.toString());\n });\n it('Should work without new', () => {\n var err = new YError('E_ERROR', 'arg1', 'arg2');\n\n assert.equal(err.code, 'E_ERROR');\n assert(err instanceof YError);\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.wrap()', () => {\n it('Should work with standard errors and a message', () => {\n // eslint-disable-line\n var err = YError.wrap(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains cast error.',\n );\n assert.equal(err.name, err.toString());\n }\n });\n\n it('Should work with standard errors and an error code', () => {\n var err = YError.wrap(new Error('E_ERROR'));\n\n assert.equal(err.code, 'E_ERROR');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, []);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR ()'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with standard errors, an error code and params', () => {\n var err = YError.wrap(new Error('E_ERROR'), 'E_ERROR_2', 'arg1', 'arg2');\n\n assert.equal(err.code, 'E_ERROR_2');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR'),\n 'Stack contains first error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_2 (arg1, arg2)'),\n 'Stack contains second error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with several wrapped errors', () => {\n var err = YError.wrap(\n YError.wrap(new Error('E_ERROR_1'), 'E_ERROR_2', 'arg2.1', 'arg2.2'),\n 'E_ERROR_3',\n 'arg3.1',\n 'arg3.2',\n );\n\n assert.equal(err.code, 'E_ERROR_3');\n assert.equal(err.wrappedErrors.length, 2);\n assert.deepEqual(err.params, ['arg3.1', 'arg3.2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR_1'),\n 'Stack contains first error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_2 (arg2.1, arg2.2)'),\n 'Stack contains second error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_3 (arg3.1, arg3.2)'),\n 'Stack contains second error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.cast()', () => {\n it('Should work with standard errors and a message', () => {\n var err = YError.cast(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should let YError instances pass through', () => {\n var err = YError.cast(new YError('E_ERROR', 'arg1', 'arg2'));\n\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1, arg2)'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.bump()', () => {\n it('Should work with standard errors and a message', () => {\n var err = YError.bump(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with YError like errors', () => {\n var baseErr = new Error('E_A_NEW_ERROR');\n\n baseErr.code = 'E_A_NEW_ERROR';\n baseErr.params = ['baseParam1', 'baseParam2'];\n\n let err = YError.bump(baseErr);\n\n assert.equal(err.code, 'E_A_NEW_ERROR');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['baseParam1', 'baseParam2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_A_NEW_ERROR'),\n 'Stack contains original error.',\n );\n assert(\n -1 !==\n err.stack.indexOf('YError: E_A_NEW_ERROR (baseParam1, baseParam2)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with Y errors and a message', () => {\n var err = YError.bump(\n new YError('E_ERROR', 'arg1.1', 'arg1.2'),\n 'E_ERROR_2',\n 'arg2.1',\n 'arg2.2',\n );\n\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1.1', 'arg1.2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n});\n"],"mappings":"AACA,OAAOA,MAAP,MAAmB,QAAnB;AACA,OAAOC,MAAP,MAAmB,GAAnB;AAEAC,QAAQ,CAAC,QAAD,EAAW,MAAM;EACvBA,QAAQ,CAAC,gBAAD,EAAmB,MAAM;IAC/BC,EAAE,CAAC,aAAD,EAAgB,MAAM;MACtB,IAAIC,GAAG,GAAG,IAAIH,MAAJ,CAAW,SAAX,EAAsB,MAAtB,EAA8B,MAA9B,CAAV;MAEAD,MAAM,CAACI,GAAG,YAAYC,KAAhB,CAAN;MACAL,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;MACAR,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,SAAvB;MACAT,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,CAAC,MAAD,EAAS,MAAT,CAA7B;MACAX,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACI,QAAJ,EAAb,EAA6B,8BAA7B;IACD,CARC,CAAF;IASAL,EAAE,CAAC,0BAAD,EAA6B,MAAM;MACnC,IAAIC,GAAG,GAAG,IAAIH,MAAJ,EAAV;MAEAD,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,cAAvB;MACAT,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,EAA7B;MACAX,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACI,QAAJ,EAAb,EAA6B,yBAA7B;MACAR,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;IACD,CAPC,CAAF;IAQAL,EAAE,CAAC,yBAAD,EAA4B,MAAM;MAClC,IAAIC,GAAG,GAAG,IAAIH,MAAJ,CAAW,SAAX,EAAsB,MAAtB,EAA8B,MAA9B,CAAV;MAEAD,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,SAAvB;MACAT,MAAM,CAACI,GAAG,YAAYH,MAAhB,CAAN;MACAD,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,CAAC,MAAD,EAAS,MAAT,CAA7B;MACAX,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACI,QAAJ,EAAb,EAA6B,8BAA7B;MACAR,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;IACD,CARC,CAAF;EASD,CA3BO,CAAR;EA6BAN,QAAQ,CAAC,SAAD,EAAY,MAAM;IACxBC,EAAE,CAAC,gDAAD,EAAmD,MAAM;MAEzD,IAAIC,GAAG,GAAGH,MAAM,CAACW,IAAP,CAAY,IAAIP,KAAJ,CAAU,mBAAV,CAAZ,CAAV;MAEAL,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,cAAvB;MACAT,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACS,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;MACAd,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,CAAC,mBAAD,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3Bf,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,0BAAlB,CADH,EAEJ,gCAFI,CAAN;QAIAjB,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,0CAAlB,CADH,EAEJ,4BAFI,CAAN;QAIAjB,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;MACD;IACF,CAnBC,CAAF;IAqBAL,EAAE,CAAC,oDAAD,EAAuD,MAAM;MAC7D,IAAIC,GAAG,GAAGH,MAAM,CAACW,IAAP,CAAY,IAAIP,KAAJ,CAAU,SAAV,CAAZ,CAAV;MAEAL,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,SAAvB;MACAT,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACS,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;MACAd,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,EAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3Bf,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,gBAAlB,CADH,EAEJ,gCAFI,CAAN;QAIAjB,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,oBAAlB,CADH,EAEJ,4BAFI,CAAN;MAID;;MACDjB,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;IACD,CAlBC,CAAF;IAoBAL,EAAE,CAAC,4DAAD,EAA+D,MAAM;MACrE,IAAIC,GAAG,GAAGH,MAAM,CAACW,IAAP,CAAY,IAAIP,KAAJ,CAAU,SAAV,CAAZ,EAAkC,WAAlC,EAA+C,MAA/C,EAAuD,MAAvD,CAAV;MAEAL,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,WAAvB;MACAT,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACS,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;MACAd,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,CAAC,MAAD,EAAS,MAAT,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3Bf,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,gBAAlB,CADH,EAEJ,6BAFI,CAAN;QAIAjB,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,gCAAlB,CADH,EAEJ,8BAFI,CAAN;MAID;;MACDjB,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;IACD,CAlBC,CAAF;IAoBAL,EAAE,CAAC,yCAAD,EAA4C,MAAM;MAClD,IAAIC,GAAG,GAAGH,MAAM,CAACW,IAAP,CACRX,MAAM,CAACW,IAAP,CAAY,IAAIP,KAAJ,CAAU,WAAV,CAAZ,EAAoC,WAApC,EAAiD,QAAjD,EAA2D,QAA3D,CADQ,EAER,WAFQ,EAGR,QAHQ,EAIR,QAJQ,CAAV;MAOAL,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,WAAvB;MACAT,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACS,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;MACAd,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,CAAC,QAAD,EAAW,QAAX,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3Bf,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,kBAAlB,CADH,EAEJ,6BAFI,CAAN;QAIAjB,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,oCAAlB,CADH,EAEJ,8BAFI,CAAN;QAIAjB,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,oCAAlB,CADH,EAEJ,8BAFI,CAAN;MAID;;MACDjB,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;IACD,CA3BC,CAAF;EA4BD,CA1FO,CAAR;EA4FAN,QAAQ,CAAC,SAAD,EAAY,MAAM;IACxBC,EAAE,CAAC,gDAAD,EAAmD,MAAM;MACzD,IAAIC,GAAG,GAAGH,MAAM,CAACiB,IAAP,CAAY,IAAIb,KAAJ,CAAU,mBAAV,CAAZ,CAAV;MAEAL,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,cAAvB;MACAT,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACS,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;MACAd,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,CAAC,mBAAD,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3Bf,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,0BAAlB,CADH,EAEJ,gCAFI,CAAN;QAIAjB,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,0CAAlB,CADH,EAEJ,4BAFI,CAAN;MAID;;MACDjB,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;IACD,CAlBC,CAAF;IAoBAL,EAAE,CAAC,0CAAD,EAA6C,MAAM;MACnD,IAAIC,GAAG,GAAGH,MAAM,CAACiB,IAAP,CAAY,IAAIjB,MAAJ,CAAW,SAAX,EAAsB,MAAtB,EAA8B,MAA9B,CAAZ,CAAV;MAEAD,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,SAAvB;MACAT,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,CAAC,MAAD,EAAS,MAAT,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3Bf,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,8BAAlB,CADH,EAEJ,4BAFI,CAAN;MAID;;MACDjB,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;IACD,CAbC,CAAF;EAcD,CAnCO,CAAR;EAqCAN,QAAQ,CAAC,SAAD,EAAY,MAAM;IACxBC,EAAE,CAAC,gDAAD,EAAmD,MAAM;MACzD,IAAIC,GAAG,GAAGH,MAAM,CAACkB,IAAP,CAAY,IAAId,KAAJ,CAAU,mBAAV,CAAZ,CAAV;MAEAL,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,cAAvB;MACAT,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACS,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;MACAd,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,CAAC,mBAAD,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3Bf,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,0BAAlB,CADH,EAEJ,gCAFI,CAAN;QAIAjB,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,0CAAlB,CADH,EAEJ,8BAFI,CAAN;MAID;;MACDjB,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;IACD,CAlBC,CAAF;IAoBAL,EAAE,CAAC,qCAAD,EAAwC,MAAM;MAC9C,IAAIiB,OAAO,GAAG,IAAIf,KAAJ,CAAU,eAAV,CAAd;MAEAe,OAAO,CAACX,IAAR,GAAe,eAAf;MACAW,OAAO,CAACT,MAAR,GAAiB,CAAC,YAAD,EAAe,YAAf,CAAjB;MAEA,IAAIP,GAAG,GAAGH,MAAM,CAACkB,IAAP,CAAYC,OAAZ,CAAV;MAEApB,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,eAAvB;MACAT,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACS,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;MACAd,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,CAAC,YAAD,EAAe,YAAf,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3Bf,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,sBAAlB,CADH,EAEJ,gCAFI,CAAN;QAIAjB,MAAM,CACJ,CAAC,CAAD,KACEI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,gDAAlB,CAFE,EAGJ,8BAHI,CAAN;MAKD;;MACDjB,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;IACD,CAxBC,CAAF;IA0BAL,EAAE,CAAC,yCAAD,EAA4C,MAAM;MAClD,IAAIC,GAAG,GAAGH,MAAM,CAACkB,IAAP,CACR,IAAIlB,MAAJ,CAAW,SAAX,EAAsB,QAAtB,EAAgC,QAAhC,CADQ,EAER,WAFQ,EAGR,QAHQ,EAIR,QAJQ,CAAV;MAOAD,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACK,IAAjB,EAAuB,SAAvB;MACAT,MAAM,CAACU,SAAP,CAAiBN,GAAG,CAACO,MAArB,EAA6B,CAAC,QAAD,EAAW,QAAX,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3Bf,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,kCAAlB,CADH,EAEJ,gCAFI,CAAN;QAIAjB,MAAM,CACJ,CAAC,CAAD,KAAOI,GAAG,CAACY,KAAJ,CAAUC,OAAV,CAAkB,kCAAlB,CADH,EAEJ,8BAFI,CAAN;MAID;;MACDjB,MAAM,CAACM,KAAP,CAAaF,GAAG,CAACG,IAAjB,EAAuBH,GAAG,CAACI,QAAJ,EAAvB;IACD,CAtBC,CAAF;EAuBD,CAtEO,CAAR;AAuED,CAtOO,CAAR"}
package/src/index.d.ts DELETED
@@ -1,26 +0,0 @@
1
- declare class YError extends Error {
2
- constructor(errorCode: string, ...params: any[]);
3
- constructor(wrappedErrors?: Error[], errorCode?: string, ...params: any[]);
4
- code: string;
5
- params: any[];
6
- static wrap<E extends Error>(
7
- err: E,
8
- errorCode?: string,
9
- ...params: any[]
10
- ): YError;
11
- static cast<E extends Error>(
12
- err: E,
13
- errorCode?: string,
14
- ...params: any[]
15
- ): YError;
16
- static bump<E extends Error>(
17
- err: E,
18
- errorCode?: string,
19
- ...params: any[]
20
- ): YError;
21
- }
22
-
23
- export function printStackTrace(err: any): string;
24
-
25
- export { YError };
26
- export default YError;
package/src/index.js DELETED
@@ -1,165 +0,0 @@
1
- import os from 'os';
2
-
3
- /**
4
- * An YError class able to contain some params and
5
- * print better stack traces
6
- * @extends Error
7
- */
8
- class YError extends Error {
9
- /**
10
- * Creates a new YError with an error code
11
- * and some params as debug values.
12
- * @param {string} [errorCode = 'E_UNEXPECTED']
13
- * The error code corresponding to the actual error
14
- * @param {...any} [params]
15
- * Some additional debugging values
16
- */
17
- constructor(wrappedErrors, errorCode, ...params) {
18
- // Detecting if wrappedErrors are passed
19
- if (!(wrappedErrors instanceof Array)) {
20
- params = ('undefined' === typeof errorCode ? [] : [errorCode]).concat(
21
- params,
22
- );
23
- errorCode = wrappedErrors;
24
- wrappedErrors = [];
25
- }
26
-
27
- // Call the parent constructor
28
- super(errorCode);
29
-
30
- // Filling error
31
- this.code = errorCode || 'E_UNEXPECTED';
32
- this.params = params;
33
- this.wrappedErrors = wrappedErrors;
34
- this.name = this.toString();
35
-
36
- if (Error.captureStackTrace) {
37
- Error.captureStackTrace(this, this.constructor);
38
- }
39
- }
40
-
41
- toString() {
42
- return (
43
- (this.wrappedErrors.length
44
- ? // eslint-disable-next-line
45
- this.wrappedErrors[this.wrappedErrors.length - 1].stack + os.EOL
46
- : '') +
47
- this.constructor.name +
48
- ': ' +
49
- this.code +
50
- ' (' +
51
- this.params.join(', ') +
52
- ')'
53
- );
54
- }
55
- }
56
-
57
- /**
58
- * Wraps any error and output a YError with an error
59
- * code and some params as debug values.
60
- * @param {Error} err
61
- * The error to wrap
62
- * @param {string} [errorCode = 'E_UNEXPECTED']
63
- * The error code corresponding to the actual error
64
- * @param {...any} [params]
65
- * Some additional debugging values
66
- * @return {YError}
67
- * The wrapped error
68
- */
69
- YError.wrap = function yerrorWrap(err, errorCode, ...params) {
70
- let yError = null;
71
- const wrappedErrorIsACode = _looksLikeAYErrorCode(err.message);
72
- const wrappedErrors = (err.wrappedErrors || []).concat(err);
73
-
74
- if (!errorCode) {
75
- if (wrappedErrorIsACode) {
76
- errorCode = err.message;
77
- } else {
78
- errorCode = 'E_UNEXPECTED';
79
- }
80
- }
81
- if (err.message && !wrappedErrorIsACode) {
82
- params.push(err.message);
83
- }
84
- yError = new YError(wrappedErrors, errorCode, ...params);
85
- return yError;
86
- };
87
-
88
- /**
89
- * Return a YError as is or wraps any other error and output
90
- * a YError with a code and some params as debug values.
91
- * @param {Error} err
92
- * The error to cast
93
- * @param {string} [errorCode = 'E_UNEXPECTED']
94
- * The error code corresponding to the actual error
95
- * @param {...any} [params]
96
- * Some additional debugging values
97
- * @return {YError}
98
- * The wrapped error
99
- */
100
- YError.cast = function yerrorCast(err, ...params) {
101
- if (_looksLikeAYError(err)) {
102
- return err;
103
- }
104
- return YError.wrap.apply(YError, [err].concat(params));
105
- };
106
-
107
- /**
108
- * Same than `YError.wrap()` but preserves the code
109
- * and the debug values of the error if it is
110
- * already an instance of the YError constructor.
111
- * @param {Error} err
112
- * The error to bump
113
- * @param {string} [errorCode = 'E_UNEXPECTED']
114
- * The error code corresponding to the actual error
115
- * @param {...any} [params]
116
- * Some additional debugging values
117
- * @return {YError}
118
- * The wrapped error
119
- */
120
- YError.bump = function yerrorBump(err, ...params) {
121
- if (_looksLikeAYError(err)) {
122
- return YError.wrap.apply(YError, [err, err.code].concat(err.params));
123
- }
124
- return YError.wrap.apply(YError, [err].concat(params));
125
- };
126
-
127
- /**
128
- * Allow to print a stack from anything (especially catched
129
- * errors that may or may not contain errors 🤷).
130
- * @param {Error} err
131
- * The error to print
132
- * @return {string}
133
- * The stack trace if any
134
- */
135
- export function printStackTrace(err) {
136
- return typeof err === 'object' && typeof err.stack === 'function'
137
- ? err.stack()
138
- : `[no_stack_trace]: error is ${
139
- err != null && typeof err.toString === 'function'
140
- ? err.toString()
141
- : typeof err
142
- }`;
143
- }
144
-
145
- // In order to keep compatibility through major versions
146
- // we have to make kind of an cross major version instanceof
147
- function _looksLikeAYError(err) {
148
- return (
149
- err instanceof YError ||
150
- (err.constructor &&
151
- err.constructor.name &&
152
- err.constructor.name.endsWith('Error') &&
153
- 'string' === typeof err.code &&
154
- _looksLikeAYErrorCode(err.code) &&
155
- err.params &&
156
- err.params instanceof Array)
157
- );
158
- }
159
-
160
- function _looksLikeAYErrorCode(str) {
161
- return /^([A-Z0-9_]+)$/.test(str);
162
- }
163
-
164
- export default YError;
165
- export { YError };