@futdevpro/nts-dynamo 1.9.15 → 1.9.16
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 +7 -7
- package/.github/workflows/main.yml +206 -0
- package/HOWTO.md +15 -15
- package/README.md +140 -140
- package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.js +2 -0
- package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/build/_models/control-models/socket-event.control-model.js +1 -1
- package/build/_services/core/global.service.d.ts.map +1 -1
- package/build/_services/core/global.service.js +1 -0
- package/build/_services/core/global.service.js.map +1 -1
- package/build/_services/route/routing-module.service.d.ts +1 -0
- package/build/_services/route/routing-module.service.d.ts.map +1 -1
- package/build/_services/route/routing-module.service.js +17 -23
- package/build/_services/route/routing-module.service.js.map +1 -1
- package/build/_services/server/app.server.d.ts.map +1 -1
- package/build/_services/server/app.server.js +4 -1
- 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 +1 -0
- package/build/_services/socket/socket-client.service.js.map +1 -1
- package/nodemon.json +17 -15
- package/package.json +5 -5
- package/src/_constants/global-settings.const.ts +27 -27
- package/src/_constants/index.ts +2 -2
- package/src/_constants/mocks/app-extended-server.mock.ts +198 -198
- package/src/_constants/mocks/app-params.mock.ts +9 -9
- package/src/_constants/mocks/app-server.mock.ts +185 -185
- package/src/_constants/mocks/auth-service.mock.ts +28 -28
- package/src/_constants/mocks/controller.mock.ts +16 -16
- package/src/_constants/mocks/data-model.mock.ts +83 -83
- package/src/_constants/mocks/email-service-collection.mock.ts +13 -13
- package/src/_constants/mocks/email-service.mock.ts +19 -19
- package/src/_constants/mocks/email-template.mock.html +14 -14
- package/src/_constants/mocks/endpoint.mock.ts +90 -90
- package/src/_constants/mocks/socket-client.mock.ts +43 -43
- package/src/_constants/mocks/socket-server.mock.ts +43 -43
- package/src/_enums/data-model-type.enum.ts +14 -14
- package/src/_enums/data-service-function.enum.ts +15 -15
- package/src/_enums/http/http-call-type.enum.ts +12 -12
- package/src/_enums/http/http-response-type.enum.ts +7 -7
- package/src/_enums/http/socket-event-type.enum.ts +18 -18
- package/src/_enums/index.ts +13 -13
- package/src/_enums/predefined-data-types.enum.ts +27 -27
- package/src/_enums/route-security.enum.ts +12 -12
- package/src/_enums/socket-security.enum.ts +11 -11
- package/src/_models/control-models/api-call-params.control-model.ts +126 -126
- package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
- package/src/_models/control-models/app-params.control-model.ts +45 -45
- package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
- package/src/_models/control-models/endpoint-params.control-model.ts +309 -307
- package/src/_models/control-models/http-settings.control-model.ts +29 -29
- package/src/_models/control-models/index.ts +13 -13
- package/src/_models/control-models/socket-client-service-params.control-model.ts +28 -28
- package/src/_models/control-models/socket-event.control-model.ts +150 -150
- package/src/_models/control-models/socket-presence.control-model.ts +207 -207
- package/src/_models/control-models/socket-server-service-params.control-model.ts +20 -20
- package/src/_models/control-models/system-control.control-model.ts +12 -12
- package/src/_models/index.ts +9 -9
- package/src/_models/interfaces/certification-settings.interface.ts +7 -7
- package/src/_models/interfaces/global-service-settings.interface.ts +45 -45
- package/src/_models/interfaces/global-settings.interface.ts +83 -83
- package/src/_models/interfaces/index.ts +7 -7
- package/src/_models/interfaces/routing-module-settings.interface.ts +20 -20
- package/src/_models/types/db-filter.type.ts +108 -108
- package/src/_models/types/db-update.type.ts +100 -100
- package/src/_models/types/index.ts +5 -5
- package/src/_modules/api-service.index.ts +12 -12
- package/src/_modules/app-extended.index.ts +28 -28
- package/src/_modules/app.index.ts +24 -24
- package/src/_modules/auth.index.ts +7 -7
- package/src/_modules/constants.index.ts +2 -2
- package/src/_modules/controller.index.ts +10 -10
- package/src/_modules/custom-data/custom-data.controller.ts +69 -69
- package/src/_modules/custom-data/custom-data.data-service.ts +20 -20
- package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +23 -23
- package/src/_modules/custom-data/index.ts +6 -6
- package/src/_modules/custom-data-module.index.ts +2 -2
- package/src/_modules/data-service.index.ts +9 -9
- package/src/_modules/email.index.ts +8 -8
- package/src/_modules/enums.index.ts +2 -2
- package/src/_modules/extended.index.ts +8 -8
- package/src/_modules/models.index.ts +2 -2
- package/src/_modules/services.index.ts +2 -2
- package/src/_modules/test/get-test-routing-module.util.ts +23 -23
- package/src/_modules/test/index.ts +5 -5
- package/src/_modules/test/test.controller.ts +115 -115
- package/src/_modules/test-module.index.ts +2 -2
- package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
- package/src/_modules/usage/index.ts +7 -7
- package/src/_modules/usage/usage.controller.ts +120 -120
- package/src/_modules/usage/usage.data-service.ts +172 -172
- package/src/_modules/usage-module.index.ts +2 -2
- package/src/_services/base/data.service.ts +921 -921
- package/src/_services/base/db.service.spec.ts +32 -32
- package/src/_services/base/db.service.ts +1063 -1063
- package/src/_services/base/singleton.service.ts +21 -21
- package/src/_services/core/api.service.ts +453 -453
- package/src/_services/core/auth.service.ts +172 -172
- package/src/_services/core/email.service.ts +678 -678
- package/src/_services/core/global.service.ts +270 -269
- package/src/_services/core/service-collection.service.ts +5 -5
- package/src/_services/index.ts +23 -23
- package/src/_services/route/controller.service.ts +129 -129
- package/src/_services/route/routing-module.service.ts +293 -273
- package/src/_services/server/app-extended.server.spec.ts +76 -76
- package/src/_services/server/app-extended.server.ts +520 -520
- package/src/_services/server/app.server.spec.ts +67 -67
- package/src/_services/server/app.server.ts +1181 -1179
- package/src/_services/shared.service.spec.ts +19 -19
- package/src/_services/shared.static-service.ts +73 -73
- package/src/_services/socket/socket-client.service.ts +236 -235
- package/src/_services/socket/socket-server.service.spec.ts +11 -11
- package/src/_services/socket/socket-server.service.ts +761 -761
- package/src/index.ts +18 -18
- package/tsconfig.json +41 -41
- package/build/tsconfig.tsbuildinfo +0 -1
|
@@ -1,269 +1,270 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { Request, Response } from 'express';
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
DynamoFM_Metadata, DynamoFM_DataModel_Params, DynamoFM_Log, DynamoFM_Error, DynamoFM_Array
|
|
7
|
-
} from '@futdevpro/fsm-dynamo';
|
|
8
|
-
import { DynamoNTS_App_Params } from '../../_models/control-models/app-params.control-model';
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
DynamoNTS_GlobalService_Settings
|
|
12
|
-
} from '../../_models/interfaces/global-service-settings.interface';
|
|
13
|
-
|
|
14
|
-
import { DynamoNTS_AuthService } from './auth.service';
|
|
15
|
-
/* import { DynamoNTS_DBServiceCollection } from './db-service-collection.service'; */
|
|
16
|
-
import { DynamoNTS_DBService } from '../base/db.service';
|
|
17
|
-
import { DynamoNTS_EmailService } from './email.service';
|
|
18
|
-
import { DynamoNTS_Service_Collection } from './service-collection.service';
|
|
19
|
-
/* import { DynamoNTS_EmailServiceCollection } from './email-service-collection.service'; */
|
|
20
|
-
import { DynamoNTS_SingletonService } from '../base/singleton.service';
|
|
21
|
-
import { DynamoNTS_globalSettings } from '../../_constants';
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* This is the main Global/Core Service Collection used by DynamoBE,
|
|
25
|
-
* you also can use this to access main services as
|
|
26
|
-
* dbServices, emailServices, or authService
|
|
27
|
-
*/
|
|
28
|
-
export class DynamoNTS_GlobalService extends DynamoNTS_SingletonService {
|
|
29
|
-
|
|
30
|
-
static getInstance(): DynamoNTS_GlobalService {
|
|
31
|
-
return DynamoNTS_GlobalService.getSingletonInstance();
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
private static _params: DynamoNTS_App_Params;
|
|
35
|
-
static get params(): DynamoNTS_App_Params {
|
|
36
|
-
return this._params;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
private static readonly _upSince: Date = new Date();
|
|
40
|
-
static get upSince(): Date {
|
|
41
|
-
return this._upSince;
|
|
42
|
-
}
|
|
43
|
-
static get upTime(): number {
|
|
44
|
-
return +new Date() - +this._upSince;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
authService: DynamoNTS_AuthService;
|
|
48
|
-
dbServiceCollection: DynamoNTS_Service_Collection<DynamoNTS_DBService<any>>;
|
|
49
|
-
emailServiceCollection: DynamoNTS_Service_Collection<DynamoNTS_EmailService>;
|
|
50
|
-
|
|
51
|
-
static globalErrorHandler?: (
|
|
52
|
-
err: any,
|
|
53
|
-
req?: Request,
|
|
54
|
-
res?: Response,
|
|
55
|
-
issuer?: string
|
|
56
|
-
) => Promise<void>;
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* You need to setup global Services through this function
|
|
60
|
-
*/
|
|
61
|
-
static async setServices(set: DynamoNTS_GlobalService_Settings): Promise<void> {
|
|
62
|
-
this.getInstance();
|
|
63
|
-
|
|
64
|
-
try {
|
|
65
|
-
this.instance.dbServiceCollection = {};
|
|
66
|
-
set.dbModels?.forEach((dbModel: DynamoFM_DataModel_Params): void => {
|
|
67
|
-
if (!dbModel.constructed) {
|
|
68
|
-
throw new DynamoFM_Error({
|
|
69
|
-
message: `DynamoNTS_GlobalService.setServices failed, ` +
|
|
70
|
-
`ERROR: dbModel is not constructed!`,
|
|
71
|
-
errorCode: 'NTS-GS0-SS1',
|
|
72
|
-
additionalContent: {
|
|
73
|
-
dbModel: dbModel,
|
|
74
|
-
},
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
try {
|
|
79
|
-
this.instance.dbServiceCollection[dbModel.dataName] = new DynamoNTS_DBService(dbModel);
|
|
80
|
-
} catch (error) {
|
|
81
|
-
DynamoFM_Log.error(`Failed to create DynamoNTS_DBService (${dbModel.dataName}).`, error);
|
|
82
|
-
|
|
83
|
-
throw new DynamoFM_Error({
|
|
84
|
-
message: `Failed to create DynamoNTS_DBService (${dbModel.dataName}).`,
|
|
85
|
-
issuerService: 'DynamoNTS_GlobalService',
|
|
86
|
-
error: error,
|
|
87
|
-
additionalContent: {
|
|
88
|
-
dbModel: dbModel,
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
this.instance.authService = set.authService;
|
|
95
|
-
this.instance.emailServiceCollection = set.emailServiceCollection ?? {};
|
|
96
|
-
await DynamoFM_Array.asyncForEach(
|
|
97
|
-
Object.keys(this.instance.emailServiceCollection),
|
|
98
|
-
async (key: string): Promise<void> => {
|
|
99
|
-
await (
|
|
100
|
-
this.instance.emailServiceCollection[key] as DynamoNTS_EmailService
|
|
101
|
-
).asyncPostConstruct();
|
|
102
|
-
}
|
|
103
|
-
);
|
|
104
|
-
|
|
105
|
-
DynamoNTS_GlobalService.globalErrorHandler =
|
|
106
|
-
set.errorHandler ??
|
|
107
|
-
(async (error: any): Promise<void> => {
|
|
108
|
-
DynamoFM_Log.warn(`globalErrorHandler not set!`);
|
|
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
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
*
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
`\n
|
|
141
|
-
`\n
|
|
142
|
-
)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
*
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
`\n
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
)
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
*
|
|
168
|
-
* @
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
*
|
|
179
|
-
* @
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
`\n
|
|
194
|
-
`\n
|
|
195
|
-
`\n
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
*
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
`\n
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
)
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
*
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
`\
|
|
226
|
-
|
|
227
|
-
`
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
*
|
|
236
|
-
* @
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
names =
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
names =
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
}
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import { Request, Response } from 'express';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
DynamoFM_Metadata, DynamoFM_DataModel_Params, DynamoFM_Log, DynamoFM_Error, DynamoFM_Array
|
|
7
|
+
} from '@futdevpro/fsm-dynamo';
|
|
8
|
+
import { DynamoNTS_App_Params } from '../../_models/control-models/app-params.control-model';
|
|
9
|
+
|
|
10
|
+
import {
|
|
11
|
+
DynamoNTS_GlobalService_Settings
|
|
12
|
+
} from '../../_models/interfaces/global-service-settings.interface';
|
|
13
|
+
|
|
14
|
+
import { DynamoNTS_AuthService } from './auth.service';
|
|
15
|
+
/* import { DynamoNTS_DBServiceCollection } from './db-service-collection.service'; */
|
|
16
|
+
import { DynamoNTS_DBService } from '../base/db.service';
|
|
17
|
+
import { DynamoNTS_EmailService } from './email.service';
|
|
18
|
+
import { DynamoNTS_Service_Collection } from './service-collection.service';
|
|
19
|
+
/* import { DynamoNTS_EmailServiceCollection } from './email-service-collection.service'; */
|
|
20
|
+
import { DynamoNTS_SingletonService } from '../base/singleton.service';
|
|
21
|
+
import { DynamoNTS_globalSettings } from '../../_constants';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* This is the main Global/Core Service Collection used by DynamoBE,
|
|
25
|
+
* you also can use this to access main services as
|
|
26
|
+
* dbServices, emailServices, or authService
|
|
27
|
+
*/
|
|
28
|
+
export class DynamoNTS_GlobalService extends DynamoNTS_SingletonService {
|
|
29
|
+
|
|
30
|
+
static getInstance(): DynamoNTS_GlobalService {
|
|
31
|
+
return DynamoNTS_GlobalService.getSingletonInstance();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
private static _params: DynamoNTS_App_Params;
|
|
35
|
+
static get params(): DynamoNTS_App_Params {
|
|
36
|
+
return this._params;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
private static readonly _upSince: Date = new Date();
|
|
40
|
+
static get upSince(): Date {
|
|
41
|
+
return this._upSince;
|
|
42
|
+
}
|
|
43
|
+
static get upTime(): number {
|
|
44
|
+
return +new Date() - +this._upSince;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
authService: DynamoNTS_AuthService;
|
|
48
|
+
dbServiceCollection: DynamoNTS_Service_Collection<DynamoNTS_DBService<any>>;
|
|
49
|
+
emailServiceCollection: DynamoNTS_Service_Collection<DynamoNTS_EmailService>;
|
|
50
|
+
|
|
51
|
+
static globalErrorHandler?: (
|
|
52
|
+
err: any,
|
|
53
|
+
req?: Request,
|
|
54
|
+
res?: Response,
|
|
55
|
+
issuer?: string
|
|
56
|
+
) => Promise<void>;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* You need to setup global Services through this function
|
|
60
|
+
*/
|
|
61
|
+
static async setServices(set: DynamoNTS_GlobalService_Settings): Promise<void> {
|
|
62
|
+
this.getInstance();
|
|
63
|
+
|
|
64
|
+
try {
|
|
65
|
+
this.instance.dbServiceCollection = {};
|
|
66
|
+
set.dbModels?.forEach((dbModel: DynamoFM_DataModel_Params): void => {
|
|
67
|
+
if (!dbModel.constructed) {
|
|
68
|
+
throw new DynamoFM_Error({
|
|
69
|
+
message: `DynamoNTS_GlobalService.setServices failed, ` +
|
|
70
|
+
`ERROR: dbModel is not constructed!`,
|
|
71
|
+
errorCode: 'NTS-GS0-SS1',
|
|
72
|
+
additionalContent: {
|
|
73
|
+
dbModel: dbModel,
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
try {
|
|
79
|
+
this.instance.dbServiceCollection[dbModel.dataName] = new DynamoNTS_DBService(dbModel);
|
|
80
|
+
} catch (error) {
|
|
81
|
+
DynamoFM_Log.error(`Failed to create DynamoNTS_DBService (${dbModel.dataName}).`, error);
|
|
82
|
+
|
|
83
|
+
throw new DynamoFM_Error({
|
|
84
|
+
message: `Failed to create DynamoNTS_DBService (${dbModel.dataName}).`,
|
|
85
|
+
issuerService: 'DynamoNTS_GlobalService',
|
|
86
|
+
error: error,
|
|
87
|
+
additionalContent: {
|
|
88
|
+
dbModel: dbModel,
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
this.instance.authService = set.authService;
|
|
95
|
+
this.instance.emailServiceCollection = set.emailServiceCollection ?? {};
|
|
96
|
+
await DynamoFM_Array.asyncForEach(
|
|
97
|
+
Object.keys(this.instance.emailServiceCollection),
|
|
98
|
+
async (key: string): Promise<void> => {
|
|
99
|
+
await (
|
|
100
|
+
this.instance.emailServiceCollection[key] as DynamoNTS_EmailService
|
|
101
|
+
).asyncPostConstruct();
|
|
102
|
+
}
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
DynamoNTS_GlobalService.globalErrorHandler =
|
|
106
|
+
set.errorHandler ??
|
|
107
|
+
(async (error: any): Promise<void> => {
|
|
108
|
+
DynamoFM_Log.warn(`globalErrorHandler not set!`);
|
|
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
|
+
DynamoFM_Log.error(`UserMessage: ${(error as DynamoFM_Error).__userMessage}`);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
} catch (error) {
|
|
121
|
+
throw new DynamoFM_Error({
|
|
122
|
+
message: `Failed to setServices on DynamoNTS_GlobalService.`,
|
|
123
|
+
error: error,
|
|
124
|
+
errorCode: 'NTS-GS0-SS0',
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
static setParams(params: DynamoNTS_App_Params): void {
|
|
130
|
+
this._params = params;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
*
|
|
135
|
+
* @returns
|
|
136
|
+
*/
|
|
137
|
+
static getAuthService(): DynamoNTS_AuthService {
|
|
138
|
+
if (!(this.instance?.authService as DynamoNTS_AuthService)?.authenticate_token) {
|
|
139
|
+
throw new Error(
|
|
140
|
+
`\n Unique Authentication Service missing!` +
|
|
141
|
+
`\n Please create a Unique Authentication Service extending DynamoNTS_AuthService, ` +
|
|
142
|
+
`\n and Setup with DynamoNTS_GlobalServiceC.setServices(...)\n`
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return this.instance.authService;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
*
|
|
151
|
+
* @returns
|
|
152
|
+
*/
|
|
153
|
+
static getDBServiceCollection(): DynamoNTS_Service_Collection<DynamoNTS_DBService<any>> {
|
|
154
|
+
if (!this.instance?.dbServiceCollection) {
|
|
155
|
+
throw new Error(
|
|
156
|
+
`\n Unique DataBase Service Collection missing!` +
|
|
157
|
+
`\n Please create a Unique DataBase Service Collection extending ` +
|
|
158
|
+
`DynamoNTS_DBServiceCollection, ` +
|
|
159
|
+
`\n and Setup with DynamoNTS_GlobalServiceC.setServices(...)\n`
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
return this.instance.dbServiceCollection;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
*
|
|
168
|
+
* @param dataParams
|
|
169
|
+
* @returns
|
|
170
|
+
*/
|
|
171
|
+
static getDBService<T extends DynamoFM_Metadata>(
|
|
172
|
+
dataParams: DynamoFM_DataModel_Params
|
|
173
|
+
): DynamoNTS_DBService<T> {
|
|
174
|
+
return this.getDBServiceByKey<T>(dataParams.dataName);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
*
|
|
179
|
+
* @param key
|
|
180
|
+
* @returns
|
|
181
|
+
*/
|
|
182
|
+
static getDBServiceByKey<T extends DynamoFM_Metadata>(key: string): DynamoNTS_DBService<T> {
|
|
183
|
+
const collection = this.getDBServiceCollection();
|
|
184
|
+
|
|
185
|
+
if (collection[key]) {
|
|
186
|
+
return collection[key] as DynamoNTS_DBService<T>;
|
|
187
|
+
} else {
|
|
188
|
+
let keys: string = `${Object.keys(collection)}`;
|
|
189
|
+
|
|
190
|
+
keys = keys.replace(/,/g, '\n ');
|
|
191
|
+
|
|
192
|
+
throw new Error(
|
|
193
|
+
`\n DynamoNTS_GlobalService.getDBService failed, ERROR: ` +
|
|
194
|
+
`\n no dbService on collection with this key: ${key}!` +
|
|
195
|
+
`\n The available dbServices on collection:` +
|
|
196
|
+
`\n ${keys}\n`
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
*
|
|
203
|
+
* @returns
|
|
204
|
+
*/
|
|
205
|
+
static getEmailServiceCollection(): DynamoNTS_Service_Collection<DynamoNTS_EmailService> {
|
|
206
|
+
if (!this.instance?.emailServiceCollection) {
|
|
207
|
+
throw new Error(
|
|
208
|
+
`\n Unique Email Service Collection missing!` +
|
|
209
|
+
`\n Please create a Unique Email Service Collection extending ` +
|
|
210
|
+
`DynamoBEEmailServiceCollection, ` +
|
|
211
|
+
`\n and Setup with DynamoNTS_GlobalServiceC.setServices(...)\n`
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
return this.instance.emailServiceCollection;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
*
|
|
220
|
+
* @returns
|
|
221
|
+
*/
|
|
222
|
+
/* static getSocketServiceCollection(): DynamoNTS_SocketServiceCollection {
|
|
223
|
+
if (!this.instance?.socketServiceCollection) {
|
|
224
|
+
throw new Error(
|
|
225
|
+
`\nUnique Socket Service Collection missing!` +
|
|
226
|
+
`\nSocket Service Collection will only be created if there are Socket Services properly setted up ` +
|
|
227
|
+
`in the setupModules in the App using DynamoNTS_AppExtended, ` +
|
|
228
|
+
`and Setup with "DynamoNTS_GlobalServiceC.setServices(...)"`);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
return this.instance.socketServiceCollection;
|
|
232
|
+
} */
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
*
|
|
236
|
+
* @param name
|
|
237
|
+
* @returns
|
|
238
|
+
*/
|
|
239
|
+
/* static getSocketServiceByName(name: string): DynamoNTS_SocketService<any> {
|
|
240
|
+
const collection: DynamoNTS_SocketServiceCollection = this.getSocketServiceCollection();
|
|
241
|
+
if (collection[name]) {
|
|
242
|
+
return collection[name];
|
|
243
|
+
} else {
|
|
244
|
+
let names: string = `${Object.keys(collection)}`;
|
|
245
|
+
names = names.replace(/,/g, '\n ');
|
|
246
|
+
|
|
247
|
+
throw new Error(
|
|
248
|
+
`\nDynamoNTS_GlobalService.getSocketServiceByName failed, ERROR:
|
|
249
|
+
no socketService on collection with this name: ${name}!
|
|
250
|
+
The available socketServices on collection:
|
|
251
|
+
${names}\n`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
static attachNewSocketService(service: DynamoNTS_SocketService<any>): void {
|
|
256
|
+
const collection: DynamoNTS_SocketServiceCollection = this.getSocketServiceCollection();
|
|
257
|
+
if (!collection[service.name]) {
|
|
258
|
+
collection[service.name] = service;
|
|
259
|
+
} else {
|
|
260
|
+
let names: string = `${Object.keys(collection)}`;
|
|
261
|
+
names = names.replace(/,/g, '\n ');
|
|
262
|
+
|
|
263
|
+
throw new Error(
|
|
264
|
+
`\nDynamoNTS_GlobalService.attachNewSocketService failed, ERROR:
|
|
265
|
+
socketService name is already taken on collection with this name: ${service.name}!
|
|
266
|
+
The available socketServices on collection:
|
|
267
|
+
${names}\n`);
|
|
268
|
+
}
|
|
269
|
+
} */
|
|
270
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DynamoNTS_SingletonService } from '../base/singleton.service';
|
|
2
|
-
|
|
3
|
-
export class DynamoNTS_Service_Collection<T> extends DynamoNTS_SingletonService {
|
|
4
|
-
[service: string]: T;
|
|
5
|
-
}
|
|
1
|
+
import { DynamoNTS_SingletonService } from '../base/singleton.service';
|
|
2
|
+
|
|
3
|
+
export class DynamoNTS_Service_Collection<T> extends DynamoNTS_SingletonService {
|
|
4
|
+
[service: string]: T;
|
|
5
|
+
}
|
package/src/_services/index.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// SERVICES
|
|
5
|
-
export * from './core/api.service';
|
|
6
|
-
export * from './server/app.server';
|
|
7
|
-
export * from './core/auth.service';
|
|
8
|
-
export * from './route/controller.service';
|
|
9
|
-
export * from './base/data.service';
|
|
10
|
-
export * from './base/db.service';
|
|
11
|
-
export * from './core/email.service';
|
|
12
|
-
export * from './core/global.service';
|
|
13
|
-
export * from './route/controller.service';
|
|
14
|
-
export * from './route/routing-module.service';
|
|
15
|
-
export * from './core/service-collection.service';
|
|
16
|
-
export * from './shared.static-service';
|
|
17
|
-
export * from './base/singleton.service';
|
|
18
|
-
|
|
19
|
-
// these are using socket.io therefore they are not included in the service index
|
|
20
|
-
// export * from './app-extended.server';
|
|
21
|
-
// export * from './socket-client.service';
|
|
22
|
-
// export * from './socket-server.service';
|
|
23
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
// SERVICES
|
|
5
|
+
export * from './core/api.service';
|
|
6
|
+
export * from './server/app.server';
|
|
7
|
+
export * from './core/auth.service';
|
|
8
|
+
export * from './route/controller.service';
|
|
9
|
+
export * from './base/data.service';
|
|
10
|
+
export * from './base/db.service';
|
|
11
|
+
export * from './core/email.service';
|
|
12
|
+
export * from './core/global.service';
|
|
13
|
+
export * from './route/controller.service';
|
|
14
|
+
export * from './route/routing-module.service';
|
|
15
|
+
export * from './core/service-collection.service';
|
|
16
|
+
export * from './shared.static-service';
|
|
17
|
+
export * from './base/singleton.service';
|
|
18
|
+
|
|
19
|
+
// these are using socket.io therefore they are not included in the service index
|
|
20
|
+
// export * from './app-extended.server';
|
|
21
|
+
// export * from './socket-client.service';
|
|
22
|
+
// export * from './socket-server.service';
|
|
23
|
+
|