@memberjunction/core 2.128.0 → 2.129.0
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/dist/__tests__/mocks/TestMetadataProvider.d.ts +4 -2
- package/dist/__tests__/mocks/TestMetadataProvider.d.ts.map +1 -1
- package/dist/__tests__/mocks/TestMetadataProvider.js +9 -3
- package/dist/__tests__/mocks/TestMetadataProvider.js.map +1 -1
- package/dist/generic/RegisterForStartup.d.ts +228 -0
- package/dist/generic/RegisterForStartup.d.ts.map +1 -0
- package/dist/generic/RegisterForStartup.js +233 -0
- package/dist/generic/RegisterForStartup.js.map +1 -0
- package/dist/generic/baseEngine.d.ts +191 -8
- package/dist/generic/baseEngine.d.ts.map +1 -1
- package/dist/generic/baseEngine.js +360 -14
- package/dist/generic/baseEngine.js.map +1 -1
- package/dist/generic/baseEngineRegistry.d.ts +247 -0
- package/dist/generic/baseEngineRegistry.d.ts.map +1 -0
- package/dist/generic/baseEngineRegistry.js +470 -0
- package/dist/generic/baseEngineRegistry.js.map +1 -0
- package/dist/generic/entityInfo.d.ts +50 -0
- package/dist/generic/entityInfo.d.ts.map +1 -1
- package/dist/generic/entityInfo.js +56 -0
- package/dist/generic/entityInfo.js.map +1 -1
- package/dist/generic/graphqlTypeNames.d.ts +90 -0
- package/dist/generic/graphqlTypeNames.d.ts.map +1 -0
- package/dist/generic/graphqlTypeNames.js +119 -0
- package/dist/generic/graphqlTypeNames.js.map +1 -0
- package/dist/generic/interfaces.d.ts +234 -3
- package/dist/generic/interfaces.d.ts.map +1 -1
- package/dist/generic/interfaces.js.map +1 -1
- package/dist/generic/localCacheManager.d.ts +388 -0
- package/dist/generic/localCacheManager.d.ts.map +1 -0
- package/dist/generic/localCacheManager.js +856 -0
- package/dist/generic/localCacheManager.js.map +1 -0
- package/dist/generic/providerBase.d.ts +227 -13
- package/dist/generic/providerBase.d.ts.map +1 -1
- package/dist/generic/providerBase.js +751 -6
- package/dist/generic/providerBase.js.map +1 -1
- package/dist/generic/queryInfo.d.ts +18 -0
- package/dist/generic/queryInfo.d.ts.map +1 -1
- package/dist/generic/queryInfo.js +18 -0
- package/dist/generic/queryInfo.js.map +1 -1
- package/dist/generic/queryInfoInterfaces.d.ts +17 -0
- package/dist/generic/queryInfoInterfaces.d.ts.map +1 -1
- package/dist/generic/runQuery.d.ts +30 -0
- package/dist/generic/runQuery.d.ts.map +1 -1
- package/dist/generic/runQuery.js +13 -0
- package/dist/generic/runQuery.js.map +1 -1
- package/dist/generic/telemetryManager.d.ts +628 -0
- package/dist/generic/telemetryManager.d.ts.map +1 -0
- package/dist/generic/telemetryManager.js +1011 -0
- package/dist/generic/telemetryManager.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/views/runView.d.ts +25 -0
- package/dist/views/runView.d.ts.map +1 -1
- package/dist/views/runView.js +4 -5
- package/dist/views/runView.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseEngine = exports.BaseEnginePropertyConfig = void 0;
|
|
4
4
|
const global_1 = require("@memberjunction/global");
|
|
5
|
+
const telemetryManager_1 = require("./telemetryManager");
|
|
5
6
|
const rxjs_1 = require("rxjs");
|
|
6
7
|
const operators_1 = require("rxjs/operators");
|
|
7
8
|
const runView_1 = require("../views/runView");
|
|
@@ -10,6 +11,7 @@ const metadata_1 = require("./metadata");
|
|
|
10
11
|
const interfaces_1 = require("./interfaces");
|
|
11
12
|
const baseInfo_1 = require("./baseInfo");
|
|
12
13
|
const baseEntity_1 = require("./baseEntity");
|
|
14
|
+
const baseEngineRegistry_1 = require("./baseEngineRegistry");
|
|
13
15
|
/**
|
|
14
16
|
* Property configuration for the BaseEngine class to automatically load/set properties on the class.
|
|
15
17
|
*/
|
|
@@ -57,7 +59,55 @@ class BaseEngine extends global_1.BaseSingleton {
|
|
|
57
59
|
this._dataMap = new Map();
|
|
58
60
|
this._expirationTimers = new Map();
|
|
59
61
|
this._entityEventSubjects = new Map();
|
|
60
|
-
this.
|
|
62
|
+
this._dataChange$ = new rxjs_1.Subject();
|
|
63
|
+
this._entityEventDebounceTime = 1500; // Default debounce time in milliseconds (1.5 seconds)
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Observable that emits when any data property changes due to a refresh.
|
|
67
|
+
* Subscribe to this to react to engine data updates (e.g., sync Angular observables).
|
|
68
|
+
*
|
|
69
|
+
* Events are emitted after data is refreshed in response to BaseEntity save/delete events.
|
|
70
|
+
* The event includes the full config and the new data array.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* UserInfoEngine.Instance.DataChange$.subscribe(event => {
|
|
75
|
+
* if (event.config.PropertyName === 'UserApplications') {
|
|
76
|
+
* // Sync local state with engine's updated data
|
|
77
|
+
* this.refreshLocalAppList();
|
|
78
|
+
* }
|
|
79
|
+
* });
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
get DataChange$() {
|
|
83
|
+
return this._dataChange$.asObservable();
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Notify listeners that a data property has changed.
|
|
87
|
+
* Called automatically by HandleSingleViewResult after data refresh and by applyImmediateMutation for array operations.
|
|
88
|
+
* Subclasses can also call this manually when modifying data arrays directly.
|
|
89
|
+
*
|
|
90
|
+
* @param config - The configuration for the property that changed
|
|
91
|
+
* @param data - The current data array
|
|
92
|
+
* @param changeType - The type of change: 'refresh', 'add', 'update', or 'delete'
|
|
93
|
+
* @param affectedEntity - For add/update/delete, the entity that was affected
|
|
94
|
+
*/
|
|
95
|
+
NotifyDataChange(config, data, changeType = 'refresh', affectedEntity) {
|
|
96
|
+
const event = {
|
|
97
|
+
config,
|
|
98
|
+
changeType,
|
|
99
|
+
data,
|
|
100
|
+
affectedEntity
|
|
101
|
+
};
|
|
102
|
+
this._dataChange$.next(event);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* All BaseEngine sub-classes get an implementation of IStartupSink so they can be set the auto start in their
|
|
106
|
+
* app container, if desired, simply by adding the @see @RegisterForStartup decorator. The BaseEngine implementation
|
|
107
|
+
* of IStartupSink.HandleStartup is to simply call @see Config
|
|
108
|
+
*/
|
|
109
|
+
async HandleStartup(contextUser, provider) {
|
|
110
|
+
await this.Config(false, contextUser, provider);
|
|
61
111
|
}
|
|
62
112
|
/**
|
|
63
113
|
* Returns the metadata provider to use for the engine. If a provider is set via the Config method, that provider will be used, otherwise the default provider will be used.
|
|
@@ -79,6 +129,27 @@ class BaseEngine extends global_1.BaseSingleton {
|
|
|
79
129
|
// do a full deep copy of the array to ensure no tampering
|
|
80
130
|
return JSON.parse(JSON.stringify(this._metadataConfigs));
|
|
81
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Extended configuration method with object-based options.
|
|
134
|
+
* This provides a more flexible API compared to Config() with positional parameters.
|
|
135
|
+
*
|
|
136
|
+
* Internally calls Config() after setting up options that Load() can access.
|
|
137
|
+
*
|
|
138
|
+
* @param options - Configuration options object
|
|
139
|
+
* @returns Promise that resolves when configuration is complete
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* await MyEngine.Instance.ConfigEx({
|
|
144
|
+
* forceRefresh: true,
|
|
145
|
+
* contextUser: currentUser
|
|
146
|
+
* });
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
async ConfigEx(options = {}) {
|
|
150
|
+
// Call the abstract Config method which subclasses implement
|
|
151
|
+
return await this.Config(options.forceRefresh ?? false, options.contextUser, options.provider);
|
|
152
|
+
}
|
|
82
153
|
/**
|
|
83
154
|
* This method should be called by sub-classes to load up their specific metadata requirements. For more complex metadata
|
|
84
155
|
* loading or for post-processing of metadata loading done here, overide the AdditionalLoading method to add your logic.
|
|
@@ -100,20 +171,39 @@ class BaseEngine extends global_1.BaseSingleton {
|
|
|
100
171
|
});
|
|
101
172
|
}
|
|
102
173
|
if (!this._loaded || forceRefresh) {
|
|
174
|
+
// Start telemetry tracking for engine load
|
|
175
|
+
const entityNames = configs
|
|
176
|
+
.filter(c => c.Type !== 'dataset' && c.EntityName)
|
|
177
|
+
.map(c => c.EntityName);
|
|
178
|
+
const datasetNames = configs
|
|
179
|
+
.filter(c => c.Type === 'dataset' && c.DatasetName)
|
|
180
|
+
.map(c => c.DatasetName);
|
|
181
|
+
const eventId = telemetryManager_1.TelemetryManager.Instance.StartEvent('Engine', 'Engine.Load', {
|
|
182
|
+
engineClass: this.constructor.name,
|
|
183
|
+
operation: forceRefresh ? 'refresh' : 'initial',
|
|
184
|
+
configCount: configs.length,
|
|
185
|
+
entityNames,
|
|
186
|
+
datasetNames
|
|
187
|
+
}, contextUser?.ID);
|
|
103
188
|
this._loadingSubject.next(true);
|
|
104
189
|
try {
|
|
105
190
|
this.SetProvider(provider);
|
|
106
191
|
this._contextUser = contextUser;
|
|
192
|
+
// Register with the engine registry
|
|
193
|
+
baseEngineRegistry_1.BaseEngineRegistry.Instance.RegisterEngine(this);
|
|
107
194
|
await this.LoadConfigs(configs, contextUser);
|
|
108
195
|
await this.AdditionalLoading(contextUser); // Call the additional loading method
|
|
109
196
|
await this.SetupGlobalEventListener();
|
|
110
197
|
this._loaded = true;
|
|
198
|
+
// Notify registry that engine is loaded
|
|
199
|
+
baseEngineRegistry_1.BaseEngineRegistry.Instance.NotifyEngineLoaded(this);
|
|
111
200
|
}
|
|
112
201
|
catch (e) {
|
|
113
202
|
(0, logging_1.LogError)(e);
|
|
114
203
|
}
|
|
115
204
|
finally {
|
|
116
205
|
this._loadingSubject.next(false);
|
|
206
|
+
telemetryManager_1.TelemetryManager.Instance.EndEvent(eventId);
|
|
117
207
|
}
|
|
118
208
|
}
|
|
119
209
|
}
|
|
@@ -192,19 +282,35 @@ class BaseEngine extends global_1.BaseSingleton {
|
|
|
192
282
|
}
|
|
193
283
|
}
|
|
194
284
|
/**
|
|
195
|
-
* This method handles the individual base entity event
|
|
196
|
-
*
|
|
197
|
-
*
|
|
285
|
+
* This method handles the individual base entity event. For events that can use immediate array mutations
|
|
286
|
+
* (no Filter, OrderBy, or AdditionalLoading override), processing happens synchronously without debounce.
|
|
287
|
+
* For events that require full view refresh, debouncing is applied to batch rapid successive changes.
|
|
288
|
+
*
|
|
289
|
+
* Override this method if you want to have a different handling for the filtering of events that are debounced
|
|
290
|
+
* or if you don't want to debounce at all you can do that in an override of this method.
|
|
198
291
|
* @param event
|
|
199
292
|
*/
|
|
200
293
|
async HandleIndividualBaseEntityEvent(event) {
|
|
201
294
|
try {
|
|
202
295
|
if (event.type === 'delete' || event.type === 'save') {
|
|
203
296
|
const eName = event.baseEntity.EntityInfo.Name.toLowerCase().trim();
|
|
204
|
-
const
|
|
297
|
+
const matchingConfigs = this.Configs.filter((config) => {
|
|
205
298
|
return config.AutoRefresh && config.EntityName && config.EntityName.trim().toLowerCase() === eName;
|
|
206
299
|
});
|
|
207
|
-
if (
|
|
300
|
+
if (matchingConfigs.length === 0) {
|
|
301
|
+
return true;
|
|
302
|
+
}
|
|
303
|
+
// Check if ALL matching configs can use immediate mutation
|
|
304
|
+
const allCanUseImmediate = matchingConfigs.every(config => this.canUseImmediateMutation(config));
|
|
305
|
+
if (allCanUseImmediate) {
|
|
306
|
+
// Process immediately without debounce - synchronous array mutations
|
|
307
|
+
for (const config of matchingConfigs) {
|
|
308
|
+
this.applyImmediateMutation(config, event);
|
|
309
|
+
}
|
|
310
|
+
return true;
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
// At least one config requires full refresh, use debouncing
|
|
208
314
|
return this.DebounceIndividualBaseEntityEvent(event);
|
|
209
315
|
}
|
|
210
316
|
}
|
|
@@ -247,7 +353,12 @@ class BaseEngine extends global_1.BaseSingleton {
|
|
|
247
353
|
}
|
|
248
354
|
}
|
|
249
355
|
/**
|
|
250
|
-
* Overridable property to set the debounce time for entity events. Default is
|
|
356
|
+
* Overridable property to set the debounce time for entity events. Default is 1500 milliseconds (1.5 seconds).
|
|
357
|
+
* This debounce time is used when immediate array mutations cannot be applied (e.g., when Filter, OrderBy,
|
|
358
|
+
* or AdditionalLoading overrides are present) and a full view refresh is required.
|
|
359
|
+
*
|
|
360
|
+
* Note: When immediate mutations ARE possible (no Filter, OrderBy, or AdditionalLoading override),
|
|
361
|
+
* updates happen synchronously without any debounce delay.
|
|
251
362
|
*/
|
|
252
363
|
get EntityEventDebounceTime() {
|
|
253
364
|
return this._entityEventDebounceTime;
|
|
@@ -265,13 +376,50 @@ class BaseEngine extends global_1.BaseSingleton {
|
|
|
265
376
|
let refreshCount = 0;
|
|
266
377
|
for (const config of this.Configs) {
|
|
267
378
|
if (config.AutoRefresh && config.Type === 'entity' && config.EntityName?.trim().toLowerCase() === entityName) {
|
|
268
|
-
//
|
|
269
|
-
|
|
270
|
-
|
|
379
|
+
// For UPDATE events, check if the exact object is already in our array.
|
|
380
|
+
// If so, it's already been mutated in place - no need to refresh.
|
|
381
|
+
if (event.type === 'save' && event.saveSubType === 'update') {
|
|
382
|
+
if (this.isEntityAlreadyInArray(config, event.baseEntity)) {
|
|
383
|
+
// Object already in array and updated in place, skip refresh
|
|
384
|
+
// LogStatus(`>>> Skipping refresh for ${config.PropertyName} - object already in array`);
|
|
385
|
+
continue;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
// For CREATE events, check if the entity was already added to our array
|
|
389
|
+
// (e.g., by engine methods like InstallApplication that manually push).
|
|
390
|
+
if (event.type === 'save' && event.saveSubType === 'create') {
|
|
391
|
+
if (this.isEntityAlreadyInArray(config, event.baseEntity)) {
|
|
392
|
+
// Object already in array (manually added), skip refresh
|
|
393
|
+
// LogStatus(`>>> Skipping refresh for ${config.PropertyName} - newly created object already in array`);
|
|
394
|
+
continue;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
// For DELETE events, check if the entity was already removed from our array
|
|
398
|
+
// (e.g., by engine methods like UninstallApplication that manually splice).
|
|
399
|
+
// Also check by primary key since the object reference may still exist but be removed.
|
|
400
|
+
if (event.type === 'delete') {
|
|
401
|
+
if (!this.isEntityInArrayByRefOrKey(config, event.baseEntity)) {
|
|
402
|
+
// Object not in array (already removed), skip refresh
|
|
403
|
+
// LogStatus(`>>> Skipping refresh for ${config.PropertyName} - deleted object not in array`);
|
|
404
|
+
continue;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
// Check if we can use immediate array mutation instead of running a view
|
|
408
|
+
if (this.canUseImmediateMutation(config)) {
|
|
409
|
+
// LogStatus(`>>> Immediate mutation for ${config.PropertyName} due to BaseEntity ${event.type} event for: ${event.baseEntity.EntityInfo.Name}`);
|
|
410
|
+
this.applyImmediateMutation(config, event);
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
413
|
+
// LogStatus(`>>> Refreshing metadata for ${config.PropertyName} due to BaseEntity ${event.type} event for: ${event.baseEntity.EntityInfo.Name}, pkey: ${event.baseEntity.PrimaryKey.ToString()}`);
|
|
414
|
+
await this.LoadSingleConfig(config, this._contextUser);
|
|
415
|
+
refreshCount++;
|
|
416
|
+
}
|
|
271
417
|
}
|
|
272
418
|
}
|
|
419
|
+
// Only call AdditionalLoading if we did full refreshes (not for immediate mutations)
|
|
420
|
+
// Immediate mutations don't require AdditionalLoading since the entity object is already complete
|
|
273
421
|
if (refreshCount > 0) {
|
|
274
|
-
// we need to call AdditionalLoading here - because in many cases engine sub-classes do various kinds of data mashups
|
|
422
|
+
// we need to call AdditionalLoading here - because in many cases engine sub-classes do various kinds of data mashups
|
|
275
423
|
// after we have loaded - for example the TemplateEngine takes the TemplateContents and TemplateParams and stuffs them
|
|
276
424
|
// into arrays in each template to make it easier to get Params/Contents for each Template. Such operations are common
|
|
277
425
|
// and need to be done after the initial load and after any refreshes.
|
|
@@ -282,6 +430,186 @@ class BaseEngine extends global_1.BaseSingleton {
|
|
|
282
430
|
(0, logging_1.LogError)(e);
|
|
283
431
|
}
|
|
284
432
|
}
|
|
433
|
+
/**
|
|
434
|
+
* Checks if the exact entity object reference is already in the config's data array.
|
|
435
|
+
* Used to skip unnecessary refreshes for UPDATE events where the object was mutated in place.
|
|
436
|
+
*
|
|
437
|
+
* @param config - The configuration to check
|
|
438
|
+
* @param entity - The entity to look for
|
|
439
|
+
* @returns true if the exact object reference is already in the array
|
|
440
|
+
*/
|
|
441
|
+
isEntityAlreadyInArray(config, entity) {
|
|
442
|
+
const currentData = this[config.PropertyName];
|
|
443
|
+
if (!currentData) {
|
|
444
|
+
return false;
|
|
445
|
+
}
|
|
446
|
+
return currentData.indexOf(entity) >= 0;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Checks if an entity is in the config's data array by object reference OR by primary key match.
|
|
450
|
+
* Used for DELETE events where we need to know if the entity still exists in the array.
|
|
451
|
+
* The object reference may still exist (entity.Delete() just marks it deleted), but if it was
|
|
452
|
+
* manually spliced out by engine code, we check by primary key as fallback.
|
|
453
|
+
*
|
|
454
|
+
* @param config - The configuration to check
|
|
455
|
+
* @param entity - The entity to look for
|
|
456
|
+
* @returns true if the entity is in the array (by reference or by primary key)
|
|
457
|
+
*/
|
|
458
|
+
isEntityInArrayByRefOrKey(config, entity) {
|
|
459
|
+
const currentData = this[config.PropertyName];
|
|
460
|
+
if (!currentData) {
|
|
461
|
+
return false;
|
|
462
|
+
}
|
|
463
|
+
// First check by object reference
|
|
464
|
+
if (currentData.indexOf(entity) >= 0) {
|
|
465
|
+
return true;
|
|
466
|
+
}
|
|
467
|
+
// Fallback: check by primary key
|
|
468
|
+
return this.findEntityIndexByPrimaryKeys(currentData, entity) >= 0;
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Determines if an immediate array mutation can be used instead of running a full view refresh.
|
|
472
|
+
* Immediate mutations are only safe when:
|
|
473
|
+
* 1. The config has no Filter (no server-side filtering that might exclude the entity)
|
|
474
|
+
* 2. The config has no OrderBy (no server-side ordering that would need to be maintained)
|
|
475
|
+
* 3. The subclass has not overridden AdditionalLoading (no post-processing that depends on full data)
|
|
476
|
+
*
|
|
477
|
+
* @param config - The configuration to check
|
|
478
|
+
* @returns true if immediate mutation is safe, false if a full view refresh is needed
|
|
479
|
+
*/
|
|
480
|
+
canUseImmediateMutation(config) {
|
|
481
|
+
// If there's a filter, we can't safely do immediate mutations because:
|
|
482
|
+
// - For creates: the new entity might not match the filter
|
|
483
|
+
// - For updates: the entity might now match or no longer match the filter
|
|
484
|
+
if (config.Filter) {
|
|
485
|
+
return false;
|
|
486
|
+
}
|
|
487
|
+
// If there's an OrderBy, we can't safely do immediate mutations because:
|
|
488
|
+
// - For creates: we'd need to insert at the correct position
|
|
489
|
+
// - For updates: the entity might need to move to a different position
|
|
490
|
+
if (config.OrderBy) {
|
|
491
|
+
return false;
|
|
492
|
+
}
|
|
493
|
+
// Check if AdditionalLoading is overridden in the subclass
|
|
494
|
+
// If it is, we need to run full refresh to ensure post-processing happens
|
|
495
|
+
if (this.hasAdditionalLoadingOverride()) {
|
|
496
|
+
return false;
|
|
497
|
+
}
|
|
498
|
+
return true;
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* Checks if the current instance has overridden the AdditionalLoading method.
|
|
502
|
+
* We do this by comparing the method to the base class's method.
|
|
503
|
+
*
|
|
504
|
+
* @returns true if AdditionalLoading is overridden, false if using the base implementation
|
|
505
|
+
*/
|
|
506
|
+
hasAdditionalLoadingOverride() {
|
|
507
|
+
// Get the prototype chain to find the base class method
|
|
508
|
+
const baseProto = BaseEngine.prototype;
|
|
509
|
+
const instanceProto = Object.getPrototypeOf(this);
|
|
510
|
+
// If the instance's AdditionalLoading is different from the base class's,
|
|
511
|
+
// it means the subclass has overridden it
|
|
512
|
+
return instanceProto.AdditionalLoading !== baseProto.AdditionalLoading;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Applies an immediate array mutation based on the entity event type.
|
|
516
|
+
* This is faster than running a full view refresh for simple add/update/delete operations.
|
|
517
|
+
*
|
|
518
|
+
* @param config - The configuration for the property being mutated
|
|
519
|
+
* @param event - The entity event containing the affected entity and event type
|
|
520
|
+
*/
|
|
521
|
+
applyImmediateMutation(config, event) {
|
|
522
|
+
const currentData = this[config.PropertyName];
|
|
523
|
+
if (!currentData) {
|
|
524
|
+
// No existing array, nothing to mutate
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
const entity = event.baseEntity;
|
|
528
|
+
if (event.type === 'save') {
|
|
529
|
+
if (event.saveSubType === 'create') {
|
|
530
|
+
// For create, first check if the exact object is already in the array
|
|
531
|
+
const existsByRef = currentData.indexOf(entity) >= 0;
|
|
532
|
+
if (existsByRef) {
|
|
533
|
+
// Object already in array, nothing to do (already up to date)
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
// Check by composite primary key in case it was added with a different object reference
|
|
537
|
+
const indexByKey = this.findEntityIndexByPrimaryKeys(currentData, entity);
|
|
538
|
+
if (indexByKey >= 0) {
|
|
539
|
+
// Already exists by key, treat as update
|
|
540
|
+
currentData[indexByKey] = entity;
|
|
541
|
+
this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: currentData });
|
|
542
|
+
this.NotifyDataChange(config, currentData, 'update', entity);
|
|
543
|
+
}
|
|
544
|
+
else {
|
|
545
|
+
// Add the new entity to the array
|
|
546
|
+
currentData.push(entity);
|
|
547
|
+
this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: currentData });
|
|
548
|
+
this.NotifyDataChange(config, currentData, 'add', entity);
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
else {
|
|
552
|
+
// Update: first check if the exact object is already in the array
|
|
553
|
+
const existsByRef = currentData.indexOf(entity) >= 0;
|
|
554
|
+
if (existsByRef) {
|
|
555
|
+
// Object already in array and is the same reference, nothing to do
|
|
556
|
+
return;
|
|
557
|
+
}
|
|
558
|
+
// Find by composite primary key and replace
|
|
559
|
+
const index = this.findEntityIndexByPrimaryKeys(currentData, entity);
|
|
560
|
+
if (index >= 0) {
|
|
561
|
+
currentData[index] = entity;
|
|
562
|
+
this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: currentData });
|
|
563
|
+
this.NotifyDataChange(config, currentData, 'update', entity);
|
|
564
|
+
}
|
|
565
|
+
else {
|
|
566
|
+
// Entity not found in array - this shouldn't happen normally,
|
|
567
|
+
// but if it does, add it (might have been created before we started listening)
|
|
568
|
+
currentData.push(entity);
|
|
569
|
+
this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: currentData });
|
|
570
|
+
this.NotifyDataChange(config, currentData, 'add', entity);
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
else if (event.type === 'delete') {
|
|
575
|
+
// For delete, first try to find by object reference
|
|
576
|
+
let index = currentData.indexOf(entity);
|
|
577
|
+
if (index < 0) {
|
|
578
|
+
// Not found by reference, search by composite primary key
|
|
579
|
+
index = this.findEntityIndexByPrimaryKeys(currentData, entity);
|
|
580
|
+
}
|
|
581
|
+
if (index >= 0) {
|
|
582
|
+
currentData.splice(index, 1);
|
|
583
|
+
this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: currentData });
|
|
584
|
+
this.NotifyDataChange(config, currentData, 'delete', entity);
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Finds an entity in the array by matching all primary key columns.
|
|
590
|
+
* Supports composite primary keys by comparing all PrimaryKey fields from EntityInfo.
|
|
591
|
+
*
|
|
592
|
+
* @param dataArray - The array of entities to search
|
|
593
|
+
* @param targetEntity - The entity to find (using its primary key values)
|
|
594
|
+
* @returns The index of the matching entity, or -1 if not found
|
|
595
|
+
*/
|
|
596
|
+
findEntityIndexByPrimaryKeys(dataArray, targetEntity) {
|
|
597
|
+
const primaryKeys = targetEntity.EntityInfo.PrimaryKeys;
|
|
598
|
+
if (!primaryKeys || primaryKeys.length === 0) {
|
|
599
|
+
// Fallback to single PrimaryKey property if no PrimaryKeys defined
|
|
600
|
+
const pkValue = targetEntity.PrimaryKey.ToString();
|
|
601
|
+
return dataArray.findIndex(e => e.PrimaryKey.ToString() === pkValue);
|
|
602
|
+
}
|
|
603
|
+
// Get target entity's primary key values
|
|
604
|
+
const targetKeyValues = primaryKeys.map(pk => targetEntity[pk.Name]);
|
|
605
|
+
return dataArray.findIndex(e => {
|
|
606
|
+
// Compare all primary key values
|
|
607
|
+
return primaryKeys.every((pk, idx) => {
|
|
608
|
+
const entityValue = e[pk.Name];
|
|
609
|
+
return entityValue === targetKeyValues[idx];
|
|
610
|
+
});
|
|
611
|
+
});
|
|
612
|
+
}
|
|
285
613
|
/**
|
|
286
614
|
* Utility method to upgrade an object to a BaseEnginePropertyConfig object.
|
|
287
615
|
* @param obj
|
|
@@ -330,7 +658,10 @@ class BaseEngine extends global_1.BaseSingleton {
|
|
|
330
658
|
EntityName: config.EntityName,
|
|
331
659
|
ResultType: 'entity_object',
|
|
332
660
|
ExtraFilter: config.Filter,
|
|
333
|
-
OrderBy: config.OrderBy
|
|
661
|
+
OrderBy: config.OrderBy,
|
|
662
|
+
_fromEngine: true, // Mark as engine-initiated to avoid false positive telemetry warnings
|
|
663
|
+
CacheLocal: config.CacheLocal,
|
|
664
|
+
CacheLocalTTL: config.CacheLocalTTL
|
|
334
665
|
}, contextUser);
|
|
335
666
|
this.HandleSingleViewResult(config, result);
|
|
336
667
|
}
|
|
@@ -345,6 +676,8 @@ class BaseEngine extends global_1.BaseSingleton {
|
|
|
345
676
|
this[config.PropertyName] = result.Results;
|
|
346
677
|
}
|
|
347
678
|
this._dataMap.set(config.PropertyName, { entityName: config.EntityName, data: result.Results });
|
|
679
|
+
// Notify listeners that this property's data has changed
|
|
680
|
+
this.NotifyDataChange(config, result.Results);
|
|
348
681
|
if (config.Expiration) {
|
|
349
682
|
this.SetExpirationTimer(config.PropertyName, config.Expiration);
|
|
350
683
|
}
|
|
@@ -364,13 +697,26 @@ class BaseEngine extends global_1.BaseSingleton {
|
|
|
364
697
|
EntityName: c.EntityName,
|
|
365
698
|
ResultType: 'entity_object',
|
|
366
699
|
ExtraFilter: c.Filter,
|
|
367
|
-
OrderBy: c.OrderBy
|
|
700
|
+
OrderBy: c.OrderBy,
|
|
701
|
+
_fromEngine: true, // Mark as engine-initiated to avoid false positive telemetry warnings
|
|
702
|
+
CacheLocal: c.CacheLocal,
|
|
703
|
+
CacheLocalTTL: c.CacheLocalTTL
|
|
368
704
|
};
|
|
369
705
|
});
|
|
370
706
|
const results = await rv.RunViews(viewConfigs, contextUser);
|
|
371
|
-
//
|
|
707
|
+
// Process results and record entity loads for redundancy detection
|
|
708
|
+
const entityNames = [];
|
|
372
709
|
for (let i = 0; i < configs.length; i++) {
|
|
373
710
|
this.HandleSingleViewResult(configs[i], results[i]);
|
|
711
|
+
if (configs[i].EntityName) {
|
|
712
|
+
entityNames.push(configs[i].EntityName);
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
// Record which entities this engine loaded (for redundancy warnings)
|
|
716
|
+
// Pass 'this' so the registry can use instance identity to prevent false positives
|
|
717
|
+
// when a subclass and base class share the same singleton
|
|
718
|
+
if (entityNames.length > 0) {
|
|
719
|
+
baseEngineRegistry_1.BaseEngineRegistry.Instance.RecordEntityLoads(this, entityNames);
|
|
374
720
|
}
|
|
375
721
|
}
|
|
376
722
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseEngine.js","sourceRoot":"","sources":["../../src/generic/baseEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"baseEngine.js","sourceRoot":"","sources":["../../src/generic/baseEngine.ts"],"names":[],"mappings":"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"}
|