@salesforce/lds-runtime-aura 1.273.0 → 1.274.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/ldsEngineCreator.js +270 -71
- package/dist/types/predictive-loading/pages/record-home-page.d.ts +10 -11
- package/dist/types/predictive-loading/prefetcher/lex-predictive-prefetcher.d.ts +4 -1
- package/dist/types/predictive-loading/request-strategy/get-object-info-request-strategy.d.ts +2 -2
- package/dist/types/predictive-loading/request-strategy/get-record-actions-request-strategy.d.ts +2 -2
- package/dist/types/predictive-loading/request-strategy/get-record-avatars-request-strategy.d.ts +2 -2
- package/dist/types/predictive-loading/request-strategy/get-record-request-strategy.d.ts +5 -0
- package/dist/types/predictive-loading/request-strategy/get-records-request-strategy.d.ts +5 -0
- package/dist/types/predictive-loading/request-strategy/get-related-list-info-batch-request-strategy.d.ts +17 -0
- package/dist/types/predictive-loading/request-strategy/get-related-list-records-batch-request-strategy.d.ts +34 -0
- package/dist/types/predictive-loading/request-strategy/get-related-list-records-request-strategy.d.ts +20 -0
- package/dist/types/predictive-loading/request-strategy/get-related-lists-actions-request-strategy.d.ts +2 -2
- package/dist/types/predictive-loading/request-strategy/index.d.ts +3 -0
- package/dist/types/predictive-loading/request-strategy/luvio-adapter-request-strategy.d.ts +63 -0
- package/dist/types/predictive-loading/request-strategy/luvio-adapter-request.d.ts +4 -0
- package/package.json +11 -11
package/dist/ldsEngineCreator.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
import { HttpStatusCode, InMemoryStore, Environment, Luvio, InMemoryStoreQueryEvaluator } from 'force/luvioEngine';
|
|
16
16
|
import ldsTrackedFieldsBehaviorGate from '@salesforce/gate/lds.useNewTrackedFieldBehavior';
|
|
17
17
|
import usePredictiveLoading from '@salesforce/gate/lds.usePredictiveLoading';
|
|
18
|
-
import { getRecordAvatarsAdapterFactory, getRecordAdapterFactory, getRecordsAdapterFactory, getRecordActionsAdapterFactory, getObjectInfoAdapterFactory, getObjectInfosAdapterFactory, getRelatedListsActionsAdapterFactory, instrument, configuration, InMemoryRecordRepresentationQueryEvaluator, UiApiNamespace, RecordRepresentationRepresentationType, registerPrefetcher } from 'force/ldsAdaptersUiapi';
|
|
18
|
+
import { getRecordAvatarsAdapterFactory, getRecordAdapterFactory, getRecordsAdapterFactory, getRecordActionsAdapterFactory, getObjectInfoAdapterFactory, getObjectInfosAdapterFactory, getRelatedListsActionsAdapterFactory, getRelatedListInfoBatchAdapterFactory, getRelatedListRecordsAdapterFactory, getRelatedListRecordsBatchAdapterFactory, instrument, configuration, InMemoryRecordRepresentationQueryEvaluator, UiApiNamespace, RecordRepresentationRepresentationType, registerPrefetcher } from 'force/ldsAdaptersUiapi';
|
|
19
19
|
import { createStorage, clearStorages } from 'force/ldsStorage';
|
|
20
20
|
import { withRegistration, register, setDefaultLuvio } from 'force/ldsEngine';
|
|
21
21
|
import { REFRESH_ADAPTER_EVENT, ADAPTER_UNFULFILLED_ERROR, instrument as instrument$2 } from 'force/ldsBindings';
|
|
@@ -61,70 +61,25 @@ class RecordHomePage extends PredictivePrefetchPage {
|
|
|
61
61
|
const { adapterName } = request;
|
|
62
62
|
switch (adapterName) {
|
|
63
63
|
case 'getRecord':
|
|
64
|
-
return this.
|
|
64
|
+
return this.requestStrategies.getRecord.buildSaveRequestData(this.similarContext, this.context, request);
|
|
65
65
|
case 'getRecords':
|
|
66
|
-
return this.
|
|
66
|
+
return this.requestStrategies.getRecords.buildSaveRequestData(this.similarContext, this.context, request);
|
|
67
67
|
case 'getRecordActions':
|
|
68
|
-
return this.requestStrategies.getRecordActions.
|
|
68
|
+
return this.requestStrategies.getRecordActions.buildSaveRequestData(this.similarContext, this.context, request);
|
|
69
69
|
case 'getRecordAvatars':
|
|
70
|
-
return this.requestStrategies.getRecordAvatars.
|
|
70
|
+
return this.requestStrategies.getRecordAvatars.buildSaveRequestData(this.similarContext, this.context, request);
|
|
71
71
|
case 'getObjectInfo':
|
|
72
|
-
return this.requestStrategies.getObjectInfo.
|
|
72
|
+
return this.requestStrategies.getObjectInfo.buildSaveRequestData(this.similarContext, this.context, request);
|
|
73
73
|
case 'getRelatedListsActions':
|
|
74
|
-
return this.requestStrategies.getRelatedListsActions.
|
|
74
|
+
return this.requestStrategies.getRelatedListsActions.buildSaveRequestData(this.similarContext, this.context, request);
|
|
75
|
+
case 'getRelatedListRecords':
|
|
76
|
+
return this.requestStrategies.getRelatedListRecords.buildSaveRequestData(this.similarContext, this.context, request);
|
|
77
|
+
case 'getRelatedListRecordsBatch':
|
|
78
|
+
return this.requestStrategies.getRelatedListRecordsBatch.buildSaveRequestData(this.similarContext, this.context, request);
|
|
75
79
|
default:
|
|
76
80
|
return { request, context: this.context };
|
|
77
81
|
}
|
|
78
82
|
}
|
|
79
|
-
buildGetRecordSaveRequestData(request) {
|
|
80
|
-
if (this.isGetRecordRequestContextDependent(request)) {
|
|
81
|
-
return {
|
|
82
|
-
request: this.requestStrategies.getRecord.transformForSave({
|
|
83
|
-
...request,
|
|
84
|
-
config: {
|
|
85
|
-
...request.config,
|
|
86
|
-
recordId: '*',
|
|
87
|
-
},
|
|
88
|
-
}),
|
|
89
|
-
context: this.similarContext,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
return {
|
|
93
|
-
request: this.requestStrategies.getRecord.transformForSave(request),
|
|
94
|
-
context: this.context,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
buildGetRecordsSaveRequestData(request) {
|
|
98
|
-
if (this.isGetRecordsRequestContextDependent(request)) {
|
|
99
|
-
return {
|
|
100
|
-
request: this.requestStrategies.getRecords.transformForSave({
|
|
101
|
-
...request,
|
|
102
|
-
config: {
|
|
103
|
-
...request.config,
|
|
104
|
-
records: [
|
|
105
|
-
{
|
|
106
|
-
...request.config.records[0],
|
|
107
|
-
recordIds: ['*'],
|
|
108
|
-
},
|
|
109
|
-
],
|
|
110
|
-
},
|
|
111
|
-
}),
|
|
112
|
-
context: this.similarContext,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
return {
|
|
116
|
-
request: this.requestStrategies.getRecords.transformForSave(request),
|
|
117
|
-
context: this.context,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
isGetRecordRequestContextDependent(request) {
|
|
121
|
-
return request.config.recordId === this.context.recordId;
|
|
122
|
-
}
|
|
123
|
-
isGetRecordsRequestContextDependent(request) {
|
|
124
|
-
const isSingleRecordRequest = request.config.records.length === 1 && request.config.records[0].recordIds.length === 1;
|
|
125
|
-
return (isSingleRecordRequest &&
|
|
126
|
-
request.config.records[0].recordIds[0] === this.context.recordId);
|
|
127
|
-
}
|
|
128
83
|
resolveSimilarRequest(similarRequest) {
|
|
129
84
|
if (similarRequest.adapterName === 'getRecord') {
|
|
130
85
|
return this.requestStrategies.getRecord.buildConcreteRequest(similarRequest, this.context);
|
|
@@ -147,6 +102,12 @@ class RecordHomePage extends PredictivePrefetchPage {
|
|
|
147
102
|
if (similarRequest.adapterName === 'getRelatedListsActions') {
|
|
148
103
|
return this.requestStrategies.getRelatedListsActions.buildConcreteRequest(similarRequest, this.context);
|
|
149
104
|
}
|
|
105
|
+
if (similarRequest.adapterName === 'getRelatedListRecords') {
|
|
106
|
+
return this.requestStrategies.getRelatedListRecords.buildConcreteRequest(similarRequest, this.context);
|
|
107
|
+
}
|
|
108
|
+
if (similarRequest.adapterName === 'getRelatedListRecordsBatch') {
|
|
109
|
+
return this.requestStrategies.getRelatedListRecordsBatch.buildConcreteRequest(similarRequest, this.context);
|
|
110
|
+
}
|
|
150
111
|
return similarRequest;
|
|
151
112
|
}
|
|
152
113
|
// Record Home performs best when we always do a minimal getRecord alongside the other requests.
|
|
@@ -407,12 +368,33 @@ class RequestStrategy {
|
|
|
407
368
|
}
|
|
408
369
|
|
|
409
370
|
class LuvioAdapterRequestStrategy extends RequestStrategy {
|
|
371
|
+
/**
|
|
372
|
+
* Perform any transformations required to prepare the request for saving.
|
|
373
|
+
*
|
|
374
|
+
* e.g. If the request is for a record, we move all fields in the fields array
|
|
375
|
+
* into the optionalFields array
|
|
376
|
+
*
|
|
377
|
+
* @param request - The request to transform
|
|
378
|
+
* @returns
|
|
379
|
+
*/
|
|
410
380
|
transformForSave(request) {
|
|
411
381
|
return request;
|
|
412
382
|
}
|
|
383
|
+
/**
|
|
384
|
+
* Filter requests to only those that are for this strategy.
|
|
385
|
+
*
|
|
386
|
+
* @param unfilteredRequests array of requests to filter
|
|
387
|
+
* @returns
|
|
388
|
+
*/
|
|
413
389
|
filterRequests(unfilteredRequests) {
|
|
414
390
|
return unfilteredRequests.filter((request) => request.adapterName === this.adapterName);
|
|
415
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* Reduce requests by combining those based on a strategies implementations
|
|
394
|
+
* of canCombine and combineRequests.
|
|
395
|
+
* @param unfilteredRequests array of requests to filter
|
|
396
|
+
* @returns
|
|
397
|
+
*/
|
|
416
398
|
reduce(unfilteredRequests) {
|
|
417
399
|
const requests = this.filterRequests(unfilteredRequests);
|
|
418
400
|
const visitedRequests = new Set();
|
|
@@ -435,10 +417,24 @@ class LuvioAdapterRequestStrategy extends RequestStrategy {
|
|
|
435
417
|
}
|
|
436
418
|
return reducedRequests;
|
|
437
419
|
}
|
|
420
|
+
/**
|
|
421
|
+
* Check if two requests can be combined.
|
|
422
|
+
*
|
|
423
|
+
* By default, requests are not combinable.
|
|
424
|
+
* @param reqA config of request A
|
|
425
|
+
* @param reqB config of request B
|
|
426
|
+
* @returns
|
|
427
|
+
*/
|
|
438
428
|
canCombine(_reqA, _reqB) {
|
|
439
|
-
// By default, all requests are not comibinable
|
|
440
429
|
return false;
|
|
441
430
|
}
|
|
431
|
+
/**
|
|
432
|
+
* Takes two request configs and combines them into a single request config.
|
|
433
|
+
*
|
|
434
|
+
* @param reqA config of request A
|
|
435
|
+
* @param reqB config of request B
|
|
436
|
+
* @returns
|
|
437
|
+
*/
|
|
442
438
|
combineRequests(reqA, _reqB) {
|
|
443
439
|
// By default, this should never be called since requests aren't combinable
|
|
444
440
|
if (process.env.NODE_ENV !== 'production') {
|
|
@@ -446,6 +442,31 @@ class LuvioAdapterRequestStrategy extends RequestStrategy {
|
|
|
446
442
|
}
|
|
447
443
|
return reqA;
|
|
448
444
|
}
|
|
445
|
+
/**
|
|
446
|
+
* Checks adapter config against request context to determine if the request is context dependent.
|
|
447
|
+
*
|
|
448
|
+
* By default, requests are not context dependent.
|
|
449
|
+
* @param request
|
|
450
|
+
* @returns
|
|
451
|
+
*/
|
|
452
|
+
isContextDependent(_context, _request) {
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Builds request for saving,
|
|
457
|
+
* - transforming the request
|
|
458
|
+
* - handling the cases where the request is context dependent (this is homework for the subclass)
|
|
459
|
+
* @param _similarContext Context with at least one parameter as a wildcard '*'
|
|
460
|
+
* @param context Exact context for a given page
|
|
461
|
+
* @param request
|
|
462
|
+
* @returns
|
|
463
|
+
*/
|
|
464
|
+
buildSaveRequestData(_similarContext, context, request) {
|
|
465
|
+
return {
|
|
466
|
+
request: this.transformForSave(request),
|
|
467
|
+
context,
|
|
468
|
+
};
|
|
469
|
+
}
|
|
449
470
|
}
|
|
450
471
|
|
|
451
472
|
function normalizeRecordIds$1(recordIds) {
|
|
@@ -469,8 +490,8 @@ class GetRecordAvatarsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
469
490
|
},
|
|
470
491
|
};
|
|
471
492
|
}
|
|
472
|
-
|
|
473
|
-
if (this.
|
|
493
|
+
buildSaveRequestData(similarContext, context, request) {
|
|
494
|
+
if (this.isContextDependent(context, request)) {
|
|
474
495
|
return {
|
|
475
496
|
request: this.transformForSave({
|
|
476
497
|
...request,
|
|
@@ -487,7 +508,7 @@ class GetRecordAvatarsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
487
508
|
context,
|
|
488
509
|
};
|
|
489
510
|
}
|
|
490
|
-
|
|
511
|
+
isContextDependent(context, request) {
|
|
491
512
|
return (request.config.recordIds &&
|
|
492
513
|
(context.recordId === request.config.recordIds || // some may set this as string instead of array
|
|
493
514
|
(request.config.recordIds.length === 1 &&
|
|
@@ -563,6 +584,27 @@ class GetRecordRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
563
584
|
optionalFields: Array.from(optionalFields),
|
|
564
585
|
};
|
|
565
586
|
}
|
|
587
|
+
isContextDependent(context, request) {
|
|
588
|
+
return request.config.recordId === context.recordId;
|
|
589
|
+
}
|
|
590
|
+
buildSaveRequestData(similarContext, context, request) {
|
|
591
|
+
if (this.isContextDependent(context, request)) {
|
|
592
|
+
return {
|
|
593
|
+
request: this.transformForSave({
|
|
594
|
+
...request,
|
|
595
|
+
config: {
|
|
596
|
+
...request.config,
|
|
597
|
+
recordId: '*',
|
|
598
|
+
},
|
|
599
|
+
}),
|
|
600
|
+
context: similarContext,
|
|
601
|
+
};
|
|
602
|
+
}
|
|
603
|
+
return {
|
|
604
|
+
request: this.transformForSave(request),
|
|
605
|
+
context,
|
|
606
|
+
};
|
|
607
|
+
}
|
|
566
608
|
}
|
|
567
609
|
|
|
568
610
|
class GetRecordsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
@@ -580,6 +622,33 @@ class GetRecordsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
580
622
|
},
|
|
581
623
|
};
|
|
582
624
|
}
|
|
625
|
+
isContextDependent(context, request) {
|
|
626
|
+
const isSingleRecordRequest = request.config.records.length === 1 && request.config.records[0].recordIds.length === 1;
|
|
627
|
+
return isSingleRecordRequest && request.config.records[0].recordIds[0] === context.recordId;
|
|
628
|
+
}
|
|
629
|
+
buildSaveRequestData(similarContext, context, request) {
|
|
630
|
+
if (this.isContextDependent(context, request)) {
|
|
631
|
+
return {
|
|
632
|
+
request: this.transformForSave({
|
|
633
|
+
...request,
|
|
634
|
+
config: {
|
|
635
|
+
...request.config,
|
|
636
|
+
records: [
|
|
637
|
+
{
|
|
638
|
+
...request.config.records[0],
|
|
639
|
+
recordIds: ['*'],
|
|
640
|
+
},
|
|
641
|
+
],
|
|
642
|
+
},
|
|
643
|
+
}),
|
|
644
|
+
context: similarContext,
|
|
645
|
+
};
|
|
646
|
+
}
|
|
647
|
+
return {
|
|
648
|
+
request: this.transformForSave(request),
|
|
649
|
+
context: context,
|
|
650
|
+
};
|
|
651
|
+
}
|
|
583
652
|
}
|
|
584
653
|
|
|
585
654
|
function normalizeRecordIds(recordIds) {
|
|
@@ -603,8 +672,8 @@ class GetRecordActionsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
603
672
|
},
|
|
604
673
|
};
|
|
605
674
|
}
|
|
606
|
-
|
|
607
|
-
if (this.
|
|
675
|
+
buildSaveRequestData(similarContext, context, request) {
|
|
676
|
+
if (this.isContextDependent(context, request)) {
|
|
608
677
|
return {
|
|
609
678
|
request: this.transformForSave({
|
|
610
679
|
...request,
|
|
@@ -637,7 +706,7 @@ class GetRecordActionsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
637
706
|
}
|
|
638
707
|
return combined;
|
|
639
708
|
}
|
|
640
|
-
|
|
709
|
+
isContextDependent(context, request) {
|
|
641
710
|
return (request.config.recordIds &&
|
|
642
711
|
(context.recordId === request.config.recordIds || // some may set this as string instead of array
|
|
643
712
|
(request.config.recordIds.length === 1 &&
|
|
@@ -660,8 +729,8 @@ class GetObjectInfoRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
660
729
|
},
|
|
661
730
|
};
|
|
662
731
|
}
|
|
663
|
-
|
|
664
|
-
if (this.
|
|
732
|
+
buildSaveRequestData(similarContext, context, request) {
|
|
733
|
+
if (this.isContextDependent(context, request)) {
|
|
665
734
|
return {
|
|
666
735
|
request: this.transformForSave(request),
|
|
667
736
|
context: similarContext,
|
|
@@ -672,8 +741,9 @@ class GetObjectInfoRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
|
672
741
|
context,
|
|
673
742
|
};
|
|
674
743
|
}
|
|
675
|
-
|
|
676
|
-
return (request.config.objectApiName
|
|
744
|
+
isContextDependent(context, request) {
|
|
745
|
+
return (request.config.objectApiName !== undefined &&
|
|
746
|
+
context.objectApiName === request.config.objectApiName);
|
|
677
747
|
}
|
|
678
748
|
}
|
|
679
749
|
|
|
@@ -710,8 +780,8 @@ class GetRelatedListsActionsRequestStrategy extends LuvioAdapterRequestStrategy
|
|
|
710
780
|
},
|
|
711
781
|
};
|
|
712
782
|
}
|
|
713
|
-
|
|
714
|
-
if (this.
|
|
783
|
+
buildSaveRequestData(similarContext, context, request) {
|
|
784
|
+
if (this.isContextDependent(context, request)) {
|
|
715
785
|
return {
|
|
716
786
|
request: this.transformForSave({
|
|
717
787
|
...request,
|
|
@@ -728,7 +798,7 @@ class GetRelatedListsActionsRequestStrategy extends LuvioAdapterRequestStrategy
|
|
|
728
798
|
context,
|
|
729
799
|
};
|
|
730
800
|
}
|
|
731
|
-
|
|
801
|
+
isContextDependent(context, request) {
|
|
732
802
|
const isForContext = request.config.recordIds &&
|
|
733
803
|
(context.recordId === request.config.recordIds || // some may set this as string instead of array
|
|
734
804
|
(request.config.recordIds.length === 1 &&
|
|
@@ -770,6 +840,129 @@ class GetRelatedListsActionsRequestStrategy extends LuvioAdapterRequestStrategy
|
|
|
770
840
|
}
|
|
771
841
|
}
|
|
772
842
|
|
|
843
|
+
class GetRelatedListInfoBatchRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
844
|
+
constructor() {
|
|
845
|
+
super(...arguments);
|
|
846
|
+
this.adapterName = 'getRelatedListInfoBatch';
|
|
847
|
+
this.adapterFactory = getRelatedListInfoBatchAdapterFactory;
|
|
848
|
+
}
|
|
849
|
+
buildConcreteRequest(similarRequest, _context) {
|
|
850
|
+
return similarRequest;
|
|
851
|
+
}
|
|
852
|
+
canCombine(reqA, reqB) {
|
|
853
|
+
return reqA.parentObjectApiName === reqB.parentObjectApiName;
|
|
854
|
+
}
|
|
855
|
+
combineRequests(reqA, reqB) {
|
|
856
|
+
const combined = { ...reqA };
|
|
857
|
+
combined.relatedListNames = Array.from(new Set([...reqA.relatedListNames, ...reqB.relatedListNames]));
|
|
858
|
+
return combined;
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
class GetRelatedListRecordsRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
863
|
+
constructor() {
|
|
864
|
+
super(...arguments);
|
|
865
|
+
this.adapterName = 'getRelatedListRecords';
|
|
866
|
+
this.adapterFactory = getRelatedListRecordsAdapterFactory;
|
|
867
|
+
}
|
|
868
|
+
buildConcreteRequest(similarRequest, context) {
|
|
869
|
+
return {
|
|
870
|
+
...similarRequest,
|
|
871
|
+
config: {
|
|
872
|
+
...similarRequest.config,
|
|
873
|
+
parentRecordId: context.recordId,
|
|
874
|
+
},
|
|
875
|
+
};
|
|
876
|
+
}
|
|
877
|
+
buildSaveRequestData(similarContext, context, request) {
|
|
878
|
+
if (this.isContextDependent(context, request)) {
|
|
879
|
+
return {
|
|
880
|
+
request: this.transformForSave({
|
|
881
|
+
...request,
|
|
882
|
+
config: {
|
|
883
|
+
...request.config,
|
|
884
|
+
parentRecordId: '*',
|
|
885
|
+
},
|
|
886
|
+
}),
|
|
887
|
+
context: similarContext,
|
|
888
|
+
};
|
|
889
|
+
}
|
|
890
|
+
return {
|
|
891
|
+
request: this.transformForSave(request),
|
|
892
|
+
context,
|
|
893
|
+
};
|
|
894
|
+
}
|
|
895
|
+
// ADG currently handles the batching of GetRelatedListRecords -> GetRelatedListRecordsBatch
|
|
896
|
+
// https://gitcore.soma.salesforce.com/core-2206/core-public/blob/p4/main/core/ui-laf-components/modules/laf/batchingPortable/reducers/RelatedListRecordsBatchReducer.js
|
|
897
|
+
// Adding reducing is outside of the scope of this PR, but this could potentially be added in the future
|
|
898
|
+
isContextDependent(context, request) {
|
|
899
|
+
return context.recordId === request.config.parentRecordId;
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
class GetRelatedListRecordsBatchRequestStrategy extends LuvioAdapterRequestStrategy {
|
|
904
|
+
constructor() {
|
|
905
|
+
super(...arguments);
|
|
906
|
+
this.adapterName = 'getRelatedListRecordsBatch';
|
|
907
|
+
this.adapterFactory = getRelatedListRecordsBatchAdapterFactory;
|
|
908
|
+
}
|
|
909
|
+
buildConcreteRequest(similarRequest, context) {
|
|
910
|
+
return {
|
|
911
|
+
...similarRequest,
|
|
912
|
+
config: {
|
|
913
|
+
...similarRequest.config,
|
|
914
|
+
parentRecordId: context.recordId,
|
|
915
|
+
},
|
|
916
|
+
};
|
|
917
|
+
}
|
|
918
|
+
buildSaveRequestData(similarContext, context, request) {
|
|
919
|
+
if (this.isContextDependent(context, request)) {
|
|
920
|
+
return {
|
|
921
|
+
request: this.transformForSave({
|
|
922
|
+
...request,
|
|
923
|
+
config: {
|
|
924
|
+
...request.config,
|
|
925
|
+
parentRecordId: '*',
|
|
926
|
+
},
|
|
927
|
+
}),
|
|
928
|
+
context: similarContext,
|
|
929
|
+
};
|
|
930
|
+
}
|
|
931
|
+
return {
|
|
932
|
+
request: this.transformForSave(request),
|
|
933
|
+
context,
|
|
934
|
+
};
|
|
935
|
+
}
|
|
936
|
+
isContextDependent(context, request) {
|
|
937
|
+
return context.recordId === request.config.parentRecordId;
|
|
938
|
+
}
|
|
939
|
+
/**
|
|
940
|
+
* Can combine two seperate batch requests if the parentRecordId is the same.
|
|
941
|
+
* @param reqA The first GetRelatedListRecordsBatchConfig.
|
|
942
|
+
* @param reqB The first GetRelatedListRecordsBatchConfig.
|
|
943
|
+
* @returns true if the requests can be combined, otherwise false.
|
|
944
|
+
*/
|
|
945
|
+
canCombine(reqA, reqB) {
|
|
946
|
+
return reqA.parentRecordId === reqB.parentRecordId;
|
|
947
|
+
}
|
|
948
|
+
/**
|
|
949
|
+
* Merge the relatedListParameters together between two combinable batch requests.
|
|
950
|
+
* @param reqA The first GetRelatedListRecordsBatchConfig.
|
|
951
|
+
* @param reqB The first GetRelatedListRecordsBatchConfig.
|
|
952
|
+
* @returns The combined request.
|
|
953
|
+
*/
|
|
954
|
+
combineRequests(reqA, reqB) {
|
|
955
|
+
const relatedListParametersMap = new Set(reqA.relatedListParameters.map((relatedListParameter) => {
|
|
956
|
+
return stableJSONStringify$1(relatedListParameter);
|
|
957
|
+
}));
|
|
958
|
+
const reqBRelatedListParametersToAdd = reqB.relatedListParameters.filter((relatedListParameter) => {
|
|
959
|
+
return !relatedListParametersMap.has(stableJSONStringify$1(relatedListParameter));
|
|
960
|
+
});
|
|
961
|
+
reqA.relatedListParameters = reqA.relatedListParameters.concat(reqBRelatedListParametersToAdd);
|
|
962
|
+
return reqA;
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
|
|
773
966
|
class LexRequestRunner {
|
|
774
967
|
constructor(luvio) {
|
|
775
968
|
this.luvio = luvio;
|
|
@@ -781,6 +974,9 @@ class LexRequestRunner {
|
|
|
781
974
|
getObjectInfo: new GetObjectInfoRequestStrategy(),
|
|
782
975
|
getObjectInfos: new GetObjectInfosRequestStrategy(),
|
|
783
976
|
getRelatedListsActions: new GetRelatedListsActionsRequestStrategy(),
|
|
977
|
+
getRelatedListInfoBatch: new GetRelatedListInfoBatchRequestStrategy(),
|
|
978
|
+
getRelatedListRecords: new GetRelatedListRecordsRequestStrategy(),
|
|
979
|
+
getRelatedListRecordsBatch: new GetRelatedListRecordsBatchRequestStrategy(),
|
|
784
980
|
};
|
|
785
981
|
}
|
|
786
982
|
reduceRequests(requests) {
|
|
@@ -1606,6 +1802,9 @@ function setupPredictivePrefetcher(luvio) {
|
|
|
1606
1802
|
getObjectInfo: new GetObjectInfoRequestStrategy(),
|
|
1607
1803
|
getObjectInfos: new GetObjectInfosRequestStrategy(),
|
|
1608
1804
|
getRelatedListsActions: new GetRelatedListsActionsRequestStrategy(),
|
|
1805
|
+
getRelatedListRecords: new GetRelatedListRecordsRequestStrategy(),
|
|
1806
|
+
getRelatedListRecordsBatch: new GetRelatedListRecordsBatchRequestStrategy(),
|
|
1807
|
+
getRelatedListInfoBatch: new GetRelatedListInfoBatchRequestStrategy(),
|
|
1609
1808
|
});
|
|
1610
1809
|
registerPrefetcher(luvio, prefetcher);
|
|
1611
1810
|
__lexPrefetcher = prefetcher;
|
|
@@ -1709,4 +1908,4 @@ function ldsEngineCreator() {
|
|
|
1709
1908
|
}
|
|
1710
1909
|
|
|
1711
1910
|
export { buildPredictorForContext, ldsEngineCreator as default, initializeLDS, predictiveLoadPage };
|
|
1712
|
-
// version: 1.
|
|
1911
|
+
// version: 1.274.0-67da496e8
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LexContext } from '../prefetcher';
|
|
2
|
-
import type { GetRecordRequest, GetRecordsRequest, GetRecordRequestStrategy, GetRecordsRequestStrategy, GetRecordActionsRequestStrategy, GetRecordActionsRequest, GetRecordAvatarsRequest, GetRecordAvatarsRequestStrategy, GetObjectInfoRequest, GetObjectInfosRequest, GetObjectInfoRequestStrategy, GetObjectInfosRequestStrategy, GetRelatedListsActionsRequestStrategy, GetRelatedListsActionsRequest } from '../request-strategy';
|
|
2
|
+
import type { GetRecordRequest, GetRecordsRequest, GetRecordRequestStrategy, GetRecordsRequestStrategy, GetRecordActionsRequestStrategy, GetRecordActionsRequest, GetRecordAvatarsRequest, GetRecordAvatarsRequestStrategy, GetObjectInfoRequest, GetObjectInfosRequest, GetObjectInfoRequestStrategy, GetObjectInfosRequestStrategy, GetRelatedListsActionsRequestStrategy, GetRelatedListsActionsRequest, GetRelatedListInfoBatchRequestStrategy, GetRelatedListInfoBatchRequest, GetRelatedListRecordsRequestStrategy, GetRelatedListRecordsRequest, GetRelatedListRecordsBatchRequestStrategy, GetRelatedListRecordsBatchRequest } from '../request-strategy';
|
|
3
3
|
import { PredictivePrefetchPage } from './predictive-prefetch-page';
|
|
4
4
|
export type RecordHomePageContext = {
|
|
5
5
|
objectApiName: string;
|
|
@@ -7,7 +7,7 @@ export type RecordHomePageContext = {
|
|
|
7
7
|
actionName: string;
|
|
8
8
|
type: 'recordPage';
|
|
9
9
|
};
|
|
10
|
-
export type RecordHomePageRequest = GetRecordRequest | GetRecordsRequest | GetRecordActionsRequest | GetRecordAvatarsRequest | GetObjectInfoRequest | GetObjectInfosRequest | GetRelatedListsActionsRequest;
|
|
10
|
+
export type RecordHomePageRequest = GetRecordRequest | GetRecordsRequest | GetRecordActionsRequest | GetRecordAvatarsRequest | GetObjectInfoRequest | GetObjectInfosRequest | GetRelatedListsActionsRequest | GetRelatedListInfoBatchRequest | GetRelatedListRecordsRequest | GetRelatedListRecordsBatchRequest;
|
|
11
11
|
export declare class RecordHomePage extends PredictivePrefetchPage<RecordHomePageRequest, RecordHomePageContext> {
|
|
12
12
|
private requestStrategies;
|
|
13
13
|
similarContext: RecordHomePageContext;
|
|
@@ -19,6 +19,9 @@ export declare class RecordHomePage extends PredictivePrefetchPage<RecordHomePag
|
|
|
19
19
|
getObjectInfo: GetObjectInfoRequestStrategy;
|
|
20
20
|
getObjectInfos: GetObjectInfosRequestStrategy;
|
|
21
21
|
getRelatedListsActions: GetRelatedListsActionsRequestStrategy;
|
|
22
|
+
getRelatedListInfoBatch: GetRelatedListInfoBatchRequestStrategy;
|
|
23
|
+
getRelatedListRecords: GetRelatedListRecordsRequestStrategy;
|
|
24
|
+
getRelatedListRecordsBatch: GetRelatedListRecordsBatchRequestStrategy;
|
|
22
25
|
});
|
|
23
26
|
buildSaveRequestData(request: RecordHomePageRequest): {
|
|
24
27
|
request: GetRecordRequest;
|
|
@@ -39,19 +42,15 @@ export declare class RecordHomePage extends PredictivePrefetchPage<RecordHomePag
|
|
|
39
42
|
request: GetRelatedListsActionsRequest;
|
|
40
43
|
context: RecordHomePageContext;
|
|
41
44
|
} | {
|
|
42
|
-
request:
|
|
45
|
+
request: GetRelatedListRecordsRequest;
|
|
43
46
|
context: RecordHomePageContext;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
request: GetRecordRequest;
|
|
47
|
+
} | {
|
|
48
|
+
request: GetRelatedListRecordsBatchRequest;
|
|
47
49
|
context: RecordHomePageContext;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
request: GetRecordsRequest;
|
|
50
|
+
} | {
|
|
51
|
+
request: GetObjectInfosRequest | GetRelatedListInfoBatchRequest;
|
|
51
52
|
context: RecordHomePageContext;
|
|
52
53
|
};
|
|
53
|
-
isGetRecordRequestContextDependent(request: GetRecordRequest): boolean;
|
|
54
|
-
isGetRecordsRequestContextDependent(request: GetRecordsRequest): boolean;
|
|
55
54
|
resolveSimilarRequest(similarRequest: RecordHomePageRequest): RecordHomePageRequest;
|
|
56
55
|
getAlwaysRunRequests(): RecordHomePageRequest[];
|
|
57
56
|
static handlesContext(context: LexContext): context is RecordHomePageContext;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DefaultPageContext, PredictivePrefetchPage } from '../pages';
|
|
2
2
|
import { ApplicationPredictivePrefetcher } from './predictive-prefetcher';
|
|
3
|
-
import type { GetRecordActionsRequestStrategy, GetRecordAvatarsRequestStrategy, GetRecordRequestStrategy, GetRecordsRequestStrategy, GetObjectInfoRequestStrategy, GetObjectInfosRequestStrategy, GetRelatedListsActionsRequestStrategy } from '../request-strategy';
|
|
3
|
+
import type { GetRecordActionsRequestStrategy, GetRecordAvatarsRequestStrategy, GetRecordRequestStrategy, GetRecordsRequestStrategy, GetObjectInfoRequestStrategy, GetObjectInfosRequestStrategy, GetRelatedListsActionsRequestStrategy, GetRelatedListInfoBatchRequestStrategy, GetRelatedListRecordsRequestStrategy, GetRelatedListRecordsBatchRequestStrategy } from '../request-strategy';
|
|
4
4
|
import type { RequestRunner } from '../request-runner';
|
|
5
5
|
import type { PrefetchRepository } from '../repository/prefetch-repository';
|
|
6
6
|
import type { RecordHomePageContext, RecordHomePageRequest } from '../pages/record-home-page';
|
|
@@ -16,6 +16,9 @@ export declare class LexPredictivePrefetcher extends ApplicationPredictivePrefet
|
|
|
16
16
|
getObjectInfo: GetObjectInfoRequestStrategy;
|
|
17
17
|
getObjectInfos: GetObjectInfosRequestStrategy;
|
|
18
18
|
getRelatedListsActions: GetRelatedListsActionsRequestStrategy;
|
|
19
|
+
getRelatedListInfoBatch: GetRelatedListInfoBatchRequestStrategy;
|
|
20
|
+
getRelatedListRecords: GetRelatedListRecordsRequestStrategy;
|
|
21
|
+
getRelatedListRecordsBatch: GetRelatedListRecordsBatchRequestStrategy;
|
|
19
22
|
});
|
|
20
23
|
getPage(): PredictivePrefetchPage<LexRequest, LexContext>;
|
|
21
24
|
}
|
package/dist/types/predictive-loading/request-strategy/get-object-info-request-strategy.d.ts
CHANGED
|
@@ -11,9 +11,9 @@ export declare class GetObjectInfoRequestStrategy extends LuvioAdapterRequestStr
|
|
|
11
11
|
adapterName: string;
|
|
12
12
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetObjectInfoConfig, import("@salesforce/lds-adapters-uiapi").ObjectInfoRepresentation>;
|
|
13
13
|
buildConcreteRequest(similarRequest: GetObjectInfoRequest, context: GetObjectInfoContext): GetObjectInfoRequest;
|
|
14
|
-
|
|
14
|
+
buildSaveRequestData<C extends GetObjectInfoContext>(similarContext: C, context: C, request: GetObjectInfoRequest): {
|
|
15
15
|
request: GetObjectInfoRequest;
|
|
16
16
|
context: C;
|
|
17
17
|
};
|
|
18
|
-
|
|
18
|
+
isContextDependent(context: GetObjectInfoContext, request: GetObjectInfoRequest): boolean;
|
|
19
19
|
}
|
package/dist/types/predictive-loading/request-strategy/get-record-actions-request-strategy.d.ts
CHANGED
|
@@ -11,12 +11,12 @@ export declare class GetRecordActionsRequestStrategy extends LuvioAdapterRequest
|
|
|
11
11
|
adapterName: string;
|
|
12
12
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetRecordActionsConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/ActionRepresentation").ActionRepresentation>;
|
|
13
13
|
buildConcreteRequest(similarRequest: GetRecordActionsRequest, context: GetRecordActionsContext): GetRecordActionsRequest;
|
|
14
|
-
|
|
14
|
+
buildSaveRequestData<C extends GetRecordActionsContext>(similarContext: C, context: C, request: GetRecordActionsRequest): {
|
|
15
15
|
request: GetRecordActionsRequest;
|
|
16
16
|
context: C;
|
|
17
17
|
};
|
|
18
18
|
canCombine(reqA: GetRecordActionsConfig, reqB: GetRecordActionsConfig): boolean;
|
|
19
19
|
combineRequests(reqA: GetRecordActionsConfig, reqB: GetRecordActionsConfig): GetRecordActionsConfig;
|
|
20
|
-
|
|
20
|
+
isContextDependent(context: GetRecordActionsContext, request: GetRecordActionsRequest): boolean;
|
|
21
21
|
}
|
|
22
22
|
export {};
|
package/dist/types/predictive-loading/request-strategy/get-record-avatars-request-strategy.d.ts
CHANGED
|
@@ -11,11 +11,11 @@ export declare class GetRecordAvatarsRequestStrategy extends LuvioAdapterRequest
|
|
|
11
11
|
adapterName: string;
|
|
12
12
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetRecordAvatarsConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/RecordAvatarBulkMapRepresentation").RecordAvatarBulkMapRepresentation>;
|
|
13
13
|
buildConcreteRequest(similarRequest: GetRecordAvatarsRequest, context: GetRecordAvatarsContext): GetRecordAvatarsRequest;
|
|
14
|
-
|
|
14
|
+
buildSaveRequestData<C extends GetRecordAvatarsContext>(similarContext: C, context: C, request: GetRecordAvatarsRequest): {
|
|
15
15
|
request: GetRecordAvatarsRequest;
|
|
16
16
|
context: C;
|
|
17
17
|
};
|
|
18
|
-
|
|
18
|
+
isContextDependent<C extends GetRecordAvatarsContext>(context: C, request: GetRecordAvatarsRequest): boolean;
|
|
19
19
|
canCombine(reqA: GetRecordAvatarsConfig, reqB: GetRecordAvatarsConfig): boolean;
|
|
20
20
|
combineRequests(reqA: GetRecordAvatarsConfig, reqB: GetRecordAvatarsConfig): GetRecordAvatarsConfig;
|
|
21
21
|
}
|
|
@@ -14,5 +14,10 @@ export declare class GetRecordRequestStrategy extends LuvioAdapterRequestStrateg
|
|
|
14
14
|
transformForSave(request: GetRecordRequest): GetRecordRequest;
|
|
15
15
|
canCombine(reqA: GetRecordConfig, reqB: GetRecordConfig): boolean;
|
|
16
16
|
combineRequests(reqA: GetRecordConfig, reqB: GetRecordConfig): GetRecordConfig;
|
|
17
|
+
isContextDependent(context: GetRecordContext, request: GetRecordRequest): boolean;
|
|
18
|
+
buildSaveRequestData<C extends GetRecordContext>(similarContext: C, context: C, request: GetRecordRequest): {
|
|
19
|
+
request: GetRecordRequest;
|
|
20
|
+
context: C;
|
|
21
|
+
};
|
|
17
22
|
}
|
|
18
23
|
export {};
|
|
@@ -11,5 +11,10 @@ export declare class GetRecordsRequestStrategy extends LuvioAdapterRequestStrate
|
|
|
11
11
|
adapterName: string;
|
|
12
12
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetRecordsConfig, import("@salesforce/lds-adapters-uiapi").BatchRepresentation>;
|
|
13
13
|
buildConcreteRequest(similarRequest: GetRecordsRequest, context: GetRecordsContext): GetRecordsRequest;
|
|
14
|
+
isContextDependent(context: GetRecordsContext, request: GetRecordsRequest): boolean;
|
|
15
|
+
buildSaveRequestData<Context extends GetRecordsContext, R extends GetRecordsRequest>(similarContext: Context, context: Context, request: R): {
|
|
16
|
+
request: GetRecordsRequest;
|
|
17
|
+
context: Context;
|
|
18
|
+
};
|
|
14
19
|
}
|
|
15
20
|
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { GetRelatedListInfoBatchConfig } from 'packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/adapters/getRelatedListInfoBatch';
|
|
2
|
+
import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
|
|
3
|
+
export type GetRelatedListInfoBatchRequest = {
|
|
4
|
+
adapterName: 'getRelatedListInfoBatch';
|
|
5
|
+
config: GetRelatedListInfoBatchConfig;
|
|
6
|
+
};
|
|
7
|
+
type GetRelatedListInfoBatchContext = {
|
|
8
|
+
objectApiName: string;
|
|
9
|
+
};
|
|
10
|
+
export declare class GetRelatedListInfoBatchRequestStrategy extends LuvioAdapterRequestStrategy<GetRelatedListInfoBatchConfig, GetRelatedListInfoBatchRequest, GetRelatedListInfoBatchContext> {
|
|
11
|
+
adapterName: string;
|
|
12
|
+
adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListInfoBatchConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/RelatedListInfoBatchRepresentation").RelatedListInfoBatchRepresentation>;
|
|
13
|
+
buildConcreteRequest(similarRequest: GetRelatedListInfoBatchRequest, _context: GetRelatedListInfoBatchContext): GetRelatedListInfoBatchRequest;
|
|
14
|
+
canCombine(reqA: GetRelatedListInfoBatchConfig, reqB: GetRelatedListInfoBatchConfig): boolean;
|
|
15
|
+
combineRequests(reqA: GetRelatedListInfoBatchConfig, reqB: GetRelatedListInfoBatchConfig): GetRelatedListInfoBatchConfig;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { GetRelatedListRecordsBatchConfig } from '@salesforce/lds-adapters-uiapi';
|
|
2
|
+
import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
|
|
3
|
+
export type GetRelatedListRecordsBatchRequest = {
|
|
4
|
+
adapterName: 'getRelatedListRecordsBatch';
|
|
5
|
+
config: GetRelatedListRecordsBatchConfig;
|
|
6
|
+
};
|
|
7
|
+
type GetRelatedListRecordsBatchContext = {
|
|
8
|
+
recordId: string;
|
|
9
|
+
};
|
|
10
|
+
export declare class GetRelatedListRecordsBatchRequestStrategy extends LuvioAdapterRequestStrategy<GetRelatedListRecordsBatchConfig, GetRelatedListRecordsBatchRequest, GetRelatedListRecordsBatchContext> {
|
|
11
|
+
adapterName: string;
|
|
12
|
+
adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListRecordsBatchConfig, import("@salesforce/lds-adapters-uiapi").RelatedListRecordCollectionBatchRepresentation>;
|
|
13
|
+
buildConcreteRequest(similarRequest: GetRelatedListRecordsBatchRequest, context: GetRelatedListRecordsBatchContext): GetRelatedListRecordsBatchRequest;
|
|
14
|
+
buildSaveRequestData<C extends GetRelatedListRecordsBatchContext>(similarContext: C, context: C, request: GetRelatedListRecordsBatchRequest): {
|
|
15
|
+
request: GetRelatedListRecordsBatchRequest;
|
|
16
|
+
context: C;
|
|
17
|
+
};
|
|
18
|
+
isContextDependent(context: GetRelatedListRecordsBatchContext, request: GetRelatedListRecordsBatchRequest): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Can combine two seperate batch requests if the parentRecordId is the same.
|
|
21
|
+
* @param reqA The first GetRelatedListRecordsBatchConfig.
|
|
22
|
+
* @param reqB The first GetRelatedListRecordsBatchConfig.
|
|
23
|
+
* @returns true if the requests can be combined, otherwise false.
|
|
24
|
+
*/
|
|
25
|
+
canCombine(reqA: GetRelatedListRecordsBatchConfig, reqB: GetRelatedListRecordsBatchConfig): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Merge the relatedListParameters together between two combinable batch requests.
|
|
28
|
+
* @param reqA The first GetRelatedListRecordsBatchConfig.
|
|
29
|
+
* @param reqB The first GetRelatedListRecordsBatchConfig.
|
|
30
|
+
* @returns The combined request.
|
|
31
|
+
*/
|
|
32
|
+
combineRequests(reqA: GetRelatedListRecordsBatchConfig, reqB: GetRelatedListRecordsBatchConfig): GetRelatedListRecordsBatchConfig;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { GetRelatedListRecordsConfig } from '@salesforce/lds-adapters-uiapi';
|
|
2
|
+
import { LuvioAdapterRequestStrategy } from './luvio-adapter-request-strategy';
|
|
3
|
+
export type GetRelatedListRecordsRequest = {
|
|
4
|
+
adapterName: 'getRelatedListRecords';
|
|
5
|
+
config: GetRelatedListRecordsConfig;
|
|
6
|
+
};
|
|
7
|
+
type GetRelatedListRecordsContext = {
|
|
8
|
+
recordId: string;
|
|
9
|
+
};
|
|
10
|
+
export declare class GetRelatedListRecordsRequestStrategy extends LuvioAdapterRequestStrategy<GetRelatedListRecordsConfig, GetRelatedListRecordsRequest, GetRelatedListRecordsContext> {
|
|
11
|
+
adapterName: string;
|
|
12
|
+
adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListRecordsConfig, import("@salesforce/lds-adapters-uiapi").RelatedListRecordCollectionRepresentation>;
|
|
13
|
+
buildConcreteRequest(similarRequest: GetRelatedListRecordsRequest, context: GetRelatedListRecordsContext): GetRelatedListRecordsRequest;
|
|
14
|
+
buildSaveRequestData<C extends GetRelatedListRecordsContext>(similarContext: C, context: C, request: GetRelatedListRecordsRequest): {
|
|
15
|
+
request: GetRelatedListRecordsRequest;
|
|
16
|
+
context: C;
|
|
17
|
+
};
|
|
18
|
+
isContextDependent(context: GetRelatedListRecordsContext, request: GetRelatedListRecordsRequest): boolean;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -11,11 +11,11 @@ export declare class GetRelatedListsActionsRequestStrategy extends LuvioAdapterR
|
|
|
11
11
|
adapterName: string;
|
|
12
12
|
adapterFactory: import("@luvio/engine").AdapterFactory<GetRelatedListsActionsConfig, import("packages/lds-adapters-uiapi/dist/es/es2018/types/src/generated/types/ActionRelatedListsCollectionBatchRepresentation").ActionRelatedListsCollectionBatchRepresentation>;
|
|
13
13
|
buildConcreteRequest(similarRequest: GetRelatedListsActionsRequest, context: GetRelatedListsActionsContext): GetRelatedListsActionsRequest;
|
|
14
|
-
|
|
14
|
+
buildSaveRequestData<C extends GetRelatedListsActionsContext>(similarContext: C, context: C, request: GetRelatedListsActionsRequest): {
|
|
15
15
|
request: GetRelatedListsActionsRequest;
|
|
16
16
|
context: C;
|
|
17
17
|
};
|
|
18
|
-
|
|
18
|
+
isContextDependent(context: GetRelatedListsActionsContext, request: GetRelatedListsActionsRequest): boolean;
|
|
19
19
|
/**
|
|
20
20
|
* Can only reduce two requests when they have the same recordId, and
|
|
21
21
|
* the individual relatedListAction config only have relatedListId.
|
|
@@ -5,6 +5,9 @@ export * from './get-record-actions-request-strategy';
|
|
|
5
5
|
export * from './get-object-info-request-strategy';
|
|
6
6
|
export * from './get-object-infos-request-strategy';
|
|
7
7
|
export * from './get-related-lists-actions-request-strategy';
|
|
8
|
+
export * from './get-related-list-info-batch-request-strategy';
|
|
9
|
+
export * from './get-related-list-records-request-strategy';
|
|
10
|
+
export * from './get-related-list-records-batch-request-strategy';
|
|
8
11
|
export * from './luvio-adapter-request-strategy';
|
|
9
12
|
export * from './luvio-adapter-request';
|
|
10
13
|
export * from './request-strategy';
|
|
@@ -2,11 +2,74 @@ import type { AdapterFactory } from '@luvio/engine';
|
|
|
2
2
|
import { RequestStrategy } from './request-strategy';
|
|
3
3
|
import type { LuvioAdapterRequest } from './luvio-adapter-request';
|
|
4
4
|
export declare abstract class LuvioAdapterRequestStrategy<AdapterConfig, Request extends LuvioAdapterRequest<AdapterConfig>, Context> extends RequestStrategy<Request, Context> {
|
|
5
|
+
/**
|
|
6
|
+
* Name of the adapter used in this strategy.
|
|
7
|
+
*/
|
|
5
8
|
abstract adapterName: string;
|
|
9
|
+
/**
|
|
10
|
+
* Factory for the adapter used in this strategy.
|
|
11
|
+
*/
|
|
6
12
|
abstract adapterFactory: AdapterFactory<AdapterConfig, any>;
|
|
13
|
+
/**
|
|
14
|
+
* Perform any transformations required to prepare the request for saving.
|
|
15
|
+
*
|
|
16
|
+
* e.g. If the request is for a record, we move all fields in the fields array
|
|
17
|
+
* into the optionalFields array
|
|
18
|
+
*
|
|
19
|
+
* @param request - The request to transform
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
7
22
|
transformForSave(request: Request): Request;
|
|
23
|
+
/**
|
|
24
|
+
* Filter requests to only those that are for this strategy.
|
|
25
|
+
*
|
|
26
|
+
* @param unfilteredRequests array of requests to filter
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
8
29
|
protected filterRequests(unfilteredRequests: LuvioAdapterRequest<unknown>[]): Request[];
|
|
30
|
+
/**
|
|
31
|
+
* Reduce requests by combining those based on a strategies implementations
|
|
32
|
+
* of canCombine and combineRequests.
|
|
33
|
+
* @param unfilteredRequests array of requests to filter
|
|
34
|
+
* @returns
|
|
35
|
+
*/
|
|
9
36
|
reduce(unfilteredRequests: LuvioAdapterRequest<unknown>[]): Request[];
|
|
37
|
+
/**
|
|
38
|
+
* Check if two requests can be combined.
|
|
39
|
+
*
|
|
40
|
+
* By default, requests are not combinable.
|
|
41
|
+
* @param reqA config of request A
|
|
42
|
+
* @param reqB config of request B
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
10
45
|
canCombine(_reqA: AdapterConfig, _reqB: AdapterConfig): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Takes two request configs and combines them into a single request config.
|
|
48
|
+
*
|
|
49
|
+
* @param reqA config of request A
|
|
50
|
+
* @param reqB config of request B
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
11
53
|
combineRequests(reqA: AdapterConfig, _reqB: AdapterConfig): AdapterConfig;
|
|
54
|
+
/**
|
|
55
|
+
* Checks adapter config against request context to determine if the request is context dependent.
|
|
56
|
+
*
|
|
57
|
+
* By default, requests are not context dependent.
|
|
58
|
+
* @param request
|
|
59
|
+
* @returns
|
|
60
|
+
*/
|
|
61
|
+
isContextDependent(_context: Context, _request: Request): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Builds request for saving,
|
|
64
|
+
* - transforming the request
|
|
65
|
+
* - handling the cases where the request is context dependent (this is homework for the subclass)
|
|
66
|
+
* @param _similarContext Context with at least one parameter as a wildcard '*'
|
|
67
|
+
* @param context Exact context for a given page
|
|
68
|
+
* @param request
|
|
69
|
+
* @returns
|
|
70
|
+
*/
|
|
71
|
+
buildSaveRequestData(_similarContext: Context, context: Context, request: Request): {
|
|
72
|
+
request: Request;
|
|
73
|
+
context: Context;
|
|
74
|
+
};
|
|
12
75
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/lds-runtime-aura",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.274.0",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"description": "LDS engine for Aura runtime",
|
|
6
6
|
"main": "dist/ldsEngineCreator.js",
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
"release:corejar": "yarn build && ../core-build/scripts/core.js --name=lds-runtime-aura"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@salesforce/lds-adapters-uiapi": "^1.
|
|
38
|
-
"@salesforce/lds-ads-bridge": "^1.
|
|
39
|
-
"@salesforce/lds-aura-storage": "^1.
|
|
40
|
-
"@salesforce/lds-bindings": "^1.
|
|
41
|
-
"@salesforce/lds-instrumentation": "^1.
|
|
42
|
-
"@salesforce/lds-network-aura": "^1.
|
|
43
|
-
"@salesforce/lds-network-fetch-with-jwt": "^1.
|
|
37
|
+
"@salesforce/lds-adapters-uiapi": "^1.274.0",
|
|
38
|
+
"@salesforce/lds-ads-bridge": "^1.274.0",
|
|
39
|
+
"@salesforce/lds-aura-storage": "^1.274.0",
|
|
40
|
+
"@salesforce/lds-bindings": "^1.274.0",
|
|
41
|
+
"@salesforce/lds-instrumentation": "^1.274.0",
|
|
42
|
+
"@salesforce/lds-network-aura": "^1.274.0",
|
|
43
|
+
"@salesforce/lds-network-fetch-with-jwt": "^1.274.0"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@luvio/network-adapter-composable": "0.154.9"
|
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
{
|
|
50
50
|
"path": "./dist/ldsEngineCreator.js",
|
|
51
51
|
"maxSize": {
|
|
52
|
-
"none": "
|
|
53
|
-
"min": "
|
|
54
|
-
"compressed": "
|
|
52
|
+
"none": "75 kB",
|
|
53
|
+
"min": "32 kB",
|
|
54
|
+
"compressed": "15 kB"
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
],
|