@futdevpro/nts-dynamo 1.7.28 → 1.9.1
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/.copilot/patterns.json +1 -1
- package/.eslintrc.json +9 -1
- package/lib/_constants/global-settings.const.d.ts +2 -2
- package/lib/_constants/global-settings.const.d.ts.map +1 -1
- package/lib/_constants/global-settings.const.js +2 -2
- package/lib/_constants/global-settings.const.js.map +1 -1
- package/lib/_constants/mocks/app-extended-server.mock.d.ts +12 -12
- package/lib/_constants/mocks/app-extended-server.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/app-extended-server.mock.js +16 -16
- package/lib/_constants/mocks/app-extended-server.mock.js.map +1 -1
- package/lib/_constants/mocks/app-params.mock.d.ts +2 -2
- package/lib/_constants/mocks/app-params.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/app-params.mock.js +1 -1
- package/lib/_constants/mocks/app-params.mock.js.map +1 -1
- package/lib/_constants/mocks/app-server.mock.d.ts +15 -15
- package/lib/_constants/mocks/app-server.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/app-server.mock.js +10 -10
- package/lib/_constants/mocks/app-server.mock.js.map +1 -1
- package/lib/_constants/mocks/data-model.mock.d.ts +5 -5
- package/lib/_constants/mocks/data-model.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/data-model.mock.js +24 -24
- package/lib/_constants/mocks/data-model.mock.js.map +1 -1
- package/lib/_constants/mocks/email-service-collection.mock.d.ts +2 -2
- package/lib/_constants/mocks/email-service-collection.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/email-service-collection.mock.js +1 -1
- package/lib/_constants/mocks/email-service-collection.mock.js.map +1 -1
- package/lib/_constants/mocks/endpoint.mock.d.ts +8 -8
- package/lib/_constants/mocks/endpoint.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/endpoint.mock.js +18 -18
- package/lib/_constants/mocks/endpoint.mock.js.map +1 -1
- package/lib/_constants/mocks/socket-client.mock.d.ts +2 -2
- package/lib/_constants/mocks/socket-client.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/socket-client.mock.js +1 -1
- package/lib/_constants/mocks/socket-client.mock.js.map +1 -1
- package/lib/_constants/mocks/socket-server.mock.d.ts +2 -2
- package/lib/_constants/mocks/socket-server.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/socket-server.mock.js +1 -1
- package/lib/_constants/mocks/socket-server.mock.js.map +1 -1
- package/lib/_enums/data-model-type.enum.d.ts +1 -0
- package/lib/_enums/data-model-type.enum.d.ts.map +1 -1
- package/lib/_enums/data-model-type.enum.js +1 -0
- package/lib/_enums/data-model-type.enum.js.map +1 -1
- package/lib/_models/control-models/api-call-params.control-model.d.ts +3 -3
- package/lib/_models/control-models/api-call-params.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/api-call-params.control-model.js +6 -6
- package/lib/_models/control-models/api-call-params.control-model.js.map +1 -1
- package/lib/_models/control-models/{app-system-controls.control-model copy.d.ts → app-ext-system-controls.control-model.d.ts} +1 -1
- package/lib/_models/control-models/app-ext-system-controls.control-model.d.ts.map +1 -0
- package/lib/_models/control-models/{app-system-controls.control-model copy.js → app-ext-system-controls.control-model.js} +1 -1
- package/lib/_models/control-models/app-ext-system-controls.control-model.js.map +1 -0
- package/lib/_models/control-models/app-params.control-model.d.ts +2 -2
- package/lib/_models/control-models/app-params.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/app-params.control-model.js +3 -3
- package/lib/_models/control-models/app-params.control-model.js.map +1 -1
- package/lib/_models/control-models/endpoint-params.control-model.d.ts +1 -1
- package/lib/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/endpoint-params.control-model.js +25 -25
- package/lib/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/lib/_models/control-models/http-settings.control-model.d.ts +2 -2
- package/lib/_models/control-models/http-settings.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/http-settings.control-model.js +3 -3
- package/lib/_models/control-models/http-settings.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-client-service-params.control-model.d.ts +2 -2
- package/lib/_models/control-models/socket-client-service-params.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/socket-client-service-params.control-model.js +3 -3
- package/lib/_models/control-models/socket-client-service-params.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-event.control-model.js +11 -11
- package/lib/_models/control-models/socket-event.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-presence.control-model.d.ts +12 -0
- package/lib/_models/control-models/socket-presence.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/socket-presence.control-model.js +12 -8
- package/lib/_models/control-models/socket-presence.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-server-service-params.control-model.d.ts +2 -2
- package/lib/_models/control-models/socket-server-service-params.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/socket-server-service-params.control-model.js +4 -4
- package/lib/_models/control-models/socket-server-service-params.control-model.js.map +1 -1
- package/lib/_models/interfaces/certification-settings.interface.d.ts +1 -1
- package/lib/_models/interfaces/certification-settings.interface.d.ts.map +1 -1
- package/lib/_models/interfaces/global-service-settings.interface.d.ts +6 -6
- package/lib/_models/interfaces/global-service-settings.interface.d.ts.map +1 -1
- package/lib/_models/interfaces/global-settings.interface.d.ts +1 -1
- package/lib/_models/interfaces/global-settings.interface.d.ts.map +1 -1
- package/lib/_models/interfaces/routing-module-settings.interface.d.ts +1 -1
- package/lib/_models/interfaces/routing-module-settings.interface.d.ts.map +1 -1
- package/lib/_models/types/db-filter.type.d.ts.map +1 -1
- package/lib/_models/types/db-update.type.d.ts +2 -1
- package/lib/_models/types/db-update.type.d.ts.map +1 -1
- package/lib/_modules/custom-data/custom-data.controller.d.ts +2 -2
- package/lib/_modules/custom-data/custom-data.controller.d.ts.map +1 -1
- package/lib/_modules/custom-data/custom-data.controller.js +18 -16
- package/lib/_modules/custom-data/custom-data.controller.js.map +1 -1
- package/lib/_modules/custom-data/custom-data.data-service.d.ts +3 -3
- package/lib/_modules/custom-data/custom-data.data-service.d.ts.map +1 -1
- package/lib/_modules/custom-data/custom-data.data-service.js +4 -4
- package/lib/_modules/custom-data/custom-data.data-service.js.map +1 -1
- package/lib/_modules/custom-data/get-custom-data-routing-module.util.d.ts +1 -1
- package/lib/_modules/custom-data/get-custom-data-routing-module.util.d.ts.map +1 -1
- package/lib/_modules/custom-data/get-custom-data-routing-module.util.js +5 -5
- package/lib/_modules/custom-data/get-custom-data-routing-module.util.js.map +1 -1
- package/lib/_modules/test/get-test-routing-module.util.d.ts +1 -1
- package/lib/_modules/test/get-test-routing-module.util.d.ts.map +1 -1
- package/lib/_modules/test/get-test-routing-module.util.js +5 -5
- package/lib/_modules/test/get-test-routing-module.util.js.map +1 -1
- package/lib/_modules/test/test.controller.d.ts +2 -2
- package/lib/_modules/test/test.controller.d.ts.map +1 -1
- package/lib/_modules/test/test.controller.js +33 -33
- package/lib/_modules/test/test.controller.js.map +1 -1
- package/lib/_modules/usage/get-usage-routing-module.util.d.ts +1 -1
- package/lib/_modules/usage/get-usage-routing-module.util.d.ts.map +1 -1
- package/lib/_modules/usage/get-usage-routing-module.util.js +5 -5
- package/lib/_modules/usage/get-usage-routing-module.util.js.map +1 -1
- package/lib/_modules/usage/usage.controller.d.ts +2 -2
- package/lib/_modules/usage/usage.controller.d.ts.map +1 -1
- package/lib/_modules/usage/usage.controller.js +17 -17
- package/lib/_modules/usage/usage.controller.js.map +1 -1
- package/lib/_modules/usage/usage.data-service.d.ts +8 -8
- package/lib/_modules/usage/usage.data-service.d.ts.map +1 -1
- package/lib/_modules/usage/usage.data-service.js +11 -11
- package/lib/_modules/usage/usage.data-service.js.map +1 -1
- package/lib/_services/base/data.service.d.ts +4 -4
- package/lib/_services/base/data.service.d.ts.map +1 -1
- package/lib/_services/base/data.service.js +50 -50
- package/lib/_services/base/data.service.js.map +1 -1
- package/lib/_services/base/db.service.d.ts +6 -6
- package/lib/_services/base/db.service.d.ts.map +1 -1
- package/lib/_services/base/db.service.js +41 -37
- package/lib/_services/base/db.service.js.map +1 -1
- package/lib/_services/core/api.service.d.ts +4 -4
- package/lib/_services/core/api.service.d.ts.map +1 -1
- package/lib/_services/core/api.service.js +34 -34
- package/lib/_services/core/api.service.js.map +1 -1
- package/lib/_services/core/auth.service.d.ts +6 -6
- package/lib/_services/core/auth.service.js +2 -2
- package/lib/_services/core/auth.service.js.map +1 -1
- package/lib/_services/core/email.service.d.ts +4 -4
- package/lib/_services/core/email.service.d.ts.map +1 -1
- package/lib/_services/core/email.service.js +23 -23
- package/lib/_services/core/email.service.js.map +1 -1
- package/lib/_services/core/global.service.d.ts +13 -13
- package/lib/_services/core/global.service.d.ts.map +1 -1
- package/lib/_services/core/global.service.js +20 -7
- package/lib/_services/core/global.service.js.map +1 -1
- package/lib/_services/core/service-collection.service.d.ts +1 -1
- package/lib/_services/core/service-collection.service.d.ts.map +1 -1
- package/lib/_services/core/service-collection.service.js +3 -3
- package/lib/_services/core/service-collection.service.js.map +1 -1
- package/lib/_services/route/controller.service.d.ts +2 -2
- package/lib/_services/route/controller.service.d.ts.map +1 -1
- package/lib/_services/route/controller.service.js +1 -1
- package/lib/_services/route/controller.service.js.map +1 -1
- package/lib/_services/route/routing-module.service.d.ts +4 -4
- package/lib/_services/route/routing-module.service.d.ts.map +1 -1
- package/lib/_services/route/routing-module.service.js +10 -10
- package/lib/_services/route/routing-module.service.js.map +1 -1
- package/lib/_services/server/app-extended.server.d.ts +2 -2
- package/lib/_services/server/app-extended.server.js +27 -27
- package/lib/_services/server/app-extended.server.js.map +1 -1
- package/lib/_services/server/app-extended.server.spec.js +3 -3
- package/lib/_services/server/app-extended.server.spec.js.map +1 -1
- package/lib/_services/server/app.server.d.ts +16 -16
- package/lib/_services/server/app.server.d.ts.map +1 -1
- package/lib/_services/server/app.server.js +91 -90
- package/lib/_services/server/app.server.js.map +1 -1
- package/lib/_services/server/app.server.spec.js +5 -5
- package/lib/_services/server/app.server.spec.js.map +1 -1
- package/lib/_services/shared.static-service.d.ts +4 -4
- package/lib/_services/shared.static-service.d.ts.map +1 -1
- package/lib/_services/shared.static-service.js +2 -2
- package/lib/_services/shared.static-service.js.map +1 -1
- package/lib/_services/socket/socket-client.service.d.ts +3 -3
- package/lib/_services/socket/socket-client.service.d.ts.map +1 -1
- package/lib/_services/socket/socket-client.service.js +35 -29
- package/lib/_services/socket/socket-client.service.js.map +1 -1
- package/lib/_services/socket/socket-server.service.d.ts +3 -3
- package/lib/_services/socket/socket-server.service.d.ts.map +1 -1
- package/lib/_services/socket/socket-server.service.js +51 -51
- package/lib/_services/socket/socket-server.service.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +233 -230
- package/src/_constants/global-settings.const.ts +2 -2
- package/src/_constants/mocks/app-extended-server.mock.ts +34 -35
- package/src/_constants/mocks/app-params.mock.ts +2 -2
- package/src/_constants/mocks/app-server.mock.ts +30 -30
- package/src/_constants/mocks/data-model.mock.ts +25 -25
- package/src/_constants/mocks/email-service-collection.mock.ts +2 -2
- package/src/_constants/mocks/endpoint.mock.ts +22 -22
- package/src/_constants/mocks/socket-client.mock.ts +3 -3
- package/src/_constants/mocks/socket-server.mock.ts +3 -3
- package/src/_enums/data-model-type.enum.ts +1 -0
- package/src/_models/control-models/api-call-params.control-model.ts +5 -5
- package/src/_models/control-models/app-params.control-model.ts +2 -2
- package/src/_models/control-models/endpoint-params.control-model.ts +35 -35
- package/src/_models/control-models/http-settings.control-model.ts +2 -2
- package/src/_models/control-models/socket-client-service-params.control-model.ts +2 -2
- package/src/_models/control-models/socket-event.control-model.ts +13 -13
- package/src/_models/control-models/socket-presence.control-model.ts +26 -14
- package/src/_models/control-models/socket-server-service-params.control-model.ts +4 -4
- package/src/_models/interfaces/certification-settings.interface.ts +1 -1
- package/src/_models/interfaces/global-service-settings.interface.ts +6 -6
- package/src/_models/interfaces/global-settings.interface.ts +1 -1
- package/src/_models/interfaces/routing-module-settings.interface.ts +1 -1
- package/src/_models/types/db-filter.type.ts +5 -2
- package/src/_models/types/db-update.type.ts +3 -2
- package/src/_modules/custom-data/custom-data.controller.ts +20 -18
- package/src/_modules/custom-data/custom-data.data-service.ts +8 -6
- package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +7 -7
- package/src/_modules/test/get-test-routing-module.util.ts +7 -7
- package/src/_modules/test/test.controller.ts +34 -34
- package/src/_modules/usage/get-usage-routing-module.util.ts +7 -7
- package/src/_modules/usage/usage.controller.ts +20 -21
- package/src/_modules/usage/usage.data-service.ts +28 -28
- package/src/_services/base/data.service.ts +62 -61
- package/src/_services/base/db.service.ts +53 -50
- package/src/_services/core/api.service.ts +54 -54
- package/src/_services/core/auth.service.ts +9 -9
- package/src/_services/core/email.service.ts +33 -33
- package/src/_services/core/global.service.ts +37 -23
- package/src/_services/core/service-collection.service.ts +1 -1
- package/src/_services/route/controller.service.ts +4 -4
- package/src/_services/route/routing-module.service.ts +21 -21
- package/src/_services/server/app-extended.server.spec.ts +4 -4
- package/src/_services/server/app-extended.server.ts +27 -27
- package/src/_services/server/app.server.spec.ts +6 -6
- package/src/_services/server/app.server.ts +118 -116
- package/src/_services/shared.static-service.ts +8 -5
- package/src/_services/socket/socket-client.service.ts +79 -47
- package/src/_services/socket/socket-server.service.ts +61 -61
- package/tsconfig.json +8 -7
- package/lib/_models/control-models/app-system-controls.control-model copy.d.ts.map +0 -1
- package/lib/_models/control-models/app-system-controls.control-model copy.js.map +0 -1
- /package/src/_models/control-models/{app-system-controls.control-model copy.ts → app-ext-system-controls.control-model.ts} +0 -0
|
@@ -3,12 +3,12 @@ import * as ReadLine from 'readline';
|
|
|
3
3
|
import * as GeoIp from 'geoip-lite';
|
|
4
4
|
import { Request } from 'express';
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { DynamoFM_GeoIpLocation, DynamoFM_Shared } from '@futdevpro/fsm-dynamo/shared-service';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
*
|
|
10
10
|
*/
|
|
11
|
-
export class DynamoNTS_Shared extends
|
|
11
|
+
export class DynamoNTS_Shared extends DynamoFM_Shared {
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
*
|
|
@@ -17,13 +17,16 @@ export class DynamoNTS_Shared extends Dynamo_Shared {
|
|
|
17
17
|
*/
|
|
18
18
|
static getIpFromRequest(request: Request): string {
|
|
19
19
|
let ip: string;
|
|
20
|
+
|
|
20
21
|
if (request.headers['x-forwarded-for']) {
|
|
21
22
|
const route: string[] = (request.headers['x-forwarded-for'] as string).split(', ');
|
|
23
|
+
|
|
22
24
|
console.log('TESTTTT route:', route);
|
|
23
25
|
ip = route[route.length - 1];
|
|
24
26
|
} else {
|
|
25
27
|
ip = request.socket.remoteAddress;
|
|
26
28
|
}
|
|
29
|
+
|
|
27
30
|
return ip;
|
|
28
31
|
}
|
|
29
32
|
|
|
@@ -32,7 +35,7 @@ export class DynamoNTS_Shared extends Dynamo_Shared {
|
|
|
32
35
|
* @param request
|
|
33
36
|
* @returns
|
|
34
37
|
*/
|
|
35
|
-
static getLocationDataByRequest(request: Request):
|
|
38
|
+
static getLocationDataByRequest(request: Request): DynamoFM_GeoIpLocation {
|
|
36
39
|
return GeoIp.lookup(this.getIpFromRequest(request));
|
|
37
40
|
}
|
|
38
41
|
|
|
@@ -41,7 +44,7 @@ export class DynamoNTS_Shared extends Dynamo_Shared {
|
|
|
41
44
|
* @param request
|
|
42
45
|
* @returns
|
|
43
46
|
*/
|
|
44
|
-
static getLocationByIp(ip: string):
|
|
47
|
+
static getLocationByIp(ip: string): DynamoFM_GeoIpLocation {
|
|
45
48
|
return GeoIp.lookup(ip);
|
|
46
49
|
}
|
|
47
50
|
|
|
@@ -53,7 +56,7 @@ export class DynamoNTS_Shared extends Dynamo_Shared {
|
|
|
53
56
|
static async prompt(question: string): Promise<string> {
|
|
54
57
|
const readLine = ReadLine.createInterface({
|
|
55
58
|
input: process.stdin,
|
|
56
|
-
output: process.stdout
|
|
59
|
+
output: process.stdout,
|
|
57
60
|
});
|
|
58
61
|
|
|
59
62
|
return new Promise((resolve, reject) => {
|
|
@@ -4,27 +4,29 @@
|
|
|
4
4
|
import * as SocketIO from 'socket.io-client';
|
|
5
5
|
|
|
6
6
|
import { DynamoNTS_SingletonService } from '../base/singleton.service';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
7
|
+
import { DynamoFM_Error, DynamoFM_Log } from '@futdevpro/fsm-dynamo';
|
|
8
|
+
import { DynamoFM_delay, DynamoFM_Array } from '@futdevpro/fsm-dynamo/utils';
|
|
9
|
+
import {
|
|
10
|
+
DynamoNTS_SocketClientService_Params
|
|
11
|
+
} from '../../_models/control-models/socket-client-service-params.control-model';
|
|
12
|
+
import { DynamoNTS_globalSettings } from '../../_constants/global-settings.const';
|
|
11
13
|
import { DynamoNTS_SocketEvent } from '../../_models/control-models/socket-event.control-model';
|
|
12
14
|
import { DynamoNTS_SocketEventKey } from '../../_enums/http/socket-event-type.enum';
|
|
13
15
|
|
|
14
16
|
export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonService {
|
|
15
17
|
|
|
16
|
-
private _params:
|
|
17
|
-
protected get params():
|
|
18
|
+
private _params: DynamoNTS_SocketClientService_Params;
|
|
19
|
+
protected get params(): DynamoNTS_SocketClientService_Params { return this._params; }
|
|
18
20
|
get name(): string { return this.params.name; }
|
|
19
21
|
|
|
20
|
-
protected socket: SocketIO.Socket
|
|
22
|
+
protected socket: SocketIO.Socket;
|
|
21
23
|
|
|
22
24
|
protected incomingEvents: DynamoNTS_SocketEvent<any>[];
|
|
23
25
|
|
|
24
26
|
protected _connected: boolean = false;
|
|
25
27
|
get connected(): boolean { return this._connected; }
|
|
26
28
|
|
|
27
|
-
protected debugLog: boolean =
|
|
29
|
+
protected debugLog: boolean = DynamoNTS_globalSettings.logSetup;
|
|
28
30
|
protected logFn: boolean;
|
|
29
31
|
|
|
30
32
|
private defaultEvents: DynamoNTS_SocketEvent<any>[] = [
|
|
@@ -33,9 +35,9 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
33
35
|
tasks: [
|
|
34
36
|
async () => {
|
|
35
37
|
this._connected = true;
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
]
|
|
38
|
+
DynamoFM_Log.success(`< > socket-client(${this.params.name}) connected!`);
|
|
39
|
+
},
|
|
40
|
+
],
|
|
39
41
|
}),
|
|
40
42
|
|
|
41
43
|
new DynamoNTS_SocketEvent<any>({
|
|
@@ -43,32 +45,32 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
43
45
|
tasks: [
|
|
44
46
|
async () => {
|
|
45
47
|
this._connected = false;
|
|
46
|
-
|
|
48
|
+
DynamoFM_Log.warn(`<x > socket-client(${this.params.name}) disconnected!`);
|
|
47
49
|
|
|
48
50
|
if (this._params.reconnect) {
|
|
49
|
-
await
|
|
51
|
+
await DynamoFM_delay(this._params.reconnectDelay);
|
|
50
52
|
this.connectSocket();
|
|
51
53
|
}
|
|
52
|
-
}
|
|
53
|
-
]
|
|
54
|
+
},
|
|
55
|
+
],
|
|
54
56
|
}),
|
|
55
57
|
|
|
56
58
|
new DynamoNTS_SocketEvent<any>({
|
|
57
59
|
eventKey: DynamoNTS_SocketEventKey.subscriptionSuccessful,
|
|
58
60
|
tasks: [
|
|
59
61
|
async () => {
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
]
|
|
62
|
+
DynamoFM_Log.success(`<=--> socket-client(${this.params.name}) subscription successful!`);
|
|
63
|
+
},
|
|
64
|
+
],
|
|
63
65
|
}),
|
|
64
66
|
|
|
65
67
|
new DynamoNTS_SocketEvent<any>({
|
|
66
68
|
eventKey: DynamoNTS_SocketEventKey.error,
|
|
67
69
|
tasks: [
|
|
68
70
|
async (content: any) => {
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
]
|
|
71
|
+
DynamoFM_Log.error(`=--> socket-client(${this.params.name}) ERROR!:`, content);
|
|
72
|
+
},
|
|
73
|
+
],
|
|
72
74
|
}),
|
|
73
75
|
];
|
|
74
76
|
|
|
@@ -76,7 +78,7 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
76
78
|
super();
|
|
77
79
|
|
|
78
80
|
this.asyncConstructor().catch((error: any) => {
|
|
79
|
-
|
|
81
|
+
DynamoFM_Log.error(`socket-client(${this.params?.name}) Service setup failed! ERROR:`, error);
|
|
80
82
|
});
|
|
81
83
|
}
|
|
82
84
|
|
|
@@ -84,18 +86,19 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
84
86
|
try {
|
|
85
87
|
this._params = this.getParams();
|
|
86
88
|
this.incomingEvents = this.getIncomingEvents() ?? [];
|
|
87
|
-
this.socket = SocketIO.io(`${this.params.address}:${this.params.port}
|
|
89
|
+
this.socket = SocketIO.io(`${this.params.address}:${this.params.port}`);
|
|
88
90
|
|
|
89
91
|
await this.setupDefaultEvents();
|
|
90
92
|
|
|
91
93
|
await this.setupSocketEvents();
|
|
92
94
|
|
|
93
|
-
|
|
95
|
+
DynamoFM_Log.success(`\nsocket-client(${this.params?.name}) Service setup finished`);
|
|
94
96
|
|
|
95
97
|
await this.connectSocket();
|
|
96
98
|
} catch (error) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
+
DynamoFM_Log.error(`socket-client(${this.params?.name}) Service setup failed!`, error);
|
|
100
|
+
|
|
101
|
+
throw new DynamoFM_Error({
|
|
99
102
|
errorCode: 'NTS-SCS-001',
|
|
100
103
|
error: error,
|
|
101
104
|
});
|
|
@@ -108,7 +111,10 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
108
111
|
|
|
109
112
|
this.defaultEvents.forEach((defaultEvent: DynamoNTS_SocketEvent<any>) => {
|
|
110
113
|
defaultEvent.serviceName = this.params.name;
|
|
111
|
-
const eventDeclared = this.incomingEvents.find(
|
|
114
|
+
const eventDeclared = this.incomingEvents.find(
|
|
115
|
+
(event: DynamoNTS_SocketEvent<any>) => event.eventKey === defaultEvent.eventKey
|
|
116
|
+
);
|
|
117
|
+
|
|
112
118
|
if (!eventDeclared) {
|
|
113
119
|
this.incomingEvents.push(defaultEvent);
|
|
114
120
|
} else {
|
|
@@ -116,7 +122,11 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
116
122
|
}
|
|
117
123
|
});
|
|
118
124
|
} catch (error) {
|
|
119
|
-
|
|
125
|
+
DynamoFM_Log.error(
|
|
126
|
+
`socket-client(${this.params.name}) Service Setup Default Events failed, ` +
|
|
127
|
+
`ERROR:`, error
|
|
128
|
+
);
|
|
129
|
+
|
|
120
130
|
throw error;
|
|
121
131
|
}
|
|
122
132
|
}
|
|
@@ -125,26 +135,36 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
125
135
|
try {
|
|
126
136
|
if (this.debugLog) console.log(`Setup socket-client(${this.params.name}) Events...`);
|
|
127
137
|
|
|
128
|
-
await
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
await DynamoFM_Array.asyncForEach(
|
|
139
|
+
this.incomingEvents,
|
|
140
|
+
async (event: DynamoNTS_SocketEvent<any>) => {
|
|
141
|
+
event.serviceName = this.params.name;
|
|
142
|
+
this.socket.on(event.eventKey, async (content: any) => {
|
|
143
|
+
try {
|
|
144
|
+
await event.executeEventTasks(content, this.params.service);
|
|
145
|
+
} catch (error) {
|
|
146
|
+
DynamoFM_Log.error(`socket-client(${this.params.name}) Event failed, ERROR:`, error);
|
|
147
|
+
await this.emitEvent(DynamoNTS_SocketEventKey.error, error);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
);
|
|
139
152
|
} catch (error) {
|
|
140
|
-
|
|
153
|
+
DynamoFM_Log.error(
|
|
154
|
+
`socket-client(${this.params.name}) Service Setup Socket Events failed, ` +
|
|
155
|
+
`ERROR:`, error
|
|
156
|
+
);
|
|
157
|
+
|
|
141
158
|
throw error;
|
|
142
159
|
}
|
|
143
160
|
}
|
|
144
161
|
|
|
145
162
|
private async connectSocket(): Promise<void> {
|
|
146
163
|
try {
|
|
147
|
-
|
|
164
|
+
DynamoFM_Log.info(
|
|
165
|
+
`< .. > socket-client(${this.params.name}) ` +
|
|
166
|
+
`connecting to ${this.params.address}:${this.params.port} ...`
|
|
167
|
+
);
|
|
148
168
|
|
|
149
169
|
this.socket.connect();
|
|
150
170
|
|
|
@@ -152,7 +172,11 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
152
172
|
await this.tryReconnectIfNeeded();
|
|
153
173
|
}
|
|
154
174
|
} catch (error) {
|
|
155
|
-
|
|
175
|
+
DynamoFM_Log.error(
|
|
176
|
+
`socket-client(${this.params.name}) Service Connect Socket failed, ` +
|
|
177
|
+
`ERROR:`, error
|
|
178
|
+
);
|
|
179
|
+
|
|
156
180
|
throw error;
|
|
157
181
|
}
|
|
158
182
|
}
|
|
@@ -160,13 +184,17 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
160
184
|
private async tryReconnectIfNeeded(): Promise<void> {
|
|
161
185
|
try {
|
|
162
186
|
if (this.logFn) console.log(`\nFn:. tryReconnectIfNeeded`);
|
|
163
|
-
await
|
|
187
|
+
await DynamoFM_delay(this._params.reconnectDelay);
|
|
164
188
|
|
|
165
189
|
if (!this._connected) {
|
|
166
190
|
await this.connectSocket();
|
|
167
191
|
}
|
|
168
192
|
} catch (error) {
|
|
169
|
-
|
|
193
|
+
DynamoFM_Log.error(
|
|
194
|
+
`socket-client(${this.params.name}) Service Try Reconnect failed, ` +
|
|
195
|
+
`ERROR:`, error
|
|
196
|
+
);
|
|
197
|
+
|
|
170
198
|
throw error;
|
|
171
199
|
}
|
|
172
200
|
}
|
|
@@ -178,10 +206,14 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
178
206
|
*/
|
|
179
207
|
protected async emitEvent(eventType: string, content: any): Promise<void> {
|
|
180
208
|
try {
|
|
181
|
-
|
|
209
|
+
DynamoFM_Log.log(`<=-- outgoing socket-client(${this.params.name}) event: ${eventType}`);
|
|
182
210
|
this.socket.emit(eventType, content);
|
|
183
211
|
} catch (error) {
|
|
184
|
-
|
|
212
|
+
DynamoFM_Log.error(
|
|
213
|
+
`socket-client(${this.params.name}) ` +
|
|
214
|
+
`Service Emit Event failed: ${this.params?.name} (${this.params?.port})`, error
|
|
215
|
+
);
|
|
216
|
+
|
|
185
217
|
throw error;
|
|
186
218
|
}
|
|
187
219
|
}
|
|
@@ -189,7 +221,7 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
|
|
|
189
221
|
/**
|
|
190
222
|
* You must setup params for the service in this function
|
|
191
223
|
*/
|
|
192
|
-
abstract getParams():
|
|
224
|
+
abstract getParams(): DynamoNTS_SocketClientService_Params;
|
|
193
225
|
|
|
194
226
|
/**
|
|
195
227
|
* You must setup events and required services in this function
|