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