@veloceapps/sdk 8.0.0-193 → 8.0.0-195
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/core/modules/configuration/services/configuration-state.service.d.ts +5 -0
- package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +33 -9
- package/fesm2015/veloceapps-sdk-core.mjs +30 -6
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +30 -6
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -2038,11 +2038,15 @@ class ConfigurationStateService {
|
|
|
2038
2038
|
this.isInitialized$ = new BehaviorSubject(false);
|
|
2039
2039
|
this.canceledConfiguration$ = new Subject();
|
|
2040
2040
|
this.NOT_INITIALIZED = Symbol();
|
|
2041
|
+
this.EXECUTION_BUFFER_TIME = 100;
|
|
2041
2042
|
this.executedFunctions = {};
|
|
2042
2043
|
this.stateId = null;
|
|
2043
2044
|
this.ownerId = '';
|
|
2044
2045
|
this.subscriptions = {};
|
|
2045
2046
|
this.configurationStore = {};
|
|
2047
|
+
this.statefulExecutionInProgress$ = new BehaviorSubject(false);
|
|
2048
|
+
this.statefulRequestStream$ = new Subject();
|
|
2049
|
+
this.statefulExecutionRequest$ = this.initBufferedRequest$();
|
|
2046
2050
|
}
|
|
2047
2051
|
init$() {
|
|
2048
2052
|
let request$;
|
|
@@ -2272,14 +2276,34 @@ class ConfigurationStateService {
|
|
|
2272
2276
|
return throwError(() => error);
|
|
2273
2277
|
}));
|
|
2274
2278
|
}
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2279
|
+
initBufferedRequest$() {
|
|
2280
|
+
return this.statefulRequestStream$.pipe(buffer(this.statefulRequestStream$.pipe(debounceTime(this.EXECUTION_BUFFER_TIME))), switchMap(requests => {
|
|
2281
|
+
if (!this.flowStateService.stateId || !this.stateId) {
|
|
2282
|
+
throw 'Stateful session is not initialized';
|
|
2283
|
+
}
|
|
2284
|
+
// merge buffered requests
|
|
2285
|
+
const request = {
|
|
2286
|
+
actions: requests.flatMap(({ actions }) => actions).filter(isDefined),
|
|
2287
|
+
selectors: requests
|
|
2288
|
+
.map(({ selectors }) => selectors)
|
|
2289
|
+
.filter(isDefined)
|
|
2290
|
+
.reduce((acc, selectorsMap) => Object.assign(acc, selectorsMap), {}),
|
|
2291
|
+
};
|
|
2292
|
+
this.statefulExecutionInProgress$.next(true);
|
|
2293
|
+
return this.flowStateApiService.executeConfiguration(this.flowStateService.stateId, this.stateId, request);
|
|
2294
|
+
}), tap$1(({ stateId }) => (this.stateId = stateId)), share(), tap$1(() => this.statefulExecutionInProgress$.next(false)), catchError(e => {
|
|
2295
|
+
this.statefulExecutionInProgress$.next(false);
|
|
2296
|
+
return throwError(() => e);
|
|
2281
2297
|
}));
|
|
2282
2298
|
}
|
|
2299
|
+
executeStateful$(request) {
|
|
2300
|
+
return this.statefulExecutionInProgress$.pipe(filter$1(inProgress => !inProgress), take$1(1), switchMap(() =>
|
|
2301
|
+
// make sure stream switches to statefulExecutionRequest$ before pushing an execution request
|
|
2302
|
+
combineLatest([
|
|
2303
|
+
this.statefulExecutionRequest$,
|
|
2304
|
+
of(undefined).pipe(tap$1(() => this.statefulRequestStream$.next(request))),
|
|
2305
|
+
])), map$1(([response]) => response), take$1(1));
|
|
2306
|
+
}
|
|
2283
2307
|
executeActionScript(request, processor) {
|
|
2284
2308
|
const { actions } = this.configurationRuntimeService.runtimeContext?.uiDefinitionContainer ?? {};
|
|
2285
2309
|
const configurationProcessor = actions?.find(action => action.apiName === processor.apiName);
|