@futdevpro/fsm-dynamo 1.5.56 → 1.5.59
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.
- package/lib/_constants/error-defaults.const.d.ts +3 -0
- package/lib/_constants/error-defaults.const.d.ts.map +1 -0
- package/lib/_constants/error-defaults.const.js +12 -0
- package/lib/_constants/error-defaults.const.js.map +1 -0
- package/lib/_constants/index.d.ts +1 -0
- package/lib/_constants/index.d.ts.map +1 -1
- package/lib/_constants/index.js +1 -0
- package/lib/_constants/index.js.map +1 -1
- package/lib/_enums/basic-property-type.enum.d.ts +1 -1
- package/lib/_enums/basic-property-type.enum.d.ts.map +1 -1
- package/lib/_enums/basic-property-type.enum.js +9 -9
- package/lib/_enums/basic-property-type.enum.js.map +1 -1
- package/lib/_enums/data-model-type.enum.d.ts +1 -1
- package/lib/_enums/data-model-type.enum.d.ts.map +1 -1
- package/lib/_enums/data-model-type.enum.js +7 -7
- package/lib/_enums/data-model-type.enum.js.map +1 -1
- package/lib/_enums/log-style.enum.d.ts +1 -1
- package/lib/_enums/log-style.enum.d.ts.map +1 -1
- package/lib/_enums/log-style.enum.js +27 -27
- package/lib/_enums/log-style.enum.js.map +1 -1
- package/lib/_enums/region.enum.d.ts +1 -1
- package/lib/_enums/region.enum.d.ts.map +1 -1
- package/lib/_enums/region.enum.js +9 -9
- package/lib/_enums/region.enum.js.map +1 -1
- package/lib/_enums/sub-region.enum.d.ts +1 -1
- package/lib/_enums/sub-region.enum.d.ts.map +1 -1
- package/lib/_enums/sub-region.enum.js +21 -21
- package/lib/_enums/sub-region.enum.js.map +1 -1
- package/lib/_enums/subdivision-region-type.enum.d.ts +1 -1
- package/lib/_enums/subdivision-region-type.enum.d.ts.map +1 -1
- package/lib/_enums/subdivision-region-type.enum.js +42 -42
- package/lib/_enums/subdivision-region-type.enum.js.map +1 -1
- package/lib/_models/control-models/data-params.control-model.d.ts +2 -2
- package/lib/_models/control-models/data-params.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/data-params.control-model.js +2 -2
- package/lib/_models/control-models/data-params.control-model.js.map +1 -1
- package/lib/_models/control-models/data-property-params.control-model.d.ts +2 -2
- package/lib/_models/control-models/data-property-params.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/data-property-params.control-model.js +5 -5
- package/lib/_models/control-models/data-property-params.control-model.js.map +1 -1
- package/lib/_models/control-models/error.control-model.d.ts +26 -17
- package/lib/_models/control-models/error.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/error.control-model.js +70 -88
- package/lib/_models/control-models/error.control-model.js.map +1 -1
- package/lib/_models/control-models/error.control-model.spec.d.ts +2 -0
- package/lib/_models/control-models/error.control-model.spec.d.ts.map +1 -0
- package/lib/_models/control-models/error.control-model.spec.js +272 -0
- package/lib/_models/control-models/error.control-model.spec.js.map +1 -0
- package/lib/_models/control-models/poll.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/poll.control-model.js +0 -2
- package/lib/_models/control-models/poll.control-model.js.map +1 -1
- package/lib/_models/data-models/metadata.data-model.d.ts +7 -1
- package/lib/_models/data-models/metadata.data-model.d.ts.map +1 -1
- package/lib/_models/data-models/metadata.data-model.js +39 -3
- package/lib/_models/data-models/metadata.data-model.js.map +1 -1
- package/lib/_models/interfaces/error-defaults.interface.d.ts +9 -0
- package/lib/_models/interfaces/error-defaults.interface.d.ts.map +1 -0
- package/lib/_models/interfaces/error-defaults.interface.js +3 -0
- package/lib/_models/interfaces/error-defaults.interface.js.map +1 -0
- package/lib/_models/interfaces/index.d.ts +1 -0
- package/lib/_models/interfaces/index.d.ts.map +1 -1
- package/lib/_models/interfaces/index.js +1 -0
- package/lib/_models/interfaces/index.js.map +1 -1
- package/lib/_models/interfaces/location/country-iso.interface.d.ts +4 -4
- package/lib/_models/interfaces/location/country-iso.interface.d.ts.map +1 -1
- package/lib/_models/interfaces/location/division-region-data.interface.d.ts +2 -2
- package/lib/_models/interfaces/location/division-region-data.interface.d.ts.map +1 -1
- package/lib/_modules/error-module.index.d.ts +2 -0
- package/lib/_modules/error-module.index.d.ts.map +1 -1
- package/lib/_modules/error-module.index.js +2 -0
- package/lib/_modules/error-module.index.js.map +1 -1
- package/lib/_utils/array.util.d.ts +2 -2
- package/lib/_utils/array.util.d.ts.map +1 -1
- package/lib/_utils/array.util.js +2 -2
- package/lib/_utils/array.util.js.map +1 -1
- package/lib/_utils/log.util.d.ts +5 -3
- package/lib/_utils/log.util.d.ts.map +1 -1
- package/lib/_utils/log.util.js +23 -12
- package/lib/_utils/log.util.js.map +1 -1
- package/lib/_utils/regions.util.d.ts +2 -2
- package/lib/_utils/regions.util.d.ts.map +1 -1
- package/lib/_utils/regions.util.js.map +1 -1
- package/lib/_utils/utilities.util.d.ts +4 -0
- package/lib/_utils/utilities.util.d.ts.map +1 -1
- package/lib/_utils/utilities.util.js +5 -1
- package/lib/_utils/utilities.util.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +156 -92
- package/package.json +1 -1
- package/src/_constants/error-defaults.const.ts +11 -0
- package/src/_constants/index.ts +1 -0
- package/src/_enums/basic-property-type.enum.ts +1 -1
- package/src/_enums/data-model-type.enum.ts +1 -1
- package/src/_enums/log-style.enum.ts +1 -1
- package/src/_enums/region.enum.ts +1 -1
- package/src/_enums/sub-region.enum.ts +1 -1
- package/src/_enums/subdivision-region-type.enum.ts +1 -1
- package/src/_models/control-models/data-params.control-model.ts +4 -4
- package/src/_models/control-models/data-property-params.control-model.ts +7 -7
- package/src/_models/control-models/error.control-model.spec.ts +345 -0
- package/src/_models/control-models/error.control-model.ts +106 -110
- package/src/_models/control-models/poll.control-model.ts +0 -2
- package/src/_models/data-models/metadata.data-model.ts +49 -4
- package/src/_models/interfaces/error-defaults.interface.ts +11 -0
- package/src/_models/interfaces/index.ts +1 -0
- package/src/_models/interfaces/location/country-iso.interface.ts +4 -4
- package/src/_models/interfaces/location/division-region-data.interface.ts +2 -2
- package/src/_modules/error-module.index.ts +2 -0
- package/src/_utils/array.util.ts +6 -4
- package/src/_utils/log.util.ts +30 -17
- package/src/_utils/regions.util.ts +3 -3
- package/src/_utils/utilities.util.ts +6 -2
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import { Dynamo_Error_default } from '../../_constants/error-defaults.const';
|
|
4
|
+
import { Dynamo_Log } from '../../_utils/log.util';
|
|
5
|
+
import { Dynamo_Error } from './error.control-model';
|
|
6
|
+
|
|
7
|
+
describe('Dynamo_Error;', () => {
|
|
8
|
+
let error_base: Error;
|
|
9
|
+
let error_0: Dynamo_Error;
|
|
10
|
+
let error_stack_1: Dynamo_Error;
|
|
11
|
+
let error_stack_2: Dynamo_Error;
|
|
12
|
+
let error_selfDefined: Dynamo_Error;
|
|
13
|
+
|
|
14
|
+
const message_base: string = '-TEST ERROR: something failed!-';
|
|
15
|
+
const message_1: string = 'TEST ERROR MSG (1)';
|
|
16
|
+
const message_2: string = 'TEST ERROR MSG (2)';
|
|
17
|
+
const message_selfDefined: string = Dynamo_Error_default.message + '; error.control-model.spec.js:55:29';
|
|
18
|
+
|
|
19
|
+
const errorCode_0: string = 'ASD-ASD-001';
|
|
20
|
+
const errorCode_1: string = 'ASD-ASD-002';
|
|
21
|
+
const errorCode_2: string = 'ASD-ASD-003';
|
|
22
|
+
|
|
23
|
+
const userMessage_0: string = 'Dynamo_Error TEST was TEST! (0)';
|
|
24
|
+
const userMessage_2: string = 'Dynamo_Error TEST was TEST! (2)';
|
|
25
|
+
|
|
26
|
+
const userMessageResult_0: string = userMessage_0 + `\nErrorCode: ${errorCode_0}`;
|
|
27
|
+
const userMessageResult_2: string = userMessage_2 + `\nErrorCode: ${errorCode_2}`;
|
|
28
|
+
|
|
29
|
+
const issuer: string = 'Dynamo_Error TEST User'
|
|
30
|
+
const issuerSystem: string = 'Dynamo_FSM TEST';
|
|
31
|
+
const issuerService_0: string = 'Service-0';
|
|
32
|
+
const issuerService_1: string = 'Service-1';
|
|
33
|
+
|
|
34
|
+
const log: boolean = false;
|
|
35
|
+
/* const log: boolean = true; */
|
|
36
|
+
|
|
37
|
+
beforeEach(async () => {
|
|
38
|
+
error_base = new Error(message_base);
|
|
39
|
+
|
|
40
|
+
error_0 = new Dynamo_Error({
|
|
41
|
+
userMessage: userMessage_0,
|
|
42
|
+
addECToUserMsg: true,
|
|
43
|
+
errorCode: errorCode_0,
|
|
44
|
+
issuerSystem: issuerSystem,
|
|
45
|
+
issuer: issuer,
|
|
46
|
+
issuerService: issuerService_0,
|
|
47
|
+
error: error_base,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
error_stack_1 = new Dynamo_Error({
|
|
51
|
+
message: message_1,
|
|
52
|
+
errorCode: errorCode_1,
|
|
53
|
+
issuerService: issuerService_1,
|
|
54
|
+
error: error_0,
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
error_stack_2 = new Dynamo_Error({
|
|
58
|
+
message: message_2,
|
|
59
|
+
userMessage: userMessage_2,
|
|
60
|
+
addECToUserMsg: true,
|
|
61
|
+
handled: true,
|
|
62
|
+
errorCode: errorCode_2,
|
|
63
|
+
error: error_stack_1,
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
error_selfDefined = new Dynamo_Error();
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
if (log) afterAll(async () => {
|
|
70
|
+
Dynamo_Log.testLog(
|
|
71
|
+
'afterAll, error_stack_2:', error_stack_2, '\n\nselfDefined:', error_selfDefined
|
|
72
|
+
);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
describe('should be defined;', () => {
|
|
76
|
+
it('error object', () => {
|
|
77
|
+
expect(error_0).toBeDefined();
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it('error stack object', () => {
|
|
81
|
+
expect(error_stack_1).toBeDefined();
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
it('greater error stack object', () => {
|
|
85
|
+
expect(error_stack_2).toBeDefined();
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it('self defined error object', () => {
|
|
89
|
+
expect(error_selfDefined).toBeDefined();
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
describe('should be instance of Dynamo_Error;', () => {
|
|
94
|
+
it('error as Dynamo_Error object', () => {
|
|
95
|
+
expect(error_0).toBeInstanceOf(Dynamo_Error);
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it('error stack as Dynamo_Error object', () => {
|
|
99
|
+
expect(error_stack_1).toBeInstanceOf(Dynamo_Error);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
it('greater error stack as Dynamo_Error object', () => {
|
|
103
|
+
expect(error_stack_2).toBeInstanceOf(Dynamo_Error);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
it('self defined error as Dynamo_Error object', () => {
|
|
107
|
+
expect(error_selfDefined).toBeInstanceOf(Dynamo_Error);
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
describe('should have the proper _errorCode;', () => {
|
|
112
|
+
it('on error_0', () => {
|
|
113
|
+
expect(error_0._errorCode).toBe(errorCode_0);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it('on error_stack_1', () => {
|
|
117
|
+
expect(error_stack_1._errorCode).toBe(errorCode_1);
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
it('on error_stack_2', () => {
|
|
121
|
+
expect(error_stack_2._errorCode).toBe(errorCode_2);
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
it('on self defined error', () => {
|
|
125
|
+
expect(error_selfDefined._errorCode).toBe(Dynamo_Error_default.errorCode);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
describe('should have the proper _message;', () => {
|
|
130
|
+
it('on error_0', () => {
|
|
131
|
+
expect(error_0._message).toBe(message_base);
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
it('on error_stack_1', () => {
|
|
135
|
+
expect(error_stack_1._message).toBe(message_1);
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
it('on error_stack_2', () => {
|
|
139
|
+
expect(error_stack_2._message).toBe(message_2);
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
it('on self defined error', () => {
|
|
143
|
+
expect(error_selfDefined._message).toBe(message_selfDefined);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
describe('should have the proper __userMessage;', () => {
|
|
148
|
+
it('on error_0', () => {
|
|
149
|
+
expect(error_0.__userMessage).toBe(userMessageResult_0);
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
it('on error_stack_1', () => {
|
|
153
|
+
expect(error_stack_1.__userMessage).toBe(userMessageResult_0);
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
it('on error_stack_2', () => {
|
|
157
|
+
expect(error_stack_2.__userMessage).toBe(userMessageResult_2);
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
it('on self defined error', () => {
|
|
161
|
+
expect(error_selfDefined.__userMessage).toBeUndefined();
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
describe('should have proper error;', () => {
|
|
166
|
+
it('on error_0', () => {
|
|
167
|
+
expect(error_0.error).toBe(error_base);
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
it('on error_stack_1', () => {
|
|
171
|
+
expect(error_stack_1.error).toBe(error_0);
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
it('on error_stack_2', () => {
|
|
175
|
+
expect(error_stack_2.error).toBe(error_stack_1);
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
it('on self defined error', () => {
|
|
179
|
+
expect(error_selfDefined.error).toBeUndefined();
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
describe('should have proper handled;', () => {
|
|
184
|
+
it('on error_0', () => {
|
|
185
|
+
expect(error_0.___handled).toBe(false);
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
it('on error_stack_1', () => {
|
|
189
|
+
expect(error_stack_1.___handled).toBe(false);
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
it('on error_stack_2', () => {
|
|
193
|
+
expect(error_stack_2.___handled).toBe(true);
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
it('on self defined error', () => {
|
|
197
|
+
expect(error_selfDefined.___handled).toBe(false);
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
describe('should have status: undefined;', () => {
|
|
202
|
+
it('on error_0', () => {
|
|
203
|
+
expect(error_0.___status).toBe(undefined);
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
it('on error_stack_1', () => {
|
|
207
|
+
expect(error_stack_1.___status).toBe(undefined);
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
it('on error_stack_2', () => {
|
|
211
|
+
expect(error_stack_2.___status).toBe(undefined);
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
it('on self defined error', () => {
|
|
215
|
+
expect(error_selfDefined.___status).toBe(undefined);
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
describe('should have the proper _errorCodes;', () => {
|
|
220
|
+
it('on error_0', () => {
|
|
221
|
+
expect(error_0._errorCodes).toEqual([ errorCode_0 ]);
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
it('on error_stack_1', () => {
|
|
225
|
+
expect(error_stack_1._errorCodes).toEqual([ errorCode_1, errorCode_0 ]);
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
it('on error_stack_2', () => {
|
|
229
|
+
expect(error_stack_2._errorCodes).toEqual([ errorCode_2, errorCode_1, errorCode_0 ]);
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
it('on self defined error', () => {
|
|
233
|
+
expect(error_selfDefined._errorCodes).toEqual([ Dynamo_Error_default.errorCode ]);
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
describe('should have the proper _messages;', () => {
|
|
238
|
+
it('on error_0', () => {
|
|
239
|
+
expect(error_0._messages).toEqual([ message_base ]);
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
it('on error_stack_1', () => {
|
|
243
|
+
expect(error_stack_1._messages).toEqual([ message_1, message_base ]);
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
it('on error_stack_2', () => {
|
|
247
|
+
expect(error_stack_2._messages).toEqual([ message_2, message_1, message_base ]);
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
it('on self defined error', () => {
|
|
251
|
+
expect(error_selfDefined._messages).toEqual([ message_selfDefined ]);
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
describe('should have the proper __userMessages;', () => {
|
|
256
|
+
it('on error_0', () => {
|
|
257
|
+
expect(error_0.__userMessages).toEqual([ userMessageResult_0 ]);
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
it('on error_stack_1', () => {
|
|
261
|
+
expect(error_stack_1.__userMessages).toEqual([ Dynamo_Error_default.userMessage, userMessageResult_0 ]);
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
it('on error_stack_2', () => {
|
|
265
|
+
expect(error_stack_2.__userMessages).toEqual([ userMessageResult_2, Dynamo_Error_default.userMessage, userMessageResult_0 ]);
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
it('on self defined error', () => {
|
|
269
|
+
expect(error_selfDefined.__userMessages).toEqual([ Dynamo_Error_default.userMessage ]);
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
describe('should have the proper errors;', () => {
|
|
274
|
+
it('on error_0', () => {
|
|
275
|
+
expect(error_0.errors).toEqual([ error_base ]);
|
|
276
|
+
});
|
|
277
|
+
|
|
278
|
+
it('on error_stack_1', () => {
|
|
279
|
+
expect(error_stack_1.errors).toEqual([ error_0, error_base ]);
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
it('on error_stack_2', () => {
|
|
283
|
+
expect(error_stack_2.errors).toEqual([ error_stack_1, error_0, error_base ]);
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
it('on self defined error', () => {
|
|
287
|
+
expect(error_selfDefined.errors).toEqual([]);
|
|
288
|
+
});
|
|
289
|
+
});
|
|
290
|
+
|
|
291
|
+
describe('should have the proper issuer;', () => {
|
|
292
|
+
it('on error_0', () => {
|
|
293
|
+
expect(error_0.___issuer).toBe(issuer);
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
it('on error_stack_1', () => {
|
|
297
|
+
expect(error_stack_1.___issuer).toBe(issuer);
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
it('on error_stack_2', () => {
|
|
301
|
+
expect(error_stack_2.___issuer).toBe(issuer);
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
it('on self defined error', () => {
|
|
305
|
+
expect(error_selfDefined.___issuer).toBe(Dynamo_Error_default.issuer);
|
|
306
|
+
});
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
describe('should have the proper issuerSystem;', () => {
|
|
310
|
+
it('on error_0', () => {
|
|
311
|
+
expect(error_0.___issuerSystem).toBe(issuerSystem);
|
|
312
|
+
});
|
|
313
|
+
|
|
314
|
+
it('on error_stack_1', () => {
|
|
315
|
+
expect(error_stack_1.___issuerSystem).toBe(issuerSystem);
|
|
316
|
+
});
|
|
317
|
+
|
|
318
|
+
it('on error_stack_2', () => {
|
|
319
|
+
expect(error_stack_2.___issuerSystem).toBe(issuerSystem);
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
it('on self defined error', () => {
|
|
323
|
+
expect(error_selfDefined.___issuerSystem).toBe(Dynamo_Error_default.issuerSystem);
|
|
324
|
+
});
|
|
325
|
+
});
|
|
326
|
+
|
|
327
|
+
describe('should have the proper issuerService;', () => {
|
|
328
|
+
it('on error_0', () => {
|
|
329
|
+
expect(error_0.___issuerService).toBe(issuerService_0);
|
|
330
|
+
});
|
|
331
|
+
|
|
332
|
+
it('on error_stack_1', () => {
|
|
333
|
+
expect(error_stack_1.___issuerService).toBe(issuerService_1);
|
|
334
|
+
});
|
|
335
|
+
|
|
336
|
+
it('on error_stack_2', () => {
|
|
337
|
+
expect(error_stack_2.___issuerService).toBe(issuerService_1);
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
it('on self defined error', () => {
|
|
341
|
+
expect(error_selfDefined.___issuerService).toBe(Dynamo_Error_default.issuerService);
|
|
342
|
+
});
|
|
343
|
+
});
|
|
344
|
+
});
|
|
345
|
+
|
|
@@ -1,155 +1,151 @@
|
|
|
1
|
-
|
|
1
|
+
import { Dynamo_Error_default } from '../../_constants/error-defaults.const';
|
|
2
|
+
import { Dynamo_Log } from '../../_utils/log.util';
|
|
3
|
+
import { Dynamo_Metadata } from '../data-models/metadata.data-model';
|
|
2
4
|
|
|
3
5
|
export type D_Error = Dynamo_Error;
|
|
4
|
-
export class Dynamo_Error {
|
|
5
|
-
readonly flag = 'DYNAMO ERROR OBJECT';
|
|
6
|
-
handled: boolean;
|
|
7
|
-
status: number;
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
export class Dynamo_Error extends Dynamo_Metadata {
|
|
8
|
+
readonly flag = 'DYNAMO-ERROR-OBJECT-v2';
|
|
9
|
+
|
|
10
|
+
_errorCode: string;
|
|
11
|
+
_errorCodes: string[] = [];
|
|
12
|
+
|
|
13
|
+
_message: string;
|
|
14
|
+
_messages: string[] = [];
|
|
15
|
+
|
|
16
|
+
__userMessage: string;
|
|
17
|
+
__userMessages: string[] = [];
|
|
11
18
|
|
|
12
|
-
|
|
13
|
-
|
|
19
|
+
___handled: boolean;
|
|
20
|
+
___status: number;
|
|
14
21
|
|
|
15
|
-
|
|
16
|
-
|
|
22
|
+
___issuer: string;
|
|
23
|
+
___issuerSystem: string;
|
|
24
|
+
___issuerService: string;
|
|
17
25
|
|
|
18
|
-
|
|
19
|
-
|
|
26
|
+
error: Error | Dynamo_Error;
|
|
27
|
+
errors: (Error | Dynamo_Error)[] = [];
|
|
20
28
|
|
|
21
29
|
constructor(
|
|
22
30
|
set?: {
|
|
23
|
-
|
|
24
|
-
status?: number,
|
|
25
|
-
|
|
26
|
-
errorCode?: string;
|
|
27
|
-
errorCodes?: string[];
|
|
31
|
+
_id?: string,
|
|
28
32
|
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
handled?: boolean,
|
|
34
|
+
status?: number,
|
|
31
35
|
|
|
36
|
+
errorCode?: string,
|
|
32
37
|
message?: string,
|
|
33
|
-
messages?: string[],
|
|
34
|
-
|
|
35
38
|
userMessage?: string,
|
|
36
|
-
userMessages?: string[],
|
|
37
39
|
addECToUserMsg?: boolean,
|
|
40
|
+
|
|
41
|
+
error?: Error | Dynamo_Error,
|
|
42
|
+
|
|
43
|
+
issuer?: string,
|
|
44
|
+
issuerSystem?: string,
|
|
45
|
+
issuerService?: string,
|
|
38
46
|
|
|
39
47
|
modestLog?: boolean,
|
|
40
48
|
log?: boolean,
|
|
49
|
+
|
|
50
|
+
__created?: Date,
|
|
51
|
+
__createdBy?: string,
|
|
52
|
+
__lastModified?: Date,
|
|
53
|
+
__lastModifiedBy?: string,
|
|
54
|
+
__v?: number,
|
|
41
55
|
}
|
|
42
56
|
) {
|
|
57
|
+
super(set, { issuer: set?.issuerService ?? (set?.error as Dynamo_Error)?.___issuerService ?? Dynamo_Error_default.issuerService });
|
|
58
|
+
|
|
43
59
|
try {
|
|
44
|
-
|
|
60
|
+
if (!set) {
|
|
61
|
+
set = {};
|
|
62
|
+
}
|
|
45
63
|
|
|
46
|
-
|
|
47
|
-
|
|
64
|
+
/** set simple properties */
|
|
65
|
+
this.___handled = Boolean(set?.handled ?? (set?.error as Dynamo_Error)?.___handled);
|
|
66
|
+
this.___status = set?.status ?? (set?.error as Dynamo_Error)?.___status;
|
|
48
67
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (set.message) {
|
|
53
|
-
this.messages.push(set.message);
|
|
54
|
-
}
|
|
55
|
-
if (set.userMessage) {
|
|
56
|
-
this.userMessages.push(set.userMessage);
|
|
57
|
-
}
|
|
68
|
+
this.___issuer = set?.issuer ?? (set?.error as Dynamo_Error)?.___issuer ?? Dynamo_Error_default.issuer;
|
|
69
|
+
this.___issuerSystem = set?.issuerSystem ?? (set?.error as Dynamo_Error)?.___issuerSystem ?? Dynamo_Error_default.issuerSystem;
|
|
70
|
+
this.___issuerService = set?.issuerService ?? (set?.error as Dynamo_Error)?.___issuerService ?? Dynamo_Error_default.issuerService;
|
|
58
71
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (set.error.errors) {
|
|
65
|
-
if (Array.isArray(set.error.errors)) {
|
|
66
|
-
this.errors.push(...set.error.errors);
|
|
67
|
-
} else {
|
|
68
|
-
this.errors.push(set.error.errors);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (set.error.errorCode) {
|
|
73
|
-
this.errorCodes.push(set.error.errorCode);
|
|
74
|
-
}
|
|
75
|
-
if (set.error.errorCodes) {
|
|
76
|
-
if (Array.isArray(set.error.errorCodes)) {
|
|
77
|
-
this.errorCodes.push(...set.error.errorCodes);
|
|
78
|
-
} else {
|
|
79
|
-
this.errorCodes.push(set.error.errorCodes);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (set.error.message) {
|
|
84
|
-
this.messages.push(set.error.message);
|
|
85
|
-
} else if (set.error._message) {
|
|
86
|
-
this.messages.push(set.error._message);
|
|
87
|
-
}
|
|
88
|
-
if (set.error.messages) {
|
|
89
|
-
if (Array.isArray(set.error.messages)) {
|
|
90
|
-
if (set.error.messages[0] == this.messages[0]) {
|
|
91
|
-
set.error.messages.shift();
|
|
92
|
-
}
|
|
93
|
-
this.messages.push(...set.error.messages);
|
|
94
|
-
} else {
|
|
95
|
-
this.messages.push(set.error.messages);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (set.error.userMessage) {
|
|
100
|
-
this.userMessages.push(set.error.userMessage);
|
|
101
|
-
}
|
|
102
|
-
if (set.error.userMessages) {
|
|
103
|
-
if (Array.isArray(set.error.userMessages)) {
|
|
104
|
-
/* if (set.error.userMessages[0] == this.userMessages[0]) {
|
|
105
|
-
set.error.userMessages.shift();
|
|
106
|
-
} */
|
|
107
|
-
this.userMessages.push(...set.error.userMessages);
|
|
108
|
-
} else {
|
|
109
|
-
this.userMessages.push(set.error.userMessages);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
72
|
+
/** set default error code */
|
|
73
|
+
if (!set.errorCode) {
|
|
74
|
+
set.errorCode = Dynamo_Error_default.errorCode;
|
|
113
75
|
}
|
|
114
76
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
if (0 < this.errorCodes.length && this.errorCode === this.errorCodes[0]) {
|
|
121
|
-
this.errorCodes.shift();
|
|
77
|
+
/** set errorCodes */
|
|
78
|
+
const previousErrorCodes: string[] = [];
|
|
79
|
+
if ((set?.error as Dynamo_Error)?._errorCodes) {
|
|
80
|
+
previousErrorCodes.push(...(set?.error as Dynamo_Error)?._errorCodes);
|
|
122
81
|
}
|
|
123
|
-
if (
|
|
124
|
-
|
|
82
|
+
if (!set.errorCode) {
|
|
83
|
+
set.errorCode = Dynamo_Error_default.errorCode;
|
|
125
84
|
}
|
|
126
|
-
|
|
127
|
-
|
|
85
|
+
this._errorCodes = [ set?.errorCode, ...previousErrorCodes ].filter(Boolean);
|
|
86
|
+
this._errorCode = this._errorCodes?.[0];
|
|
87
|
+
|
|
88
|
+
/** set message */
|
|
89
|
+
if (!set.message) {
|
|
90
|
+
/** simple - non-dynamo - error */
|
|
91
|
+
if (!(set?.error as Dynamo_Error)?.flag?.includes('DYNAMO') && (set?.error as Error)?.message) {
|
|
92
|
+
set.message = (set?.error as Error)?.message;
|
|
93
|
+
} else {
|
|
94
|
+
/** error not defined */
|
|
95
|
+
const posFull = new Error().stack.split('\n')?.[2]?.split('\\');
|
|
96
|
+
set.message = Dynamo_Error_default.message + '; ' + posFull[posFull.length - 1];
|
|
97
|
+
}
|
|
128
98
|
}
|
|
129
|
-
|
|
130
|
-
|
|
99
|
+
/** set messages */
|
|
100
|
+
const previousMessages: string[] = [];
|
|
101
|
+
if ((set?.error as Dynamo_Error)?._messages) {
|
|
102
|
+
previousMessages.push(...(set?.error as Dynamo_Error)?._messages);
|
|
103
|
+
} else if ((set?.error as Error)?.message) {
|
|
104
|
+
previousErrorCodes.push((set?.error as Error)?.message);
|
|
131
105
|
}
|
|
106
|
+
this._messages = [ set?.message, ...previousMessages ].filter(Boolean);
|
|
107
|
+
this._message = this._messages?.[0];
|
|
132
108
|
|
|
133
|
-
|
|
134
|
-
|
|
109
|
+
/** set userMessages */
|
|
110
|
+
const previousUserMessages: string[] = [];
|
|
111
|
+
if ((set?.error as Dynamo_Error)?.__userMessages) {
|
|
112
|
+
previousUserMessages.push(...(set?.error as Dynamo_Error)?.__userMessages);
|
|
113
|
+
}
|
|
114
|
+
if (!set.userMessage) {
|
|
115
|
+
set.userMessage = Dynamo_Error_default.userMessage;
|
|
135
116
|
}
|
|
117
|
+
if (set.addECToUserMsg && set.errorCode) {
|
|
118
|
+
set.userMessage += `\nErrorCode: ${set.errorCode}`
|
|
119
|
+
}
|
|
120
|
+
this.__userMessages = [ set?.userMessage, ...previousUserMessages ].filter(Boolean);
|
|
121
|
+
this.__userMessage = this.__userMessages.filter((msg: string) => msg && msg !== Dynamo_Error_default.userMessage)?.[0];
|
|
136
122
|
|
|
123
|
+
/** set errors */
|
|
124
|
+
const previousErrors: (Error | Dynamo_Error)[] = [];
|
|
125
|
+
if ((set?.error as Dynamo_Error)?.errors) {
|
|
126
|
+
previousErrors.push(...(set?.error as Dynamo_Error)?.errors);
|
|
127
|
+
}
|
|
128
|
+
this.errors = [ set?.error, ...previousErrors ].filter(Boolean);
|
|
129
|
+
this.error = this.errors?.[0];
|
|
130
|
+
|
|
137
131
|
if (set?.modestLog) {
|
|
138
|
-
console.error(this.
|
|
132
|
+
console.error(this._message ?? this.__userMessage ?? this.error)
|
|
139
133
|
}
|
|
140
134
|
if (set?.log) {
|
|
141
135
|
console.error(this);
|
|
142
136
|
}
|
|
143
137
|
} catch (error) {
|
|
144
|
-
|
|
145
|
-
|
|
138
|
+
Dynamo_Log.error(
|
|
139
|
+
'\n\nInternal Dynamo ERROR: Failed to create Dynamo_Error...' +
|
|
140
|
+
'\nerror:\n', error,
|
|
141
|
+
'\n\ntrace:', new Error(),
|
|
142
|
+
'\n\nset:', set,
|
|
143
|
+
'\n\n'
|
|
144
|
+
);
|
|
146
145
|
}
|
|
147
146
|
}
|
|
148
147
|
}
|
|
149
148
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
149
|
/*
|
|
154
150
|
|
|
155
151
|
// //
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { Dynamo_Error } from '../control-models';
|
|
2
2
|
|
|
3
3
|
export type D_Metadata = Dynamo_Metadata;
|
|
4
4
|
export type D_MetaD = Dynamo_Metadata;
|
|
@@ -12,14 +12,59 @@ export class Dynamo_Metadata {
|
|
|
12
12
|
__v?: number;
|
|
13
13
|
|
|
14
14
|
constructor(
|
|
15
|
-
set?: Dynamo_Metadata
|
|
15
|
+
set?: Dynamo_Metadata,
|
|
16
|
+
forceInit?: {
|
|
17
|
+
id?: string,
|
|
18
|
+
issuer: string,
|
|
19
|
+
},
|
|
20
|
+
forceUpdate?: {
|
|
21
|
+
throwOnMissingId?: boolean,
|
|
22
|
+
issuer: string,
|
|
23
|
+
},
|
|
16
24
|
){
|
|
17
25
|
if (set) {
|
|
18
26
|
if (!set._id && set._id !== undefined) {
|
|
19
|
-
|
|
27
|
+
set._id = undefined;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
this._id = set._id;
|
|
31
|
+
this.__created = set.__created;
|
|
32
|
+
this.__createdBy = set.__createdBy;
|
|
33
|
+
this.__lastModified = set.__lastModified;
|
|
34
|
+
this.__lastModifiedBy = set.__lastModifiedBy;
|
|
35
|
+
this.__v = set.__v;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (forceInit?.issuer) {
|
|
39
|
+
if (!this._id && forceInit.id) {
|
|
40
|
+
this._id = forceInit.id;
|
|
41
|
+
}
|
|
42
|
+
if (!this.__created) {
|
|
43
|
+
this.__created = new Date();
|
|
20
44
|
}
|
|
45
|
+
if (!this.__createdBy) {
|
|
46
|
+
this.__createdBy = forceInit.issuer;
|
|
47
|
+
}
|
|
48
|
+
if (!this.__lastModified) {
|
|
49
|
+
this.__lastModified = new Date();
|
|
50
|
+
}
|
|
51
|
+
if (!this.__lastModifiedBy) {
|
|
52
|
+
this.__lastModifiedBy = forceInit.issuer;
|
|
53
|
+
}
|
|
54
|
+
if (!this.__v) {
|
|
55
|
+
this.__v = 0;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
21
58
|
|
|
22
|
-
|
|
59
|
+
if (forceUpdate?.issuer) {
|
|
60
|
+
if (!this._id && forceUpdate.throwOnMissingId) {
|
|
61
|
+
throw new Dynamo_Error({
|
|
62
|
+
message: `Dynamo_Metadata.constructor: missing _id`,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
this.__lastModified = new Date();
|
|
66
|
+
this.__lastModifiedBy = forceUpdate.issuer;
|
|
67
|
+
this.__v = this.__v ? this.__v + 1 : 1;
|
|
23
68
|
}
|
|
24
69
|
}
|
|
25
70
|
}
|