@futdevpro/nts-dynamo 1.9.15 → 1.9.17

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