@gooddata/sdk-backend-base 9.0.0-alpha.3 → 9.0.0-alpha.30
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/esm/cachingBackend/index.js +14 -14
- package/esm/cachingBackend/index.js.map +1 -1
- package/esm/customBackend/config.d.ts +2 -2
- package/esm/customBackend/config.d.ts.map +1 -1
- package/esm/customBackend/execution.d.ts +2 -2
- package/esm/customBackend/execution.d.ts.map +1 -1
- package/esm/customBackend/execution.js +2 -2
- package/esm/customBackend/execution.js.map +1 -1
- package/esm/customBackend/index.d.ts +3 -3
- package/esm/customBackend/index.d.ts.map +1 -1
- package/esm/customBackend/index.js +2 -2
- package/esm/customBackend/index.js.map +1 -1
- package/esm/customBackend/workspace.d.ts +1 -1
- package/esm/customBackend/workspace.d.ts.map +1 -1
- package/esm/customBackend/workspace.js +1 -1
- package/esm/customBackend/workspace.js.map +1 -1
- package/esm/decoratedBackend/catalog.js +1 -1
- package/esm/decoratedBackend/catalog.js.map +1 -1
- package/esm/decoratedBackend/execution.js +1 -1
- package/esm/decoratedBackend/execution.js.map +1 -1
- package/esm/decoratedBackend/index.js +1 -1
- package/esm/decoratedBackend/index.js.map +1 -1
- package/esm/dummyBackend/index.js +3 -3
- package/esm/dummyBackend/index.js.map +1 -1
- package/esm/eventingBackend/index.js +3 -3
- package/esm/eventingBackend/index.js.map +1 -1
- package/esm/index.d.ts +37 -37
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +35 -35
- package/esm/index.js.map +1 -1
- package/esm/ldmFactories/catalog/attributeFactory.d.ts +4 -4
- package/esm/ldmFactories/catalog/attributeFactory.d.ts.map +1 -1
- package/esm/ldmFactories/catalog/attributeFactory.js +5 -5
- package/esm/ldmFactories/catalog/attributeFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/dateDatasetFactory.d.ts +4 -4
- package/esm/ldmFactories/catalog/dateDatasetFactory.d.ts.map +1 -1
- package/esm/ldmFactories/catalog/dateDatasetFactory.js +5 -5
- package/esm/ldmFactories/catalog/dateDatasetFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/factFactory.d.ts +3 -3
- package/esm/ldmFactories/catalog/factFactory.d.ts.map +1 -1
- package/esm/ldmFactories/catalog/factFactory.js +4 -4
- package/esm/ldmFactories/catalog/factFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/groupFactory.d.ts +1 -1
- package/esm/ldmFactories/catalog/groupFactory.d.ts.map +1 -1
- package/esm/ldmFactories/catalog/groupFactory.js +2 -2
- package/esm/ldmFactories/catalog/groupFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/measureFactory.d.ts +3 -3
- package/esm/ldmFactories/catalog/measureFactory.d.ts.map +1 -1
- package/esm/ldmFactories/catalog/measureFactory.js +4 -4
- package/esm/ldmFactories/catalog/measureFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/insightWidgetFactory.d.ts +2 -2
- package/esm/ldmFactories/dashboard/insightWidgetFactory.d.ts.map +1 -1
- package/esm/ldmFactories/dashboard/insightWidgetFactory.js +2 -2
- package/esm/ldmFactories/dashboard/insightWidgetFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.d.ts +2 -2
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.d.ts.map +1 -1
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.js +3 -3
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/widgetFactory.d.ts +1 -1
- package/esm/ldmFactories/dashboard/widgetFactory.d.ts.map +1 -1
- package/esm/ldmFactories/dashboard/widgetFactory.js +1 -1
- package/esm/ldmFactories/dashboard/widgetFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/attributeFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/attributeFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/attributeFactory.js +3 -3
- package/esm/ldmFactories/metadata/attributeFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/dashboardFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/dashboardFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/dashboardFactory.js +3 -3
- package/esm/ldmFactories/metadata/dashboardFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/dataSetFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/dataSetFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/dataSetFactory.js +3 -3
- package/esm/ldmFactories/metadata/dataSetFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/displayFormFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/displayFormFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/displayFormFactory.js +3 -3
- package/esm/ldmFactories/metadata/displayFormFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/factFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/factFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/factFactory.js +3 -3
- package/esm/ldmFactories/metadata/factFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/factory.d.ts +1 -1
- package/esm/ldmFactories/metadata/factory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/factory.js +1 -1
- package/esm/ldmFactories/metadata/factory.js.map +1 -1
- package/esm/ldmFactories/metadata/measureFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/measureFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/measureFactory.js +3 -3
- package/esm/ldmFactories/metadata/measureFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/variableFactory.d.ts +2 -2
- package/esm/ldmFactories/metadata/variableFactory.d.ts.map +1 -1
- package/esm/ldmFactories/metadata/variableFactory.js +3 -3
- package/esm/ldmFactories/metadata/variableFactory.js.map +1 -1
- package/esm/normalizingBackend/index.d.ts +1 -1
- package/esm/normalizingBackend/index.d.ts.map +1 -1
- package/esm/normalizingBackend/index.js +4 -4
- package/esm/normalizingBackend/index.js.map +1 -1
- package/esm/normalizingBackend/normalizer.d.ts +2 -0
- package/esm/normalizingBackend/normalizer.d.ts.map +1 -1
- package/esm/normalizingBackend/normalizer.js +20 -6
- package/esm/normalizingBackend/normalizer.js.map +1 -1
- package/{dist → esm}/sdk-backend-base.d.ts +2 -0
- package/esm/toolkit/execution.d.ts +1 -1
- package/esm/toolkit/execution.d.ts.map +1 -1
- package/esm/toolkit/execution.js +1 -1
- package/esm/toolkit/execution.js.map +1 -1
- package/esm/toolkit/paging.js +4 -4
- package/esm/toolkit/paging.js.map +1 -1
- package/esm/tsdoc-metadata.json +1 -1
- package/esm/workspaceSettingsBackend/index.js +3 -3
- package/esm/workspaceSettingsBackend/index.js.map +1 -1
- package/package.json +25 -35
- package/dist/cachingBackend/index.d.ts +0 -230
- package/dist/cachingBackend/index.d.ts.map +0 -1
- package/dist/cachingBackend/index.js +0 -579
- package/dist/cachingBackend/index.js.map +0 -1
- package/dist/convertors/fromBackend/afm/result.d.ts +0 -18
- package/dist/convertors/fromBackend/afm/result.d.ts.map +0 -1
- package/dist/convertors/fromBackend/afm/result.js +0 -28
- package/dist/convertors/fromBackend/afm/result.js.map +0 -1
- package/dist/customBackend/config.d.ts +0 -151
- package/dist/customBackend/config.d.ts.map +0 -1
- package/dist/customBackend/config.js +0 -3
- package/dist/customBackend/config.js.map +0 -1
- package/dist/customBackend/execution.d.ts +0 -14
- package/dist/customBackend/execution.d.ts.map +0 -1
- package/dist/customBackend/execution.js +0 -139
- package/dist/customBackend/execution.js.map +0 -1
- package/dist/customBackend/index.d.ts +0 -47
- package/dist/customBackend/index.d.ts.map +0 -1
- package/dist/customBackend/index.js +0 -150
- package/dist/customBackend/index.js.map +0 -1
- package/dist/customBackend/workspace.d.ts +0 -29
- package/dist/customBackend/workspace.d.ts.map +0 -1
- package/dist/customBackend/workspace.js +0 -78
- package/dist/customBackend/workspace.js.map +0 -1
- package/dist/decoratedBackend/attributes.d.ts +0 -19
- package/dist/decoratedBackend/attributes.d.ts.map +0 -1
- package/dist/decoratedBackend/attributes.js +0 -41
- package/dist/decoratedBackend/attributes.js.map +0 -1
- package/dist/decoratedBackend/catalog.d.ts +0 -46
- package/dist/decoratedBackend/catalog.d.ts.map +0 -1
- package/dist/decoratedBackend/catalog.js +0 -70
- package/dist/decoratedBackend/catalog.js.map +0 -1
- package/dist/decoratedBackend/dashboards.d.ts +0 -40
- package/dist/decoratedBackend/dashboards.d.ts.map +0 -1
- package/dist/decoratedBackend/dashboards.js +0 -101
- package/dist/decoratedBackend/dashboards.js.map +0 -1
- package/dist/decoratedBackend/elements.d.ts +0 -66
- package/dist/decoratedBackend/elements.d.ts.map +0 -1
- package/dist/decoratedBackend/elements.js +0 -81
- package/dist/decoratedBackend/elements.js.map +0 -1
- package/dist/decoratedBackend/execution.d.ts +0 -107
- package/dist/decoratedBackend/execution.d.ts.map +0 -1
- package/dist/decoratedBackend/execution.js +0 -152
- package/dist/decoratedBackend/execution.js.map +0 -1
- package/dist/decoratedBackend/index.d.ts +0 -54
- package/dist/decoratedBackend/index.d.ts.map +0 -1
- package/dist/decoratedBackend/index.js +0 -181
- package/dist/decoratedBackend/index.js.map +0 -1
- package/dist/decoratedBackend/securitySettings.d.ts +0 -12
- package/dist/decoratedBackend/securitySettings.d.ts.map +0 -1
- package/dist/decoratedBackend/securitySettings.js +0 -21
- package/dist/decoratedBackend/securitySettings.js.map +0 -1
- package/dist/decoratedBackend/workspaceSettings.d.ts +0 -12
- package/dist/decoratedBackend/workspaceSettings.d.ts.map +0 -1
- package/dist/decoratedBackend/workspaceSettings.js +0 -22
- package/dist/decoratedBackend/workspaceSettings.js.map +0 -1
- package/dist/dummyBackend/index.d.ts +0 -62
- package/dist/dummyBackend/index.d.ts.map +0 -1
- package/dist/dummyBackend/index.js +0 -729
- package/dist/dummyBackend/index.js.map +0 -1
- package/dist/eventingBackend/index.d.ts +0 -74
- package/dist/eventingBackend/index.d.ts.map +0 -1
- package/dist/eventingBackend/index.js +0 -84
- package/dist/eventingBackend/index.js.map +0 -1
- package/dist/index.d.ts +0 -48
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -117
- package/dist/index.js.map +0 -1
- package/dist/ldmFactories/builder.d.ts +0 -75
- package/dist/ldmFactories/builder.d.ts.map +0 -1
- package/dist/ldmFactories/builder.js +0 -59
- package/dist/ldmFactories/builder.js.map +0 -1
- package/dist/ldmFactories/catalog/attributeFactory.d.ts +0 -27
- package/dist/ldmFactories/catalog/attributeFactory.d.ts.map +0 -1
- package/dist/ldmFactories/catalog/attributeFactory.js +0 -63
- package/dist/ldmFactories/catalog/attributeFactory.js.map +0 -1
- package/dist/ldmFactories/catalog/dateDatasetFactory.d.ts +0 -44
- package/dist/ldmFactories/catalog/dateDatasetFactory.d.ts.map +0 -1
- package/dist/ldmFactories/catalog/dateDatasetFactory.js +0 -87
- package/dist/ldmFactories/catalog/dateDatasetFactory.js.map +0 -1
- package/dist/ldmFactories/catalog/factFactory.d.ts +0 -22
- package/dist/ldmFactories/catalog/factFactory.d.ts.map +0 -1
- package/dist/ldmFactories/catalog/factFactory.js +0 -38
- package/dist/ldmFactories/catalog/factFactory.js.map +0 -1
- package/dist/ldmFactories/catalog/groupFactory.d.ts +0 -38
- package/dist/ldmFactories/catalog/groupFactory.d.ts.map +0 -1
- package/dist/ldmFactories/catalog/groupFactory.js +0 -47
- package/dist/ldmFactories/catalog/groupFactory.js.map +0 -1
- package/dist/ldmFactories/catalog/measureFactory.d.ts +0 -23
- package/dist/ldmFactories/catalog/measureFactory.d.ts.map +0 -1
- package/dist/ldmFactories/catalog/measureFactory.js +0 -45
- package/dist/ldmFactories/catalog/measureFactory.js.map +0 -1
- package/dist/ldmFactories/dashboard/insightWidgetFactory.d.ts +0 -31
- package/dist/ldmFactories/dashboard/insightWidgetFactory.d.ts.map +0 -1
- package/dist/ldmFactories/dashboard/insightWidgetFactory.js +0 -45
- package/dist/ldmFactories/dashboard/insightWidgetFactory.js.map +0 -1
- package/dist/ldmFactories/dashboard/kpiWidgetFactory.d.ts +0 -34
- package/dist/ldmFactories/dashboard/kpiWidgetFactory.d.ts.map +0 -1
- package/dist/ldmFactories/dashboard/kpiWidgetFactory.js +0 -55
- package/dist/ldmFactories/dashboard/kpiWidgetFactory.js.map +0 -1
- package/dist/ldmFactories/dashboard/widgetFactory.d.ts +0 -31
- package/dist/ldmFactories/dashboard/widgetFactory.d.ts.map +0 -1
- package/dist/ldmFactories/dashboard/widgetFactory.js +0 -29
- package/dist/ldmFactories/dashboard/widgetFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/attributeFactory.d.ts +0 -24
- package/dist/ldmFactories/metadata/attributeFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/attributeFactory.js +0 -44
- package/dist/ldmFactories/metadata/attributeFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/dashboardFactory.d.ts +0 -21
- package/dist/ldmFactories/metadata/dashboardFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/dashboardFactory.js +0 -28
- package/dist/ldmFactories/metadata/dashboardFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/dataSetFactory.d.ts +0 -21
- package/dist/ldmFactories/metadata/dataSetFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/dataSetFactory.js +0 -28
- package/dist/ldmFactories/metadata/dataSetFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/displayFormFactory.d.ts +0 -24
- package/dist/ldmFactories/metadata/displayFormFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/displayFormFactory.js +0 -40
- package/dist/ldmFactories/metadata/displayFormFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/factFactory.d.ts +0 -21
- package/dist/ldmFactories/metadata/factFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/factFactory.js +0 -28
- package/dist/ldmFactories/metadata/factFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/factory.d.ts +0 -74
- package/dist/ldmFactories/metadata/factory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/factory.js +0 -43
- package/dist/ldmFactories/metadata/factory.js.map +0 -1
- package/dist/ldmFactories/metadata/measureFactory.d.ts +0 -24
- package/dist/ldmFactories/metadata/measureFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/measureFactory.js +0 -40
- package/dist/ldmFactories/metadata/measureFactory.js.map +0 -1
- package/dist/ldmFactories/metadata/variableFactory.d.ts +0 -21
- package/dist/ldmFactories/metadata/variableFactory.d.ts.map +0 -1
- package/dist/ldmFactories/metadata/variableFactory.js +0 -28
- package/dist/ldmFactories/metadata/variableFactory.js.map +0 -1
- package/dist/normalizingBackend/index.d.ts +0 -46
- package/dist/normalizingBackend/index.d.ts.map +0 -1
- package/dist/normalizingBackend/index.js +0 -174
- package/dist/normalizingBackend/index.js.map +0 -1
- package/dist/normalizingBackend/normalizer.d.ts +0 -131
- package/dist/normalizingBackend/normalizer.d.ts.map +0 -1
- package/dist/normalizingBackend/normalizer.js +0 -352
- package/dist/normalizingBackend/normalizer.js.map +0 -1
- package/dist/toolkit/auth.d.ts +0 -83
- package/dist/toolkit/auth.d.ts.map +0 -1
- package/dist/toolkit/auth.js +0 -106
- package/dist/toolkit/auth.js.map +0 -1
- package/dist/toolkit/backend.d.ts +0 -8
- package/dist/toolkit/backend.d.ts.map +0 -1
- package/dist/toolkit/backend.js +0 -3
- package/dist/toolkit/backend.js.map +0 -1
- package/dist/toolkit/execution.d.ts +0 -54
- package/dist/toolkit/execution.d.ts.map +0 -1
- package/dist/toolkit/execution.js +0 -88
- package/dist/toolkit/execution.js.map +0 -1
- package/dist/toolkit/paging.d.ts +0 -52
- package/dist/toolkit/paging.d.ts.map +0 -1
- package/dist/toolkit/paging.js +0 -109
- package/dist/toolkit/paging.js.map +0 -1
- package/dist/toolkit/pluginUrlValidation.d.ts +0 -9
- package/dist/toolkit/pluginUrlValidation.d.ts.map +0 -1
- package/dist/toolkit/pluginUrlValidation.js +0 -50
- package/dist/toolkit/pluginUrlValidation.js.map +0 -1
- package/dist/workspaceSettingsBackend/index.d.ts +0 -53
- package/dist/workspaceSettingsBackend/index.d.ts.map +0 -1
- package/dist/workspaceSettingsBackend/index.js +0 -42
- package/dist/workspaceSettingsBackend/index.js.map +0 -1
|
@@ -1,579 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.withCaching = exports.RecommendedCachingConfiguration = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const decoratedBackend_1 = require("../decoratedBackend");
|
|
6
|
-
const lru_cache_1 = tslib_1.__importDefault(require("lru-cache"));
|
|
7
|
-
const securitySettings_1 = require("../decoratedBackend/securitySettings");
|
|
8
|
-
const execution_1 = require("../decoratedBackend/execution");
|
|
9
|
-
const catalog_1 = require("../decoratedBackend/catalog");
|
|
10
|
-
const elements_1 = require("../decoratedBackend/elements");
|
|
11
|
-
const json_stable_stringify_1 = tslib_1.__importDefault(require("json-stable-stringify"));
|
|
12
|
-
const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
|
|
13
|
-
const first_1 = tslib_1.__importDefault(require("lodash/first"));
|
|
14
|
-
const flow_1 = tslib_1.__importDefault(require("lodash/flow"));
|
|
15
|
-
const identity_1 = tslib_1.__importDefault(require("lodash/identity"));
|
|
16
|
-
const ts_invariant_1 = tslib_1.__importDefault(require("ts-invariant"));
|
|
17
|
-
const partition_1 = tslib_1.__importDefault(require("lodash/partition"));
|
|
18
|
-
const spark_md5_1 = tslib_1.__importDefault(require("spark-md5"));
|
|
19
|
-
const sdk_model_1 = require("@gooddata/sdk-model");
|
|
20
|
-
const attributes_1 = require("../decoratedBackend/attributes");
|
|
21
|
-
const workspaceSettings_1 = require("../decoratedBackend/workspaceSettings");
|
|
22
|
-
//
|
|
23
|
-
// Execution caching
|
|
24
|
-
//
|
|
25
|
-
class WithExecutionCaching extends execution_1.DecoratedPreparedExecution {
|
|
26
|
-
constructor(decorated, ctx) {
|
|
27
|
-
super(decorated);
|
|
28
|
-
this.ctx = ctx;
|
|
29
|
-
this.execute = async () => {
|
|
30
|
-
const cacheKey = this.fingerprint();
|
|
31
|
-
const cache = this.ctx.caches.execution;
|
|
32
|
-
let cacheEntry = cache.get(cacheKey);
|
|
33
|
-
if (!cacheEntry) {
|
|
34
|
-
const result = super
|
|
35
|
-
.execute()
|
|
36
|
-
.then((res) => {
|
|
37
|
-
return new WithExecutionResultCaching(res, this.createNew, this.ctx);
|
|
38
|
-
})
|
|
39
|
-
.catch((e) => {
|
|
40
|
-
cache.delete(cacheKey);
|
|
41
|
-
throw e;
|
|
42
|
-
});
|
|
43
|
-
cacheEntry = { result };
|
|
44
|
-
cache.set(cacheKey, cacheEntry);
|
|
45
|
-
}
|
|
46
|
-
return new DefinitionSanitizingExecutionResult(await cacheEntry.result, this.createNew, this.definition);
|
|
47
|
-
};
|
|
48
|
-
this.createNew = (decorated) => {
|
|
49
|
-
return new WithExecutionCaching(decorated, this.ctx);
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* This DataView decorator makes sure that definition used in it is the same as the definition in the result.
|
|
55
|
-
*
|
|
56
|
-
* See the usage of this class in {@link DefinitionSanitizingExecutionResult} for more.
|
|
57
|
-
*/
|
|
58
|
-
class DefinitionSanitizingDataView extends execution_1.DecoratedDataView {
|
|
59
|
-
constructor(decorated, result) {
|
|
60
|
-
super(decorated, result);
|
|
61
|
-
this.definition = result.definition;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* This ExecutionResult decorator makes sure that definitions used throughout the result are set
|
|
66
|
-
* to the definitionOverride provided. This is useful with caching because different definitions may yield
|
|
67
|
-
* the same cache key, but having the proper definition in the returned execution result is critical:
|
|
68
|
-
* the definitions in the result must match the one which was used to request it.
|
|
69
|
-
* This however is not always the case when using cached results, so we need to ensure it explicitly.
|
|
70
|
-
*
|
|
71
|
-
* See the usage of this class in {@link WithExecutionCaching} for more.
|
|
72
|
-
*/
|
|
73
|
-
class DefinitionSanitizingExecutionResult extends execution_1.DecoratedExecutionResult {
|
|
74
|
-
constructor(decorated, wrapper, definitionOverride) {
|
|
75
|
-
super(decorated, wrapper);
|
|
76
|
-
this.readAll = async () => {
|
|
77
|
-
return this.withSanitizedDefinition(await super.readAll());
|
|
78
|
-
};
|
|
79
|
-
this.readWindow = async (offset, size) => {
|
|
80
|
-
return this.withSanitizedDefinition(await super.readWindow(offset, size));
|
|
81
|
-
};
|
|
82
|
-
this.withSanitizedDefinition = (original) => {
|
|
83
|
-
return new DefinitionSanitizingDataView(original, this);
|
|
84
|
-
};
|
|
85
|
-
this.definition = definitionOverride;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
function windowKey(offset, size) {
|
|
89
|
-
return `o(${offset.join(",")})_s(${size.join(",")})`;
|
|
90
|
-
}
|
|
91
|
-
class WithExecutionResultCaching extends execution_1.DecoratedExecutionResult {
|
|
92
|
-
constructor(decorated, wrapper, ctx) {
|
|
93
|
-
super(decorated, wrapper);
|
|
94
|
-
this.ctx = ctx;
|
|
95
|
-
this.readAll = () => {
|
|
96
|
-
if (!this.allData) {
|
|
97
|
-
this.allData = super.readAll().catch((e) => {
|
|
98
|
-
this.allData = undefined;
|
|
99
|
-
throw e;
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
return this.allData;
|
|
103
|
-
};
|
|
104
|
-
this.readWindow = (offset, size) => {
|
|
105
|
-
if (!this.windows) {
|
|
106
|
-
return super.readWindow(offset, size);
|
|
107
|
-
}
|
|
108
|
-
const cacheKey = windowKey(offset, size);
|
|
109
|
-
let window = this.windows.get(cacheKey);
|
|
110
|
-
if (!window) {
|
|
111
|
-
window = super.readWindow(offset, size).catch((e) => {
|
|
112
|
-
if (this.windows) {
|
|
113
|
-
this.windows.delete(cacheKey);
|
|
114
|
-
}
|
|
115
|
-
throw e;
|
|
116
|
-
});
|
|
117
|
-
this.windows.set(cacheKey, window);
|
|
118
|
-
}
|
|
119
|
-
return window;
|
|
120
|
-
};
|
|
121
|
-
if (cachingEnabled(this.ctx.config.maxResultWindows)) {
|
|
122
|
-
this.windows = new lru_cache_1.default({ max: this.ctx.config.maxResultWindows });
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
//
|
|
127
|
-
// Catalog caching
|
|
128
|
-
//
|
|
129
|
-
function optionsKey(options) {
|
|
130
|
-
return (0, json_stable_stringify_1.default)(options);
|
|
131
|
-
}
|
|
132
|
-
class WithCatalogCaching extends catalog_1.DecoratedWorkspaceCatalogFactory {
|
|
133
|
-
constructor(decorated, ctx) {
|
|
134
|
-
super(decorated);
|
|
135
|
-
this.ctx = ctx;
|
|
136
|
-
this.load = () => {
|
|
137
|
-
const cache = this.getOrCreateWorkspaceEntry(this.workspace).catalogForOptions;
|
|
138
|
-
const cacheKey = optionsKey(this.options);
|
|
139
|
-
let catalog = cache.get(cacheKey);
|
|
140
|
-
if (!catalog) {
|
|
141
|
-
catalog = super.load().catch((e) => {
|
|
142
|
-
cache.delete(cacheKey);
|
|
143
|
-
throw e;
|
|
144
|
-
});
|
|
145
|
-
cache.set(cacheKey, catalog);
|
|
146
|
-
}
|
|
147
|
-
return catalog;
|
|
148
|
-
};
|
|
149
|
-
this.createNew = (decorated) => {
|
|
150
|
-
return new WithCatalogCaching(decorated, this.ctx);
|
|
151
|
-
};
|
|
152
|
-
this.getOrCreateWorkspaceEntry = (workspace) => {
|
|
153
|
-
const cache = this.ctx.caches.workspaceCatalogs;
|
|
154
|
-
let cacheEntry = cache.get(workspace);
|
|
155
|
-
if (!cacheEntry) {
|
|
156
|
-
cacheEntry = {
|
|
157
|
-
catalogForOptions: new lru_cache_1.default({
|
|
158
|
-
max: this.ctx.config.maxCatalogOptions,
|
|
159
|
-
}),
|
|
160
|
-
};
|
|
161
|
-
cache.set(workspace, cacheEntry);
|
|
162
|
-
}
|
|
163
|
-
return cacheEntry;
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
//
|
|
168
|
-
// Organization security settings caching
|
|
169
|
-
//
|
|
170
|
-
function validUrlInContextKey(url, context) {
|
|
171
|
-
return `${context}_${(0, json_stable_stringify_1.default)(url)}`;
|
|
172
|
-
}
|
|
173
|
-
class WithSecuritySettingsCaching extends securitySettings_1.DecoratedSecuritySettingsService {
|
|
174
|
-
constructor(decorated, ctx) {
|
|
175
|
-
super(decorated);
|
|
176
|
-
this.ctx = ctx;
|
|
177
|
-
this.isUrlValid = (url, context) => {
|
|
178
|
-
const cache = this.getOrCreateSecuritySettingsEntry(this.scope).valid;
|
|
179
|
-
const cacheKey = validUrlInContextKey(url, context);
|
|
180
|
-
let result = cache.get(cacheKey);
|
|
181
|
-
if (!result) {
|
|
182
|
-
result = super.isUrlValid(url, context).catch((e) => {
|
|
183
|
-
cache.delete(cacheKey);
|
|
184
|
-
throw e;
|
|
185
|
-
});
|
|
186
|
-
cache.set(cacheKey, result);
|
|
187
|
-
}
|
|
188
|
-
return result;
|
|
189
|
-
};
|
|
190
|
-
this.isDashboardPluginUrlValid = (url, workspace) => {
|
|
191
|
-
const scope = `plugins_${workspace}`;
|
|
192
|
-
const cache = this.getOrCreateSecuritySettingsEntry(scope).valid;
|
|
193
|
-
let result = cache.get(url);
|
|
194
|
-
if (!result) {
|
|
195
|
-
result = super.isDashboardPluginUrlValid(url, workspace).catch((e) => {
|
|
196
|
-
cache.delete(url);
|
|
197
|
-
throw e;
|
|
198
|
-
});
|
|
199
|
-
cache.set(url, result);
|
|
200
|
-
}
|
|
201
|
-
return result;
|
|
202
|
-
};
|
|
203
|
-
this.getOrCreateSecuritySettingsEntry = (scope) => {
|
|
204
|
-
const cache = this.ctx.caches.securitySettings;
|
|
205
|
-
let cacheEntry = cache.get(scope);
|
|
206
|
-
if (!cacheEntry) {
|
|
207
|
-
cacheEntry = {
|
|
208
|
-
valid: new lru_cache_1.default({
|
|
209
|
-
max: this.ctx.config.maxSecuritySettingsOrgUrls,
|
|
210
|
-
ttl: this.ctx.config.maxSecuritySettingsOrgUrlsAge,
|
|
211
|
-
}),
|
|
212
|
-
};
|
|
213
|
-
cache.set(scope, cacheEntry);
|
|
214
|
-
}
|
|
215
|
-
return cacheEntry;
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
class WithWorkspaceSettingsCaching extends workspaceSettings_1.DecoratedWorkspaceSettingsService {
|
|
220
|
-
constructor(decorated, ctx, workspace) {
|
|
221
|
-
super(decorated);
|
|
222
|
-
this.ctx = ctx;
|
|
223
|
-
this.workspace = workspace;
|
|
224
|
-
this.getSettings = () => {
|
|
225
|
-
const cache = this.getOrCreateWorkspaceEntry(this.workspace).workspaceSettings;
|
|
226
|
-
const cacheKey = this.workspace;
|
|
227
|
-
let workspaceSettings = cache.get(cacheKey);
|
|
228
|
-
if (!workspaceSettings) {
|
|
229
|
-
workspaceSettings = super.getSettings().catch((e) => {
|
|
230
|
-
cache.delete(cacheKey);
|
|
231
|
-
throw e;
|
|
232
|
-
});
|
|
233
|
-
cache.set(cacheKey, workspaceSettings);
|
|
234
|
-
}
|
|
235
|
-
return workspaceSettings;
|
|
236
|
-
};
|
|
237
|
-
this.getOrCreateWorkspaceEntry = (workspace) => {
|
|
238
|
-
const cache = this.ctx.caches.workspaceSettings;
|
|
239
|
-
let cacheEntry = cache.get(workspace);
|
|
240
|
-
if (!cacheEntry) {
|
|
241
|
-
cacheEntry = {
|
|
242
|
-
userWorkspaceSettings: new lru_cache_1.default({
|
|
243
|
-
max: this.ctx.config.maxWorkspaceSettings,
|
|
244
|
-
}),
|
|
245
|
-
workspaceSettings: new lru_cache_1.default({
|
|
246
|
-
max: this.ctx.config.maxWorkspaceSettings,
|
|
247
|
-
}),
|
|
248
|
-
};
|
|
249
|
-
cache.set(workspace, cacheEntry);
|
|
250
|
-
}
|
|
251
|
-
return cacheEntry;
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
getSettingsForCurrentUser() {
|
|
255
|
-
const cache = this.getOrCreateWorkspaceEntry(this.workspace).userWorkspaceSettings;
|
|
256
|
-
const cacheKey = this.workspace; // we assume that the current user does not change over the life span of the backend instance
|
|
257
|
-
let userWorkspaceSettings = cache.get(cacheKey);
|
|
258
|
-
if (!userWorkspaceSettings) {
|
|
259
|
-
userWorkspaceSettings = super.getSettingsForCurrentUser().catch((e) => {
|
|
260
|
-
cache.delete(cacheKey);
|
|
261
|
-
throw e;
|
|
262
|
-
});
|
|
263
|
-
cache.set(cacheKey, userWorkspaceSettings);
|
|
264
|
-
}
|
|
265
|
-
return userWorkspaceSettings;
|
|
266
|
-
}
|
|
267
|
-
async setLocale(locale) {
|
|
268
|
-
return super.setLocale(locale);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
//
|
|
272
|
-
// Attributes caching
|
|
273
|
-
//
|
|
274
|
-
function refMatchesMdObject(ref, mdObject, type) {
|
|
275
|
-
return ((0, sdk_model_1.areObjRefsEqual)(ref, mdObject.ref) ||
|
|
276
|
-
(0, sdk_model_1.areObjRefsEqual)(ref, (0, sdk_model_1.idRef)(mdObject.id, type)) ||
|
|
277
|
-
(0, sdk_model_1.areObjRefsEqual)(ref, (0, sdk_model_1.uriRef)(mdObject.uri)));
|
|
278
|
-
}
|
|
279
|
-
const firstDefined = (0, flow_1.default)(compact_1.default, first_1.default);
|
|
280
|
-
function elementsCacheKey(ref, settings) {
|
|
281
|
-
return new spark_md5_1.default().append((0, sdk_model_1.objRefToString)(ref)).append((0, json_stable_stringify_1.default)(settings)).end();
|
|
282
|
-
}
|
|
283
|
-
function getOrCreateAttributeCache(ctx, workspace) {
|
|
284
|
-
const cache = ctx.caches.workspaceAttributes;
|
|
285
|
-
let cacheEntry = cache.get(workspace);
|
|
286
|
-
if (!cacheEntry) {
|
|
287
|
-
cacheEntry = {
|
|
288
|
-
displayForms: new lru_cache_1.default({
|
|
289
|
-
max: ctx.config.maxAttributeDisplayFormsPerWorkspace,
|
|
290
|
-
}),
|
|
291
|
-
attributesByDisplayForms: new lru_cache_1.default({
|
|
292
|
-
max: ctx.config.maxAttributesPerWorkspace,
|
|
293
|
-
}),
|
|
294
|
-
attributeElementResults: cachingEnabled(ctx.config.maxAttributeElementResultsPerWorkspace)
|
|
295
|
-
? new lru_cache_1.default({
|
|
296
|
-
max: ctx.config.maxAttributeElementResultsPerWorkspace,
|
|
297
|
-
})
|
|
298
|
-
: undefined,
|
|
299
|
-
};
|
|
300
|
-
cache.set(workspace, cacheEntry);
|
|
301
|
-
}
|
|
302
|
-
return cacheEntry;
|
|
303
|
-
}
|
|
304
|
-
class CachedElementsQuery extends elements_1.DecoratedElementsQuery {
|
|
305
|
-
constructor(decorated, ctx, workspace, ref, settings = {}) {
|
|
306
|
-
super(decorated, settings);
|
|
307
|
-
this.ctx = ctx;
|
|
308
|
-
this.workspace = workspace;
|
|
309
|
-
this.ref = ref;
|
|
310
|
-
this.query = async () => {
|
|
311
|
-
var _a;
|
|
312
|
-
const canCache = !((_a = this.settings.options) === null || _a === void 0 ? void 0 : _a.filter);
|
|
313
|
-
if (!canCache) {
|
|
314
|
-
return super.query();
|
|
315
|
-
}
|
|
316
|
-
const cache = getOrCreateAttributeCache(this.ctx, this.workspace).attributeElementResults;
|
|
317
|
-
(0, ts_invariant_1.default)(cache, "inconsistent attribute element cache config");
|
|
318
|
-
const cacheKey = elementsCacheKey(this.ref, this.settings);
|
|
319
|
-
let result = cache.get(cacheKey);
|
|
320
|
-
if (!result) {
|
|
321
|
-
result = super.query().catch((e) => {
|
|
322
|
-
cache.delete(cacheKey);
|
|
323
|
-
throw e;
|
|
324
|
-
});
|
|
325
|
-
cache.set(cacheKey, result);
|
|
326
|
-
}
|
|
327
|
-
return result;
|
|
328
|
-
};
|
|
329
|
-
}
|
|
330
|
-
createNew(decorated, settings) {
|
|
331
|
-
return new CachedElementsQuery(decorated, this.ctx, this.workspace, this.ref, settings);
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
class CachedElementsQueryFactory extends elements_1.DecoratedElementsQueryFactory {
|
|
335
|
-
constructor(decorated, ctx, workspace) {
|
|
336
|
-
super(decorated);
|
|
337
|
-
this.ctx = ctx;
|
|
338
|
-
this.workspace = workspace;
|
|
339
|
-
}
|
|
340
|
-
forDisplayForm(ref) {
|
|
341
|
-
const decorated = this.decorated.forDisplayForm(ref);
|
|
342
|
-
return new CachedElementsQuery(decorated, this.ctx, this.workspace, ref);
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
class WithAttributesCaching extends attributes_1.DecoratedWorkspaceAttributesService {
|
|
346
|
-
constructor(decorated, ctx, workspace) {
|
|
347
|
-
super(decorated);
|
|
348
|
-
this.ctx = ctx;
|
|
349
|
-
this.workspace = workspace;
|
|
350
|
-
this.getAttributeDisplayForm = (ref) => {
|
|
351
|
-
const cache = getOrCreateAttributeCache(this.ctx, this.workspace).displayForms;
|
|
352
|
-
const idCacheKey = (0, sdk_model_1.isIdentifierRef)(ref) ? ref.identifier : undefined;
|
|
353
|
-
const uriCacheKey = (0, sdk_model_1.isUriRef)(ref) ? ref.uri : undefined;
|
|
354
|
-
let cacheItem = firstDefined([idCacheKey, uriCacheKey].map((key) => key && cache.get(key)));
|
|
355
|
-
if (!cacheItem) {
|
|
356
|
-
cacheItem = super.getAttributeDisplayForm(ref).catch((e) => {
|
|
357
|
-
if (idCacheKey) {
|
|
358
|
-
cache.delete(idCacheKey);
|
|
359
|
-
}
|
|
360
|
-
if (uriCacheKey) {
|
|
361
|
-
cache.delete(uriCacheKey);
|
|
362
|
-
}
|
|
363
|
-
throw e;
|
|
364
|
-
});
|
|
365
|
-
if (idCacheKey) {
|
|
366
|
-
cache.set(idCacheKey, cacheItem);
|
|
367
|
-
}
|
|
368
|
-
if (uriCacheKey) {
|
|
369
|
-
cache.set(uriCacheKey, cacheItem);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
return cacheItem;
|
|
373
|
-
};
|
|
374
|
-
this.getAttributeDisplayForms = async (refs) => {
|
|
375
|
-
const cache = getOrCreateAttributeCache(this.ctx, this.workspace).displayForms;
|
|
376
|
-
// grab a reference to the cache results as soon as possible in case they would get evicted while loading the ones with missing data in cache
|
|
377
|
-
// then would might not be able to call cache.get again and be guaranteed to get the data
|
|
378
|
-
const refsWithCacheResults = refs.map((ref) => {
|
|
379
|
-
const idCacheKey = (0, sdk_model_1.isIdentifierRef)(ref) ? ref.identifier : undefined;
|
|
380
|
-
const uriCacheKey = (0, sdk_model_1.isUriRef)(ref) ? ref.uri : undefined;
|
|
381
|
-
const cacheHit = firstDefined([idCacheKey, uriCacheKey].map((key) => key && cache.get(key)));
|
|
382
|
-
return { ref, cacheHit };
|
|
383
|
-
});
|
|
384
|
-
const [withCacheHits, withoutCacheHits] = (0, partition_1.default)(refsWithCacheResults, ({ cacheHit }) => !!cacheHit);
|
|
385
|
-
const refsToLoad = withoutCacheHits.map((item) => item.ref);
|
|
386
|
-
const [alreadyInCache, loadedFromServer] = await Promise.all([
|
|
387
|
-
// await the stuff from cache, we need the data available (we cannot just return the promises)
|
|
388
|
-
Promise.all(withCacheHits.map((item) => item.cacheHit)),
|
|
389
|
-
// load items not in cache using the bulk operation
|
|
390
|
-
this.decorated.getAttributeDisplayForms(refsToLoad),
|
|
391
|
-
]);
|
|
392
|
-
// save newly loaded to cache for future reference
|
|
393
|
-
loadedFromServer.forEach((loaded) => {
|
|
394
|
-
const promisifiedResult = Promise.resolve(loaded);
|
|
395
|
-
// save the cache item for both types of refs
|
|
396
|
-
cache.set(loaded.id, promisifiedResult);
|
|
397
|
-
cache.set(loaded.uri, promisifiedResult);
|
|
398
|
-
});
|
|
399
|
-
const loadedRefs = loadedFromServer.map((item) => item.ref);
|
|
400
|
-
const outputRefs = this.ctx.capabilities.allowsInconsistentRelations
|
|
401
|
-
? skipMissingReferences(refs, refsToLoad, loadedRefs)
|
|
402
|
-
: refs;
|
|
403
|
-
// reconstruct the original ordering
|
|
404
|
-
const candidates = [...loadedFromServer, ...alreadyInCache];
|
|
405
|
-
return outputRefs.map((ref) => {
|
|
406
|
-
const match = candidates.find((item) => refMatchesMdObject(ref, item, "displayForm"));
|
|
407
|
-
// if this bombs, some data got lost in the process
|
|
408
|
-
(0, ts_invariant_1.default)(match);
|
|
409
|
-
return match;
|
|
410
|
-
});
|
|
411
|
-
};
|
|
412
|
-
this.getAttributeByDisplayForm = async (ref) => {
|
|
413
|
-
const cache = getOrCreateAttributeCache(this.ctx, this.workspace).attributesByDisplayForms;
|
|
414
|
-
const idCacheKey = (0, sdk_model_1.isIdentifierRef)(ref) ? ref.identifier : undefined;
|
|
415
|
-
const uriCacheKey = (0, sdk_model_1.isUriRef)(ref) ? ref.uri : undefined;
|
|
416
|
-
let cacheItem = firstDefined([idCacheKey, uriCacheKey].map((key) => key && cache.get(key)));
|
|
417
|
-
if (!cacheItem) {
|
|
418
|
-
// eslint-disable-next-line sonarjs/no-identical-functions
|
|
419
|
-
cacheItem = super.getAttributeByDisplayForm(ref).catch((e) => {
|
|
420
|
-
if (idCacheKey) {
|
|
421
|
-
cache.delete(idCacheKey);
|
|
422
|
-
}
|
|
423
|
-
if (uriCacheKey) {
|
|
424
|
-
cache.delete(uriCacheKey);
|
|
425
|
-
}
|
|
426
|
-
throw e;
|
|
427
|
-
});
|
|
428
|
-
if (idCacheKey) {
|
|
429
|
-
cache.set(idCacheKey, cacheItem);
|
|
430
|
-
}
|
|
431
|
-
if (uriCacheKey) {
|
|
432
|
-
cache.set(uriCacheKey, cacheItem);
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
return cacheItem;
|
|
436
|
-
};
|
|
437
|
-
}
|
|
438
|
-
elements() {
|
|
439
|
-
const decorated = this.decorated.elements();
|
|
440
|
-
return cachingEnabled(this.ctx.config.maxAttributeElementResultsPerWorkspace)
|
|
441
|
-
? new CachedElementsQueryFactory(decorated, this.ctx, this.workspace)
|
|
442
|
-
: decorated;
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
//
|
|
446
|
-
//
|
|
447
|
-
//
|
|
448
|
-
function cachedExecutions(ctx) {
|
|
449
|
-
return (original) => new execution_1.DecoratedExecutionFactory(original, (execution) => new WithExecutionCaching(execution, ctx));
|
|
450
|
-
}
|
|
451
|
-
function cachedCatalog(ctx) {
|
|
452
|
-
return (original) => new WithCatalogCaching(original, ctx);
|
|
453
|
-
}
|
|
454
|
-
function cachedSecuritySettings(ctx) {
|
|
455
|
-
return (original) => new WithSecuritySettingsCaching(original, ctx);
|
|
456
|
-
}
|
|
457
|
-
function cachedWorkspaceSettings(ctx) {
|
|
458
|
-
return (original, workspace) => new WithWorkspaceSettingsCaching(original, ctx, workspace);
|
|
459
|
-
}
|
|
460
|
-
function cachedAttributes(ctx) {
|
|
461
|
-
return (original, workspace) => new WithAttributesCaching(original, ctx, workspace);
|
|
462
|
-
}
|
|
463
|
-
function cachingEnabled(desiredSize) {
|
|
464
|
-
return desiredSize !== undefined && desiredSize > 0;
|
|
465
|
-
}
|
|
466
|
-
function cacheControl(ctx) {
|
|
467
|
-
const control = {
|
|
468
|
-
resetExecutions: () => {
|
|
469
|
-
var _a;
|
|
470
|
-
(_a = ctx.caches.execution) === null || _a === void 0 ? void 0 : _a.clear();
|
|
471
|
-
},
|
|
472
|
-
resetCatalogs: () => {
|
|
473
|
-
var _a;
|
|
474
|
-
(_a = ctx.caches.workspaceCatalogs) === null || _a === void 0 ? void 0 : _a.clear();
|
|
475
|
-
},
|
|
476
|
-
resetSecuritySettings: () => {
|
|
477
|
-
var _a;
|
|
478
|
-
(_a = ctx.caches.securitySettings) === null || _a === void 0 ? void 0 : _a.clear();
|
|
479
|
-
},
|
|
480
|
-
resetAttributes: () => {
|
|
481
|
-
var _a;
|
|
482
|
-
(_a = ctx.caches.workspaceAttributes) === null || _a === void 0 ? void 0 : _a.clear();
|
|
483
|
-
},
|
|
484
|
-
resetWorkspaceSettings: () => {
|
|
485
|
-
var _a;
|
|
486
|
-
(_a = ctx.caches.workspaceSettings) === null || _a === void 0 ? void 0 : _a.clear();
|
|
487
|
-
},
|
|
488
|
-
resetAll: () => {
|
|
489
|
-
control.resetExecutions();
|
|
490
|
-
control.resetCatalogs();
|
|
491
|
-
control.resetSecuritySettings();
|
|
492
|
-
control.resetAttributes();
|
|
493
|
-
control.resetWorkspaceSettings();
|
|
494
|
-
},
|
|
495
|
-
};
|
|
496
|
-
return control;
|
|
497
|
-
}
|
|
498
|
-
function assertPositiveOrUndefined(value, valueName) {
|
|
499
|
-
(0, ts_invariant_1.default)(value === undefined || value > 0, `${valueName} to cache must be positive or undefined, got: ${value}`);
|
|
500
|
-
}
|
|
501
|
-
/**
|
|
502
|
-
* These are the recommended settings for the backend caching.
|
|
503
|
-
*
|
|
504
|
-
* @remarks
|
|
505
|
-
* For more information on what the options mean see {@link CachingConfiguration}.
|
|
506
|
-
*
|
|
507
|
-
* @public
|
|
508
|
-
*/
|
|
509
|
-
exports.RecommendedCachingConfiguration = {
|
|
510
|
-
maxExecutions: 10,
|
|
511
|
-
maxResultWindows: 5,
|
|
512
|
-
maxCatalogs: 1,
|
|
513
|
-
maxCatalogOptions: 50,
|
|
514
|
-
maxSecuritySettingsOrgs: 3,
|
|
515
|
-
maxSecuritySettingsOrgUrls: 100,
|
|
516
|
-
maxSecuritySettingsOrgUrlsAge: 300000,
|
|
517
|
-
maxAttributeWorkspaces: 1,
|
|
518
|
-
maxAttributeDisplayFormsPerWorkspace: 100,
|
|
519
|
-
maxAttributesPerWorkspace: 100,
|
|
520
|
-
maxAttributeElementResultsPerWorkspace: 100,
|
|
521
|
-
maxWorkspaceSettings: 1,
|
|
522
|
-
};
|
|
523
|
-
/**
|
|
524
|
-
* Adds caching layer on top of an existing analytical backend instance. It is currently possible to cache
|
|
525
|
-
* results of executions and the workspace LDM catalog.
|
|
526
|
-
*
|
|
527
|
-
* @remarks see {@link CachingConfiguration} properties for more information.
|
|
528
|
-
* @param realBackend - real backend to decorate with caching
|
|
529
|
-
* @param config - caching configuration. {@link RecommendedCachingConfiguration} can be used
|
|
530
|
-
* @public
|
|
531
|
-
*/
|
|
532
|
-
function withCaching(realBackend, config) {
|
|
533
|
-
assertPositiveOrUndefined(config.maxCatalogOptions, "maxCatalogOptions");
|
|
534
|
-
assertPositiveOrUndefined(config.maxSecuritySettingsOrgUrls, "maxSecuritySettingsOrgUrls");
|
|
535
|
-
assertPositiveOrUndefined(config.maxSecuritySettingsOrgUrlsAge, "maxSecuritySettingsOrgUrlsAge");
|
|
536
|
-
const execCaching = cachingEnabled(config.maxExecutions);
|
|
537
|
-
const catalogCaching = cachingEnabled(config.maxCatalogs);
|
|
538
|
-
const securitySettingsCaching = cachingEnabled(config.maxSecuritySettingsOrgs);
|
|
539
|
-
const attributeCaching = cachingEnabled(config.maxAttributeWorkspaces);
|
|
540
|
-
const workspaceSettingsCaching = cachingEnabled(config.maxWorkspaceSettings);
|
|
541
|
-
const ctx = {
|
|
542
|
-
caches: {
|
|
543
|
-
execution: execCaching ? new lru_cache_1.default({ max: config.maxExecutions }) : undefined,
|
|
544
|
-
workspaceCatalogs: catalogCaching ? new lru_cache_1.default({ max: config.maxCatalogs }) : undefined,
|
|
545
|
-
securitySettings: securitySettingsCaching
|
|
546
|
-
? new lru_cache_1.default({ max: config.maxSecuritySettingsOrgs })
|
|
547
|
-
: undefined,
|
|
548
|
-
workspaceAttributes: attributeCaching
|
|
549
|
-
? new lru_cache_1.default({ max: config.maxAttributeWorkspaces })
|
|
550
|
-
: undefined,
|
|
551
|
-
workspaceSettings: workspaceSettingsCaching
|
|
552
|
-
? new lru_cache_1.default({ max: config.maxWorkspaceSettings })
|
|
553
|
-
: undefined,
|
|
554
|
-
},
|
|
555
|
-
config,
|
|
556
|
-
capabilities: realBackend.capabilities,
|
|
557
|
-
};
|
|
558
|
-
const execution = execCaching ? cachedExecutions(ctx) : identity_1.default;
|
|
559
|
-
const catalog = catalogCaching ? cachedCatalog(ctx) : identity_1.default;
|
|
560
|
-
const securitySettings = securitySettingsCaching ? cachedSecuritySettings(ctx) : identity_1.default;
|
|
561
|
-
const attributes = attributeCaching ? cachedAttributes(ctx) : identity_1.default;
|
|
562
|
-
const workspaceSettings = workspaceSettingsCaching ? cachedWorkspaceSettings(ctx) : identity_1.default;
|
|
563
|
-
if (config.onCacheReady) {
|
|
564
|
-
config.onCacheReady(cacheControl(ctx));
|
|
565
|
-
}
|
|
566
|
-
return (0, decoratedBackend_1.decoratedBackend)(realBackend, {
|
|
567
|
-
execution,
|
|
568
|
-
catalog,
|
|
569
|
-
securitySettings,
|
|
570
|
-
attributes,
|
|
571
|
-
workspaceSettings,
|
|
572
|
-
});
|
|
573
|
-
}
|
|
574
|
-
exports.withCaching = withCaching;
|
|
575
|
-
function skipMissingReferences(requestedRefs, refsToLoad, refsLoadedFromServer) {
|
|
576
|
-
const missingRefs = refsToLoad.filter((ref) => !refsLoadedFromServer.some((loadedRef) => (0, sdk_model_1.areObjRefsEqual)(loadedRef, ref)));
|
|
577
|
-
return requestedRefs.filter((inputRef) => !missingRefs.some((missingRef) => (0, sdk_model_1.areObjRefsEqual)(missingRef, inputRef)));
|
|
578
|
-
}
|
|
579
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cachingBackend/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { IPostProcessing, IResultHeader } from "@gooddata/sdk-model";
|
|
2
|
-
/**
|
|
3
|
-
* @public
|
|
4
|
-
*/
|
|
5
|
-
export type ResultHeaderTransformer = (resultHeader: IResultHeader, postProcessing?: IPostProcessing) => IResultHeader;
|
|
6
|
-
/**
|
|
7
|
-
* Transforms the result headers in an AFM execution result.
|
|
8
|
-
*
|
|
9
|
-
* @param resultHeaders - Execution result headers to be transformed.
|
|
10
|
-
* @param resultHeaderTransformer - The transformation function to be called to transform each result header.
|
|
11
|
-
* @param postProcessing - Contains any configuration that should be used during transformation.
|
|
12
|
-
* @returns The transformed result headers if resultHeaderTransformer has a value,
|
|
13
|
-
* or resultHeaders is returned if resultHeaderTransformer does not have any value.
|
|
14
|
-
*
|
|
15
|
-
* @public
|
|
16
|
-
*/
|
|
17
|
-
export declare function transformResultHeaders(resultHeaders: IResultHeader[][][], resultHeaderTransformer?: ResultHeaderTransformer, postProcessing?: IPostProcessing): IResultHeader[][][];
|
|
18
|
-
//# sourceMappingURL=result.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../../src/convertors/fromBackend/afm/result.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAClC,YAAY,EAAE,aAAa,EAC3B,cAAc,CAAC,EAAE,eAAe,KAC/B,aAAa,CAAC;AAEnB;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAClC,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE,EAClC,uBAAuB,CAAC,EAAE,uBAAuB,EACjD,cAAc,CAAC,EAAE,eAAe,GACjC,aAAa,EAAE,EAAE,EAAE,CAWrB"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transformResultHeaders = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Transforms the result headers in an AFM execution result.
|
|
6
|
-
*
|
|
7
|
-
* @param resultHeaders - Execution result headers to be transformed.
|
|
8
|
-
* @param resultHeaderTransformer - The transformation function to be called to transform each result header.
|
|
9
|
-
* @param postProcessing - Contains any configuration that should be used during transformation.
|
|
10
|
-
* @returns The transformed result headers if resultHeaderTransformer has a value,
|
|
11
|
-
* or resultHeaders is returned if resultHeaderTransformer does not have any value.
|
|
12
|
-
*
|
|
13
|
-
* @public
|
|
14
|
-
*/
|
|
15
|
-
function transformResultHeaders(resultHeaders, resultHeaderTransformer, postProcessing) {
|
|
16
|
-
if (!resultHeaderTransformer) {
|
|
17
|
-
return resultHeaders;
|
|
18
|
-
}
|
|
19
|
-
return resultHeaders.map((resultHeaders1) => {
|
|
20
|
-
return resultHeaders1.map((resultHeaders2) => {
|
|
21
|
-
return resultHeaders2.map((resultHeader) => {
|
|
22
|
-
return resultHeaderTransformer(resultHeader, postProcessing);
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
exports.transformResultHeaders = transformResultHeaders;
|
|
28
|
-
//# sourceMappingURL=result.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../../../src/convertors/fromBackend/afm/result.ts"],"names":[],"mappings":";;;AAWA;;;;;;;;;;GAUG;AACH,SAAgB,sBAAsB,CAClC,aAAkC,EAClC,uBAAiD,EACjD,cAAgC;IAEhC,IAAI,CAAC,uBAAuB,EAAE;QAC1B,OAAO,aAAa,CAAC;KACxB;IACD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,cAAiC,EAAE,EAAE;QAC3D,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,cAA+B,EAAE,EAAE;YAC1D,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,YAA2B,EAAE,EAAE;gBACtD,OAAO,uBAAuB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAfD,wDAeC"}
|