@futdevpro/nts-dynamo 1.9.8 → 1.9.10
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/build/_constants/global-settings.const.d.ts.map +1 -1
- package/build/_constants/global-settings.const.js +1 -0
- package/build/_constants/global-settings.const.js.map +1 -1
- package/build/_constants/mocks/auth-service.mock.d.ts +3 -3
- package/build/_constants/mocks/auth-service.mock.d.ts.map +1 -1
- package/build/_constants/mocks/auth-service.mock.js +3 -3
- package/build/_constants/mocks/auth-service.mock.js.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.js +6 -0
- package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/build/_models/interfaces/global-settings.interface.d.ts +4 -0
- package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
- package/build/_modules/usage/usage.controller.js +1 -1
- package/build/_modules/usage/usage.controller.js.map +1 -1
- package/build/_services/base/data.service.d.ts.map +1 -1
- package/build/_services/base/data.service.js +16 -5
- package/build/_services/base/data.service.js.map +1 -1
- package/build/_services/base/db.service.d.ts.map +1 -1
- package/build/_services/base/db.service.js +13 -3
- package/build/_services/base/db.service.js.map +1 -1
- package/build/_services/core/api.service.d.ts.map +1 -1
- package/build/_services/core/api.service.js +37 -10
- package/build/_services/core/api.service.js.map +1 -1
- package/build/_services/core/auth.service.d.ts +3 -3
- package/build/_services/core/auth.service.d.ts.map +1 -1
- package/build/_services/core/global.service.d.ts.map +1 -1
- package/build/_services/core/global.service.js +9 -2
- package/build/_services/core/global.service.js.map +1 -1
- package/build/_services/server/app.server.d.ts.map +1 -1
- package/build/_services/server/app.server.js +12 -11
- package/build/_services/server/app.server.js.map +1 -1
- package/build/_services/socket/socket-client.service.d.ts.map +1 -1
- package/build/_services/socket/socket-client.service.js +4 -0
- package/build/_services/socket/socket-client.service.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/_constants/global-settings.const.ts +2 -0
- package/src/_constants/mocks/auth-service.mock.ts +3 -3
- package/src/_models/control-models/endpoint-params.control-model.ts +8 -0
- package/src/_models/interfaces/global-settings.interface.ts +5 -0
- package/src/_modules/usage/usage.controller.ts +1 -1
- package/src/_services/base/data.service.ts +12 -3
- package/src/_services/base/db.service.ts +11 -3
- package/src/_services/core/api.service.ts +51 -16
- package/src/_services/core/auth.service.ts +3 -3
- package/src/_services/core/global.service.ts +11 -2
- package/src/_services/server/app.server.ts +20 -11
- package/src/_services/socket/socket-client.service.ts +5 -0
- package/tsconfig.json +1 -1
package/package.json
CHANGED
|
@@ -10,11 +10,11 @@ export class AuthService_Mock extends DynamoNTS_AuthService {
|
|
|
10
10
|
return AuthService_Mock.getSingletonInstance();
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
async
|
|
13
|
+
authenticate_token = async (req: Request, res: Response): Promise<void> => {};
|
|
14
14
|
|
|
15
|
-
async
|
|
15
|
+
authenticate_tokenSelf = async (req: Request, res: Response): Promise<void> => {};
|
|
16
16
|
|
|
17
|
-
async
|
|
17
|
+
authenticate_tokenPermAccUsageData = async (req: Request, res: Response): Promise<void> => {};
|
|
18
18
|
|
|
19
19
|
getIssuerFromRequest(req: Request): string {
|
|
20
20
|
return 'accountId_mock';
|
|
@@ -230,6 +230,8 @@ export class DynamoNTS_Endpoint_Params {
|
|
|
230
230
|
(error as DynamoFM_Error).additionalContent = {};
|
|
231
231
|
}
|
|
232
232
|
(error as DynamoFM_Error).additionalContent.endpointInfo = msg;
|
|
233
|
+
DynamoFM_Log.error(`ErrorMessage: ${(error as DynamoFM_Error)._message}`);
|
|
234
|
+
DynamoFM_Log.error(`ErrorCode: ${(error as DynamoFM_Error)._errorCode}`);
|
|
233
235
|
}
|
|
234
236
|
|
|
235
237
|
await DynamoNTS_GlobalService.globalErrorHandler?.(
|
|
@@ -262,6 +264,7 @@ export class DynamoNTS_Endpoint_Params {
|
|
|
262
264
|
);
|
|
263
265
|
}
|
|
264
266
|
}
|
|
267
|
+
|
|
265
268
|
} catch (error) {
|
|
266
269
|
DynamoFM_Log.H_error(
|
|
267
270
|
`\n\nDYNAMO MULTILEVEL ERROR:DynamoNTS_EndpointParams: error: ` +
|
|
@@ -271,6 +274,11 @@ export class DynamoNTS_Endpoint_Params {
|
|
|
271
274
|
`\nERROR:`, error,
|
|
272
275
|
'\n'
|
|
273
276
|
);
|
|
277
|
+
|
|
278
|
+
if (error?.flag?.includes?.('DYNAMO-ERROR-OBJECT')) {
|
|
279
|
+
DynamoFM_Log.error(`ErrorMessage: ${(error as DynamoFM_Error)._message}`);
|
|
280
|
+
DynamoFM_Log.error(`ErrorCode: ${(error as DynamoFM_Error)._errorCode}`);
|
|
281
|
+
}
|
|
274
282
|
}
|
|
275
283
|
}
|
|
276
284
|
|
|
@@ -75,4 +75,9 @@ export interface DynamoNTS_Global_Settings {
|
|
|
75
75
|
* this is an application wide default setting for api debug logs
|
|
76
76
|
*/
|
|
77
77
|
logApiResponseContents?: boolean;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* this is an application wide default setting for detailed error logs
|
|
81
|
+
*/
|
|
82
|
+
logDetailedErrors?: boolean;
|
|
78
83
|
}
|
|
@@ -99,7 +99,7 @@ export class DynamoNTS_Usage_Controller extends DynamoNTS_Controller {
|
|
|
99
99
|
name: 'getUsageData',
|
|
100
100
|
type: DynamoNTS_HttpCallType.get,
|
|
101
101
|
endpoint: DynamoFM_usageModule_settings.endPoints.getUsageData,
|
|
102
|
-
preProcesses: [this.authService.
|
|
102
|
+
preProcesses: [ this.authService.authenticate_tokenPermAccUsageData ],
|
|
103
103
|
tasks: [
|
|
104
104
|
async (req: Request, res: Response): Promise<void> => {
|
|
105
105
|
const range: DynamoFM_RelativeDate = req.params.range as DynamoFM_RelativeDate;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import {
|
|
3
3
|
DynamoFM_Metadata, DynamoFM_DataModel_Params, DynamoFM_DataProperty_Params, DynamoFM_Error,
|
|
4
|
-
DynamoFM_Log, DynamoFM_AnyError, DynamoFM_Error_Settings
|
|
4
|
+
DynamoFM_Log, DynamoFM_AnyError, DynamoFM_Error_Settings, DynamoFM_ErrorLevel
|
|
5
5
|
} from '@futdevpro/fsm-dynamo';
|
|
6
6
|
import { DynamoNTS_DBFilter } from '../../_models/types/db-filter.type';
|
|
7
7
|
import { DynamoNTS_DBUpdate } from '../../_models/types/db-update.type';
|
|
@@ -74,14 +74,23 @@ export class DynamoNTS_DataService<T extends DynamoFM_Metadata> {
|
|
|
74
74
|
this.lookForDependencyDataSettings();
|
|
75
75
|
this.issuer = issuer;
|
|
76
76
|
} catch (error) {
|
|
77
|
-
|
|
77
|
+
throw new DynamoFM_Error({
|
|
78
|
+
...this._getDefaultErrorSettings('constructor', error),
|
|
79
|
+
message: `The dataService construction failed for ${dataParams?.dataName}. ` +
|
|
80
|
+
`${this.serviceName} (${this.constructor.name})` +
|
|
81
|
+
`\nMaybe you forgot to add the dbService to the GlobalService?\n\n`,
|
|
82
|
+
level: DynamoFM_ErrorLevel.critical,
|
|
83
|
+
|
|
84
|
+
errorCode: 'NTS-DS0-C00',
|
|
85
|
+
});
|
|
86
|
+
/* DynamoFM_Log.error(
|
|
78
87
|
`\nDynamoNTS_DataService ERROR: ` +
|
|
79
88
|
`\nThe dataService construction failed for ` +
|
|
80
89
|
`${dataParams?.dataName}. ${this.serviceName} (${this.constructor.name})` +
|
|
81
90
|
`\nMaybe you forgot to add the dbService to the GlobalService?` +
|
|
82
91
|
`\n\n`,
|
|
83
92
|
new Error()
|
|
84
|
-
);
|
|
93
|
+
); */
|
|
85
94
|
}
|
|
86
95
|
}
|
|
87
96
|
|
|
@@ -4,7 +4,7 @@ import { Schema } from 'mongoose';
|
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
6
|
DynamoFM_Metadata, DynamoFM_DataModel_Params, DynamoFM_DataProperty_Params, DynamoFM_Error,
|
|
7
|
-
DynamoFM_Log, DynamoFM_AnyError, DynamoFM_Error_Settings
|
|
7
|
+
DynamoFM_Log, DynamoFM_AnyError, DynamoFM_Error_Settings, DynamoFM_ErrorLevel
|
|
8
8
|
} from '@futdevpro/fsm-dynamo';
|
|
9
9
|
import { DynamoNTS_DBFilter } from '../../_models/types/db-filter.type';
|
|
10
10
|
import { DynamoNTS_DBUpdate } from '../../_models/types/db-update.type';
|
|
@@ -48,12 +48,20 @@ export class DynamoNTS_DBService<T extends DynamoFM_Metadata> {
|
|
|
48
48
|
|
|
49
49
|
this.lookForDependencyDataSettings();
|
|
50
50
|
} catch (error) {
|
|
51
|
-
|
|
51
|
+
throw new DynamoFM_Error({
|
|
52
|
+
message:
|
|
53
|
+
`DynamoNTS_DBService construction failed! ${dataParams.dataName} - ${this.serviceName}`,
|
|
54
|
+
errorCode: 'NTS-DBS-C00',
|
|
55
|
+
level: DynamoFM_ErrorLevel.critical,
|
|
56
|
+
additionalContent: { dataParams: this.dataParams },
|
|
57
|
+
error,
|
|
58
|
+
});
|
|
59
|
+
/* DynamoFM_Log.error(
|
|
52
60
|
`\nDynamoNTS_DBService ERROR, ` +
|
|
53
61
|
`The dbService construction failed for ${dataParams.dataName}. ${this.serviceName}` +
|
|
54
62
|
`\nERROR: `, error,
|
|
55
63
|
new Error()
|
|
56
|
-
);
|
|
64
|
+
); */
|
|
57
65
|
}
|
|
58
66
|
}
|
|
59
67
|
|
|
@@ -106,7 +106,18 @@ export class DynamoNTS_ApiService {
|
|
|
106
106
|
break;
|
|
107
107
|
|
|
108
108
|
default:
|
|
109
|
-
|
|
109
|
+
throw new DynamoFM_Error({
|
|
110
|
+
...this._getDefaultErrorSettings(
|
|
111
|
+
'startApiCall',
|
|
112
|
+
new Error('wrong api call type')
|
|
113
|
+
),
|
|
114
|
+
errorCode: 'NTS-API-SAC0',
|
|
115
|
+
additionalContent: {
|
|
116
|
+
callParams,
|
|
117
|
+
inputParams,
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
//DynamoFM_Log.error('DYNAMO-NTS ERROR: \n wrong api call type'/* , '\n\n', new Error() */);
|
|
110
121
|
break;
|
|
111
122
|
}
|
|
112
123
|
|
|
@@ -137,7 +148,7 @@ export class DynamoNTS_ApiService {
|
|
|
137
148
|
break;
|
|
138
149
|
|
|
139
150
|
default:
|
|
140
|
-
console.error('
|
|
151
|
+
console.error('DYNAMO-NTS ERROR: \n wrong query param type', '\n\n', new Error());
|
|
141
152
|
break;
|
|
142
153
|
}
|
|
143
154
|
}
|
|
@@ -212,11 +223,11 @@ export class DynamoNTS_ApiService {
|
|
|
212
223
|
|
|
213
224
|
status: 404,
|
|
214
225
|
errorCode: 'NTS-API-SAC3',
|
|
215
|
-
message: `Can't connect to the
|
|
226
|
+
message: `Can't connect to the endpoint!`,
|
|
216
227
|
additionalContent: {
|
|
217
228
|
callParams,
|
|
218
229
|
inputParams,
|
|
219
|
-
}
|
|
230
|
+
},
|
|
220
231
|
});
|
|
221
232
|
|
|
222
233
|
} else if (error.config && error.message) {
|
|
@@ -235,7 +246,10 @@ export class DynamoNTS_ApiService {
|
|
|
235
246
|
},
|
|
236
247
|
});
|
|
237
248
|
} else {
|
|
238
|
-
DynamoFM_Log.error(
|
|
249
|
+
DynamoFM_Log.error(
|
|
250
|
+
`\n${callParams.name} was UNSUCCESSFUL`,
|
|
251
|
+
error /*, '\n\n' , new Error() */
|
|
252
|
+
);
|
|
239
253
|
|
|
240
254
|
throw error;
|
|
241
255
|
}
|
|
@@ -345,10 +359,13 @@ export class DynamoNTS_ApiService {
|
|
|
345
359
|
axios.defaults.headers.common[headerKey] = callParams.httpOptions.headers[headerKey];
|
|
346
360
|
|
|
347
361
|
} else {
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
362
|
+
throw new DynamoFM_Error({
|
|
363
|
+
...this._getDefaultErrorSettings(
|
|
364
|
+
'setupHeaders',
|
|
365
|
+
new Error(`missing header: ${headerKey}`)
|
|
366
|
+
),
|
|
367
|
+
errorCode: 'NTS-API-SH0',
|
|
368
|
+
});
|
|
352
369
|
}
|
|
353
370
|
}
|
|
354
371
|
}
|
|
@@ -374,20 +391,38 @@ export class DynamoNTS_ApiService {
|
|
|
374
391
|
break;
|
|
375
392
|
|
|
376
393
|
default:
|
|
377
|
-
DynamoFM_Log.error(
|
|
378
|
-
`
|
|
394
|
+
/* DynamoFM_Log.error(
|
|
395
|
+
`DYNAMO-NTS ERROR:`+
|
|
396
|
+
`\nwrong path param type: (${pathParamKey}): ${paramType} ` +
|
|
379
397
|
`\n${pathParams[pathParamKey]}` +
|
|
380
398
|
`\nMUST BE string or number` +
|
|
381
399
|
`\n\n`,
|
|
382
400
|
new Error()
|
|
383
|
-
);
|
|
401
|
+
); */
|
|
402
|
+
throw new DynamoFM_Error({
|
|
403
|
+
...this._getDefaultErrorSettings(
|
|
404
|
+
'setupPathParams',
|
|
405
|
+
new Error(
|
|
406
|
+
`wrong path param type: (${pathParamKey}): ${paramType}` +
|
|
407
|
+
`\n${pathParams[pathParamKey]}`
|
|
408
|
+
)
|
|
409
|
+
),
|
|
410
|
+
errorCode: 'NTS-API-SP1',
|
|
411
|
+
additionalContent: {
|
|
412
|
+
pathParams: pathParams,
|
|
413
|
+
url: url,
|
|
414
|
+
},
|
|
415
|
+
});
|
|
384
416
|
break;
|
|
385
417
|
}
|
|
386
418
|
} else {
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
419
|
+
throw new DynamoFM_Error({
|
|
420
|
+
...this._getDefaultErrorSettings(
|
|
421
|
+
'setupPathParams',
|
|
422
|
+
new Error(`missing pathParam: ${pathParamKey}`)
|
|
423
|
+
),
|
|
424
|
+
errorCode: 'NTS-API-SP0',
|
|
425
|
+
});
|
|
391
426
|
}
|
|
392
427
|
}
|
|
393
428
|
|
|
@@ -92,7 +92,7 @@ export abstract class DynamoNTS_AuthService extends DynamoNTS_SingletonService {
|
|
|
92
92
|
* }
|
|
93
93
|
* }
|
|
94
94
|
* */
|
|
95
|
-
abstract
|
|
95
|
+
abstract authenticate_token: (req: Request, res: Response) => Promise<void>;
|
|
96
96
|
|
|
97
97
|
/**
|
|
98
98
|
* You need to implement a token validation logic,
|
|
@@ -128,7 +128,7 @@ export abstract class DynamoNTS_AuthService extends DynamoNTS_SingletonService {
|
|
|
128
128
|
* }
|
|
129
129
|
*
|
|
130
130
|
*/
|
|
131
|
-
abstract
|
|
131
|
+
abstract authenticate_tokenSelf: (req: Request, res: Response) => Promise<void>;
|
|
132
132
|
|
|
133
133
|
/**
|
|
134
134
|
* Authenticate Token for Permission to Access UsageData
|
|
@@ -144,7 +144,7 @@ export abstract class DynamoNTS_AuthService extends DynamoNTS_SingletonService {
|
|
|
144
144
|
* AuthService.authTokenAndPerm(req, res, next, Permission.accessUsageData);
|
|
145
145
|
* }
|
|
146
146
|
*/
|
|
147
|
-
abstract
|
|
147
|
+
abstract authenticate_tokenPermAccUsageData: (req: Request, res: Response) => Promise<void>;
|
|
148
148
|
|
|
149
149
|
/**
|
|
150
150
|
* The DynamoBE System is using this to get issuer, that will be set on DBServices
|
|
@@ -18,6 +18,7 @@ import { DynamoNTS_EmailService } from './email.service';
|
|
|
18
18
|
import { DynamoNTS_Service_Collection } from './service-collection.service';
|
|
19
19
|
/* import { DynamoNTS_EmailServiceCollection } from './email-service-collection.service'; */
|
|
20
20
|
import { DynamoNTS_SingletonService } from '../base/singleton.service';
|
|
21
|
+
import { DynamoNTS_globalSettings } from '../../_constants';
|
|
21
22
|
|
|
22
23
|
/**
|
|
23
24
|
* This is the main Global/Core Service Collection used by DynamoBE,
|
|
@@ -105,7 +106,15 @@ export class DynamoNTS_GlobalService extends DynamoNTS_SingletonService {
|
|
|
105
106
|
set.errorHandler ??
|
|
106
107
|
(async (error: any): Promise<void> => {
|
|
107
108
|
DynamoFM_Log.warn(`globalErrorHandler not set!`);
|
|
108
|
-
|
|
109
|
+
|
|
110
|
+
if (DynamoNTS_globalSettings.logDetailedErrors) {
|
|
111
|
+
DynamoFM_Log.error(`ERROR:\n`, error);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (error?.flag?.includes?.('DYNAMO-ERROR-OBJECT')) {
|
|
115
|
+
DynamoFM_Log.error(`\nErrorMessage: ${(error as DynamoFM_Error)._message}`);
|
|
116
|
+
DynamoFM_Log.error(`ErrorCode: ${(error as DynamoFM_Error)._errorCode}`);
|
|
117
|
+
}
|
|
109
118
|
});
|
|
110
119
|
} catch (error) {
|
|
111
120
|
throw new DynamoFM_Error({
|
|
@@ -125,7 +134,7 @@ export class DynamoNTS_GlobalService extends DynamoNTS_SingletonService {
|
|
|
125
134
|
* @returns
|
|
126
135
|
*/
|
|
127
136
|
static getAuthService(): DynamoNTS_AuthService {
|
|
128
|
-
if (!this.instance?.authService?.
|
|
137
|
+
if (!(this.instance?.authService as DynamoNTS_AuthService)?.authenticate_token) {
|
|
129
138
|
throw new Error(
|
|
130
139
|
`\n Unique Authentication Service missing!` +
|
|
131
140
|
`\n Please create a Unique Authentication Service extending DynamoNTS_AuthService, ` +
|
|
@@ -288,7 +288,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
288
288
|
);
|
|
289
289
|
|
|
290
290
|
} catch (error) {
|
|
291
|
-
DynamoFM_Log.error('
|
|
291
|
+
DynamoFM_Log.error('globalErrorHandler (MULTILEVEL) ERROR:', error);
|
|
292
292
|
}
|
|
293
293
|
});
|
|
294
294
|
|
|
@@ -299,7 +299,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
299
299
|
);
|
|
300
300
|
|
|
301
301
|
if (error?.flag?.includes?.('DYNAMO-ERROR-OBJECT')) {
|
|
302
|
-
DynamoFM_Log.error(`\
|
|
302
|
+
DynamoFM_Log.error(`\nErrorMessage: ${(error as DynamoFM_Error)._message}`);
|
|
303
303
|
DynamoFM_Log.error(`ErrorCode: ${(error as DynamoFM_Error)._errorCode}`);
|
|
304
304
|
}
|
|
305
305
|
});
|
|
@@ -389,7 +389,11 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
389
389
|
}
|
|
390
390
|
} catch (error) {
|
|
391
391
|
this.constructErrors.push(error);
|
|
392
|
-
DynamoFM_Log.error(
|
|
392
|
+
DynamoFM_Log.error(
|
|
393
|
+
`${this._params.name} start failed. ERRORS`,
|
|
394
|
+
this.constructErrors,
|
|
395
|
+
error
|
|
396
|
+
);
|
|
393
397
|
|
|
394
398
|
throw new DynamoFM_Error({
|
|
395
399
|
...this._getDefaultErrorSettings(
|
|
@@ -418,7 +422,10 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
418
422
|
const start: number = +new Date();
|
|
419
423
|
|
|
420
424
|
if (this.constructErrors.length) {
|
|
421
|
-
DynamoFM_Log.error(
|
|
425
|
+
DynamoFM_Log.error(
|
|
426
|
+
`${this._params.name} start failed. \nERRORS:`,
|
|
427
|
+
this.constructErrors
|
|
428
|
+
);
|
|
422
429
|
|
|
423
430
|
throw new DynamoFM_Error({
|
|
424
431
|
...this._getDefaultErrorSettings(
|
|
@@ -426,7 +433,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
426
433
|
new Error(`${this._params.name} start failed. ERRORS`)
|
|
427
434
|
),
|
|
428
435
|
|
|
429
|
-
errorCode: 'NTS-AS0-
|
|
436
|
+
errorCode: 'NTS-AS0-R01',
|
|
430
437
|
additionalContent:
|
|
431
438
|
this.constructErrors.length === 1 ?
|
|
432
439
|
this.constructErrors[0] :
|
|
@@ -459,7 +466,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
459
466
|
new Error(`${this._params.name} start failed. TIMEOUT`)
|
|
460
467
|
),
|
|
461
468
|
|
|
462
|
-
errorCode: 'NTS-AS0-
|
|
469
|
+
errorCode: 'NTS-AS0-R02',
|
|
463
470
|
additionalContent: {
|
|
464
471
|
constructErrors: this.constructErrors,
|
|
465
472
|
systemControls: this.systemControls,
|
|
@@ -481,7 +488,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
481
488
|
new Error(`${this._params.name} start failed. ERROR`)
|
|
482
489
|
),
|
|
483
490
|
|
|
484
|
-
errorCode: 'NTS-AS0-
|
|
491
|
+
errorCode: 'NTS-AS0-R03',
|
|
485
492
|
additionalContent: this.constructErrors,
|
|
486
493
|
});
|
|
487
494
|
}
|
|
@@ -517,7 +524,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
517
524
|
new Error(msg)
|
|
518
525
|
),
|
|
519
526
|
|
|
520
|
-
errorCode: 'NTS-AS0-
|
|
527
|
+
errorCode: 'NTS-AS0-R04',
|
|
521
528
|
additionalContent: {
|
|
522
529
|
constructErrors: this.constructErrors,
|
|
523
530
|
systemControls: this.systemControls,
|
|
@@ -915,11 +922,11 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
915
922
|
DynamoNTS_GlobalService.globalErrorHandler?.(d_error);
|
|
916
923
|
}
|
|
917
924
|
})
|
|
918
|
-
.on('uncaughtException', (
|
|
925
|
+
.on('uncaughtException', (exception): void => {
|
|
919
926
|
const d_error: DynamoFM_Error = new DynamoFM_Error({
|
|
920
927
|
...this._getDefaultErrorSettings(
|
|
921
928
|
'httpServer.on(uncaughtException)',
|
|
922
|
-
|
|
929
|
+
exception
|
|
923
930
|
),
|
|
924
931
|
|
|
925
932
|
errorCode: 'NTS-AS0-SE5',
|
|
@@ -927,7 +934,9 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
927
934
|
level: DynamoFM_ErrorLevel.critical,
|
|
928
935
|
});
|
|
929
936
|
|
|
930
|
-
if (this.debugLog)
|
|
937
|
+
if (this.debugLog) {
|
|
938
|
+
DynamoFM_Log.warn(`\nHTTP (open) server uncaughtException`, d_error);
|
|
939
|
+
}
|
|
931
940
|
|
|
932
941
|
DynamoNTS_GlobalService.globalErrorHandler?.(d_error);
|
|
933
942
|
});
|
|
@@ -79,6 +79,11 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
79
79
|
|
|
80
80
|
this.asyncConstructor().catch((error: any) => {
|
|
81
81
|
DynamoFM_Log.error(`socket-client(${this.params?.name}) Service setup failed! ERROR:`, error);
|
|
82
|
+
|
|
83
|
+
if (error?.flag?.includes?.('DYNAMO-ERROR-OBJECT')) {
|
|
84
|
+
DynamoFM_Log.error(`\nErrorMessage: ${(error as DynamoFM_Error)._message}`);
|
|
85
|
+
DynamoFM_Log.error(`ErrorCode: ${(error as DynamoFM_Error)._errorCode}`);
|
|
86
|
+
}
|
|
82
87
|
});
|
|
83
88
|
}
|
|
84
89
|
|
package/tsconfig.json
CHANGED
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"moduleResolution": "node",
|
|
19
19
|
"esModuleInterop": true,
|
|
20
20
|
"skipLibCheck": true,
|
|
21
|
+
"noImplicitOverride": true,
|
|
21
22
|
"allowSyntheticDefaultImports": true,
|
|
22
23
|
"forceConsistentCasingInFileNames": true,
|
|
23
|
-
"noImplicitOverride": true,
|
|
24
24
|
"resolveJsonModule": true,
|
|
25
25
|
"paths": {
|
|
26
26
|
|