@gooddata/sdk-backend-base 8.13.0-alpha.9 → 9.0.0-alpha.2
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/cachingBackend/index.d.ts +2 -2
- package/dist/cachingBackend/index.d.ts.map +1 -1
- package/dist/cachingBackend/index.js +310 -386
- package/dist/cachingBackend/index.js.map +1 -1
- package/dist/convertors/fromBackend/afm/result.d.ts +1 -1
- package/dist/convertors/fromBackend/afm/result.d.ts.map +1 -1
- package/dist/convertors/fromBackend/afm/result.js +3 -3
- package/dist/convertors/fromBackend/afm/result.js.map +1 -1
- package/dist/customBackend/config.d.ts +9 -9
- package/dist/customBackend/config.d.ts.map +1 -1
- package/dist/customBackend/execution.js +77 -92
- package/dist/customBackend/execution.js.map +1 -1
- package/dist/customBackend/index.d.ts +1 -1
- package/dist/customBackend/index.d.ts.map +1 -1
- package/dist/customBackend/index.js +78 -114
- package/dist/customBackend/index.js.map +1 -1
- package/dist/customBackend/workspace.js +39 -40
- package/dist/customBackend/workspace.js.map +1 -1
- package/dist/decoratedBackend/attributes.js +21 -22
- package/dist/decoratedBackend/attributes.js.map +1 -1
- package/dist/decoratedBackend/catalog.d.ts +1 -1
- package/dist/decoratedBackend/catalog.d.ts.map +1 -1
- package/dist/decoratedBackend/catalog.js +38 -50
- package/dist/decoratedBackend/catalog.js.map +1 -1
- package/dist/decoratedBackend/dashboards.js +61 -62
- package/dist/decoratedBackend/dashboards.js.map +1 -1
- package/dist/decoratedBackend/elements.js +47 -70
- package/dist/decoratedBackend/elements.js.map +1 -1
- package/dist/decoratedBackend/execution.d.ts +2 -1
- package/dist/decoratedBackend/execution.d.ts.map +1 -1
- package/dist/decoratedBackend/execution.js +63 -79
- package/dist/decoratedBackend/execution.js.map +1 -1
- package/dist/decoratedBackend/index.d.ts +7 -7
- package/dist/decoratedBackend/index.d.ts.map +1 -1
- package/dist/decoratedBackend/index.js +91 -105
- package/dist/decoratedBackend/index.js.map +1 -1
- package/dist/decoratedBackend/securitySettings.js +7 -8
- package/dist/decoratedBackend/securitySettings.js.map +1 -1
- package/dist/decoratedBackend/workspaceSettings.js +12 -26
- package/dist/decoratedBackend/workspaceSettings.js.map +1 -1
- package/dist/dummyBackend/index.d.ts +1 -1
- package/dist/dummyBackend/index.d.ts.map +1 -1
- package/dist/dummyBackend/index.js +369 -397
- package/dist/dummyBackend/index.js.map +1 -1
- package/dist/eventingBackend/index.d.ts +1 -1
- package/dist/eventingBackend/index.d.ts.map +1 -1
- package/dist/eventingBackend/index.js +44 -51
- package/dist/eventingBackend/index.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/ldmFactories/builder.d.ts +4 -4
- package/dist/ldmFactories/builder.d.ts.map +1 -1
- package/dist/ldmFactories/builder.js +15 -16
- package/dist/ldmFactories/builder.js.map +1 -1
- package/dist/ldmFactories/catalog/attributeFactory.js +27 -36
- package/dist/ldmFactories/catalog/attributeFactory.js.map +1 -1
- package/dist/ldmFactories/catalog/dateDatasetFactory.js +33 -47
- package/dist/ldmFactories/catalog/dateDatasetFactory.js.map +1 -1
- package/dist/ldmFactories/catalog/factFactory.js +14 -21
- package/dist/ldmFactories/catalog/factFactory.js.map +1 -1
- package/dist/ldmFactories/catalog/groupFactory.js +15 -27
- package/dist/ldmFactories/catalog/groupFactory.js.map +1 -1
- package/dist/ldmFactories/catalog/measureFactory.js +18 -27
- package/dist/ldmFactories/catalog/measureFactory.js.map +1 -1
- package/dist/ldmFactories/dashboard/insightWidgetFactory.js +22 -28
- package/dist/ldmFactories/dashboard/insightWidgetFactory.js.map +1 -1
- package/dist/ldmFactories/dashboard/kpiWidgetFactory.js +26 -35
- package/dist/ldmFactories/dashboard/kpiWidgetFactory.js.map +1 -1
- package/dist/ldmFactories/dashboard/widgetFactory.js +20 -39
- package/dist/ldmFactories/dashboard/widgetFactory.js.map +1 -1
- package/dist/ldmFactories/metadata/attributeFactory.js +14 -21
- package/dist/ldmFactories/metadata/attributeFactory.js.map +1 -1
- package/dist/ldmFactories/metadata/dashboardFactory.js +8 -15
- package/dist/ldmFactories/metadata/dashboardFactory.js.map +1 -1
- package/dist/ldmFactories/metadata/dataSetFactory.js +8 -15
- package/dist/ldmFactories/metadata/dataSetFactory.js.map +1 -1
- package/dist/ldmFactories/metadata/displayFormFactory.js +14 -21
- package/dist/ldmFactories/metadata/displayFormFactory.js.map +1 -1
- package/dist/ldmFactories/metadata/factFactory.js +8 -15
- package/dist/ldmFactories/metadata/factFactory.js.map +1 -1
- package/dist/ldmFactories/metadata/factory.js +17 -23
- package/dist/ldmFactories/metadata/factory.js.map +1 -1
- package/dist/ldmFactories/metadata/measureFactory.js +14 -21
- package/dist/ldmFactories/metadata/measureFactory.js.map +1 -1
- package/dist/ldmFactories/metadata/variableFactory.js +8 -15
- package/dist/ldmFactories/metadata/variableFactory.js.map +1 -1
- package/dist/normalizingBackend/index.d.ts +2 -2
- package/dist/normalizingBackend/index.d.ts.map +1 -1
- package/dist/normalizingBackend/index.js +79 -103
- package/dist/normalizingBackend/index.js.map +1 -1
- package/dist/normalizingBackend/normalizer.d.ts +2 -2
- package/dist/normalizingBackend/normalizer.d.ts.map +1 -1
- package/dist/normalizingBackend/normalizer.js +153 -160
- package/dist/normalizingBackend/normalizer.js.map +1 -1
- package/dist/toolkit/auth.d.ts +2 -2
- package/dist/toolkit/auth.d.ts.map +1 -1
- package/dist/toolkit/auth.js +47 -60
- package/dist/toolkit/auth.js.map +1 -1
- package/dist/toolkit/backend.d.ts +1 -1
- package/dist/toolkit/backend.d.ts.map +1 -1
- package/dist/toolkit/execution.js +41 -53
- package/dist/toolkit/execution.js.map +1 -1
- package/dist/toolkit/paging.d.ts +1 -1
- package/dist/toolkit/paging.d.ts.map +1 -1
- package/dist/toolkit/paging.js +77 -146
- package/dist/toolkit/paging.js.map +1 -1
- package/dist/toolkit/pluginUrlValidation.js +9 -9
- package/dist/toolkit/pluginUrlValidation.js.map +1 -1
- package/dist/workspaceSettingsBackend/index.d.ts +3 -3
- package/dist/workspaceSettingsBackend/index.d.ts.map +1 -1
- package/dist/workspaceSettingsBackend/index.js +23 -46
- package/dist/workspaceSettingsBackend/index.js.map +1 -1
- package/esm/cachingBackend/index.d.ts +2 -2
- package/esm/cachingBackend/index.d.ts.map +1 -1
- package/esm/cachingBackend/index.js +281 -358
- package/esm/cachingBackend/index.js.map +1 -1
- package/esm/convertors/fromBackend/afm/result.d.ts +1 -1
- package/esm/convertors/fromBackend/afm/result.d.ts.map +1 -1
- package/esm/convertors/fromBackend/afm/result.js +3 -3
- package/esm/convertors/fromBackend/afm/result.js.map +1 -1
- package/esm/customBackend/config.d.ts +9 -9
- package/esm/customBackend/config.d.ts.map +1 -1
- package/esm/customBackend/execution.js +72 -89
- package/esm/customBackend/execution.js.map +1 -1
- package/esm/customBackend/index.d.ts +1 -1
- package/esm/customBackend/index.d.ts.map +1 -1
- package/esm/customBackend/index.js +75 -112
- package/esm/customBackend/index.js.map +1 -1
- package/esm/customBackend/workspace.js +37 -39
- package/esm/customBackend/workspace.js.map +1 -1
- package/esm/decoratedBackend/attributes.js +21 -23
- package/esm/decoratedBackend/attributes.js.map +1 -1
- package/esm/decoratedBackend/catalog.d.ts +1 -1
- package/esm/decoratedBackend/catalog.d.ts.map +1 -1
- package/esm/decoratedBackend/catalog.js +36 -51
- package/esm/decoratedBackend/catalog.js.map +1 -1
- package/esm/decoratedBackend/dashboards.js +61 -63
- package/esm/decoratedBackend/dashboards.js.map +1 -1
- package/esm/decoratedBackend/elements.js +47 -73
- package/esm/decoratedBackend/elements.js.map +1 -1
- package/esm/decoratedBackend/execution.d.ts +2 -1
- package/esm/decoratedBackend/execution.d.ts.map +1 -1
- package/esm/decoratedBackend/execution.js +61 -81
- package/esm/decoratedBackend/execution.js.map +1 -1
- package/esm/decoratedBackend/index.d.ts +7 -7
- package/esm/decoratedBackend/index.d.ts.map +1 -1
- package/esm/decoratedBackend/index.js +88 -103
- package/esm/decoratedBackend/index.js.map +1 -1
- package/esm/decoratedBackend/securitySettings.js +7 -9
- package/esm/decoratedBackend/securitySettings.js.map +1 -1
- package/esm/decoratedBackend/workspaceSettings.js +12 -27
- package/esm/decoratedBackend/workspaceSettings.js.map +1 -1
- package/esm/dummyBackend/index.d.ts +1 -1
- package/esm/dummyBackend/index.d.ts.map +1 -1
- package/esm/dummyBackend/index.js +358 -387
- package/esm/dummyBackend/index.js.map +1 -1
- package/esm/eventingBackend/index.d.ts +1 -1
- package/esm/eventingBackend/index.d.ts.map +1 -1
- package/esm/eventingBackend/index.js +37 -45
- package/esm/eventingBackend/index.js.map +1 -1
- package/esm/ldmFactories/builder.d.ts +4 -4
- package/esm/ldmFactories/builder.d.ts.map +1 -1
- package/esm/ldmFactories/builder.js +14 -17
- package/esm/ldmFactories/builder.js.map +1 -1
- package/esm/ldmFactories/catalog/attributeFactory.js +15 -27
- package/esm/ldmFactories/catalog/attributeFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/dateDatasetFactory.js +18 -37
- package/esm/ldmFactories/catalog/dateDatasetFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/factFactory.js +5 -15
- package/esm/ldmFactories/catalog/factFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/groupFactory.js +11 -27
- package/esm/ldmFactories/catalog/groupFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/measureFactory.js +9 -21
- package/esm/ldmFactories/catalog/measureFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/insightWidgetFactory.js +16 -25
- package/esm/ldmFactories/dashboard/insightWidgetFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.js +19 -31
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/widgetFactory.js +19 -39
- package/esm/ldmFactories/dashboard/widgetFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/attributeFactory.js +9 -19
- package/esm/ldmFactories/metadata/attributeFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/dashboardFactory.js +3 -13
- package/esm/ldmFactories/metadata/dashboardFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/dataSetFactory.js +3 -13
- package/esm/ldmFactories/metadata/dataSetFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/displayFormFactory.js +9 -19
- package/esm/ldmFactories/metadata/displayFormFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/factFactory.js +3 -13
- package/esm/ldmFactories/metadata/factFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/factory.js +16 -23
- package/esm/ldmFactories/metadata/factory.js.map +1 -1
- package/esm/ldmFactories/metadata/measureFactory.js +9 -19
- package/esm/ldmFactories/metadata/measureFactory.js.map +1 -1
- package/esm/ldmFactories/metadata/variableFactory.js +3 -13
- package/esm/ldmFactories/metadata/variableFactory.js.map +1 -1
- package/esm/normalizingBackend/index.d.ts +2 -2
- package/esm/normalizingBackend/index.d.ts.map +1 -1
- package/esm/normalizingBackend/index.js +65 -90
- package/esm/normalizingBackend/index.js.map +1 -1
- package/esm/normalizingBackend/normalizer.d.ts +2 -2
- package/esm/normalizingBackend/normalizer.d.ts.map +1 -1
- package/esm/normalizingBackend/normalizer.js +128 -138
- package/esm/normalizingBackend/normalizer.js.map +1 -1
- package/esm/toolkit/auth.d.ts +2 -2
- package/esm/toolkit/auth.d.ts.map +1 -1
- package/esm/toolkit/auth.js +47 -63
- package/esm/toolkit/auth.js.map +1 -1
- package/esm/toolkit/backend.d.ts +1 -1
- package/esm/toolkit/backend.d.ts.map +1 -1
- package/esm/toolkit/execution.js +38 -53
- package/esm/toolkit/execution.js.map +1 -1
- package/esm/toolkit/paging.d.ts +1 -1
- package/esm/toolkit/paging.d.ts.map +1 -1
- package/esm/toolkit/paging.js +72 -144
- package/esm/toolkit/paging.js.map +1 -1
- package/esm/toolkit/pluginUrlValidation.js +8 -8
- package/esm/toolkit/pluginUrlValidation.js.map +1 -1
- package/esm/tsdoc-metadata.json +1 -1
- package/esm/workspaceSettingsBackend/index.d.ts +3 -3
- package/esm/workspaceSettingsBackend/index.d.ts.map +1 -1
- package/esm/workspaceSettingsBackend/index.js +19 -43
- package/esm/workspaceSettingsBackend/index.js.map +1 -1
- package/package.json +15 -15
package/esm/toolkit/auth.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __awaiter, __generator } from "tslib";
|
|
2
1
|
// (C) 2019-2021 GoodData Corporation
|
|
3
2
|
import { NotSupported, } from "@gooddata/sdk-backend-spi";
|
|
4
3
|
/**
|
|
@@ -14,80 +13,69 @@ import { NotSupported, } from "@gooddata/sdk-backend-spi";
|
|
|
14
13
|
*
|
|
15
14
|
* @internal
|
|
16
15
|
*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var _this = this;
|
|
16
|
+
export class AuthProviderCallGuard {
|
|
17
|
+
constructor(realProvider) {
|
|
20
18
|
this.realProvider = realProvider;
|
|
21
|
-
this.reset =
|
|
22
|
-
|
|
19
|
+
this.reset = () => {
|
|
20
|
+
this.principal = undefined;
|
|
23
21
|
};
|
|
24
22
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
25
|
-
this.initializeClient =
|
|
23
|
+
this.initializeClient = (client) => {
|
|
26
24
|
var _a, _b;
|
|
27
|
-
(_b = (_a =
|
|
25
|
+
(_b = (_a = this.realProvider).initializeClient) === null || _b === void 0 ? void 0 : _b.call(_a, client);
|
|
28
26
|
};
|
|
29
|
-
this.onNotAuthenticated =
|
|
27
|
+
this.onNotAuthenticated = (context, error) => {
|
|
30
28
|
var _a, _b;
|
|
31
|
-
(_b = (_a =
|
|
29
|
+
(_b = (_a = this.realProvider).onNotAuthenticated) === null || _b === void 0 ? void 0 : _b.call(_a, context, error);
|
|
32
30
|
};
|
|
33
|
-
this.authenticate =
|
|
34
|
-
if (
|
|
35
|
-
return Promise.resolve(
|
|
31
|
+
this.authenticate = (context) => {
|
|
32
|
+
if (this.principal) {
|
|
33
|
+
return Promise.resolve(this.principal);
|
|
36
34
|
}
|
|
37
|
-
if (
|
|
38
|
-
return
|
|
35
|
+
if (this.inflightRequest) {
|
|
36
|
+
return this.inflightRequest;
|
|
39
37
|
}
|
|
40
|
-
|
|
38
|
+
this.inflightRequest = this.realProvider
|
|
41
39
|
.authenticate(context)
|
|
42
|
-
.then(
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
.then((res) => {
|
|
41
|
+
this.principal = res;
|
|
42
|
+
this.inflightRequest = undefined;
|
|
45
43
|
return res;
|
|
46
44
|
})
|
|
47
|
-
.catch(
|
|
48
|
-
|
|
45
|
+
.catch((err) => {
|
|
46
|
+
this.inflightRequest = undefined;
|
|
49
47
|
throw err;
|
|
50
48
|
});
|
|
51
|
-
return
|
|
49
|
+
return this.inflightRequest;
|
|
52
50
|
};
|
|
53
51
|
}
|
|
54
|
-
|
|
52
|
+
getCurrentPrincipal(context) {
|
|
55
53
|
return this.realProvider.getCurrentPrincipal(context);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
return AuthProviderCallGuard;
|
|
65
|
-
}());
|
|
66
|
-
export { AuthProviderCallGuard };
|
|
54
|
+
}
|
|
55
|
+
async deauthenticate(context) {
|
|
56
|
+
return this.realProvider.deauthenticate(context);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
67
59
|
/**
|
|
68
60
|
* This implementation serves as a Null object for IAuthProviderCallGuard.
|
|
69
61
|
*
|
|
70
62
|
* @internal
|
|
71
63
|
*/
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
NoopAuthProvider.prototype.authenticate = function (_context) {
|
|
64
|
+
export class NoopAuthProvider {
|
|
65
|
+
authenticate(_context) {
|
|
76
66
|
throw new NotSupported("NoopAuthProvider does not support authenticate");
|
|
77
|
-
}
|
|
78
|
-
|
|
67
|
+
}
|
|
68
|
+
getCurrentPrincipal(_context) {
|
|
79
69
|
throw new NotSupported("NoopAuthProvider does not support getCurrentPrincipal");
|
|
80
|
-
}
|
|
81
|
-
|
|
70
|
+
}
|
|
71
|
+
deauthenticate(_context) {
|
|
82
72
|
throw new NotSupported("NoopAuthProvider does not support deauthenticate");
|
|
83
|
-
}
|
|
84
|
-
|
|
73
|
+
}
|
|
74
|
+
reset() {
|
|
85
75
|
throw new NotSupported("NoopAuthProvider does not support reset");
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
export { NoopAuthProvider };
|
|
90
|
-
export var AnonymousUser = {
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
export const AnonymousUser = {
|
|
91
79
|
userId: "anonymous",
|
|
92
80
|
};
|
|
93
81
|
/**
|
|
@@ -95,22 +83,18 @@ export var AnonymousUser = {
|
|
|
95
83
|
*
|
|
96
84
|
* @public
|
|
97
85
|
*/
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
AnonymousAuthProvider.prototype.authenticate = function (_context) {
|
|
86
|
+
export class AnonymousAuthProvider {
|
|
87
|
+
authenticate(_context) {
|
|
102
88
|
return Promise.resolve(AnonymousUser);
|
|
103
|
-
}
|
|
104
|
-
|
|
89
|
+
}
|
|
90
|
+
getCurrentPrincipal(_context) {
|
|
105
91
|
return Promise.resolve(AnonymousUser);
|
|
106
|
-
}
|
|
107
|
-
|
|
92
|
+
}
|
|
93
|
+
deauthenticate(_context) {
|
|
108
94
|
return Promise.resolve();
|
|
109
|
-
}
|
|
110
|
-
|
|
95
|
+
}
|
|
96
|
+
reset() {
|
|
111
97
|
return;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
}());
|
|
115
|
-
export { AnonymousAuthProvider };
|
|
98
|
+
}
|
|
99
|
+
}
|
|
116
100
|
//# sourceMappingURL=auth.js.map
|
package/esm/toolkit/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/toolkit/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/toolkit/auth.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAKH,YAAY,GAEf,MAAM,2BAA2B,CAAC;AA6CnC;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,qBAAqB;IAI9B,YAA6B,YAAqC;QAArC,iBAAY,GAAZ,YAAY,CAAyB;QAE3D,UAAK,GAAG,GAAS,EAAE;YACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC,CAAC;QAEF,6EAA6E;QACtE,qBAAgB,GAAG,CAAC,MAAW,EAAQ,EAAE;;YAC5C,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,gBAAgB,mDAAG,MAAM,CAAC,CAAC;QACjD,CAAC,CAAC;QAEK,uBAAkB,GAAG,CAAC,OAA+B,EAAE,KAAuB,EAAQ,EAAE;;YAC3F,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,kBAAkB,mDAAG,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC;QAEK,iBAAY,GAAG,CAAC,OAA+B,EAAoC,EAAE;YACxF,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC1C;YAED,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,OAAO,IAAI,CAAC,eAAe,CAAC;aAC/B;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY;iBACnC,YAAY,CAAC,OAAO,CAAC;iBACrB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACV,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;gBACrB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;gBAEjC,OAAO,GAAG,CAAC;YACf,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;gBAEjC,MAAM,GAAG,CAAC;YACd,CAAC,CAAC,CAAC;YAEP,OAAO,IAAI,CAAC,eAAe,CAAC;QAChC,CAAC,CAAC;IAvCmE,CAAC;IAyC/D,mBAAmB,CAAC,OAA+B;QACtD,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,OAA+B;QACvD,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IAClB,YAAY,CAAC,QAAgC;QAChD,MAAM,IAAI,YAAY,CAAC,gDAAgD,CAAC,CAAC;IAC7E,CAAC;IAEM,mBAAmB,CAAC,QAAgC;QACvD,MAAM,IAAI,YAAY,CAAC,uDAAuD,CAAC,CAAC;IACpF,CAAC;IAEM,cAAc,CAAC,QAAgC;QAClD,MAAM,IAAI,YAAY,CAAC,kDAAkD,CAAC,CAAC;IAC/E,CAAC;IAEM,KAAK;QACR,MAAM,IAAI,YAAY,CAAC,yCAAyC,CAAC,CAAC;IACtE,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,aAAa,GAA4B;IAClD,MAAM,EAAE,WAAW;CACtB,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IACvB,YAAY,CAAC,QAAgC;QAChD,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAEM,mBAAmB,CAAC,QAAgC;QACvD,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAEM,cAAc,CAAC,QAAgC;QAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEM,KAAK;QACR,OAAO;IACX,CAAC;CACJ"}
|
package/esm/toolkit/backend.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/toolkit/backend.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/toolkit/backend.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC"}
|
package/esm/toolkit/execution.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// (C) 2019-2020 GoodData Corporation
|
|
2
|
-
import { __extends } from "tslib";
|
|
3
2
|
import { defaultDimensionsGenerator, defWithDimensions, newDefForBuckets, newDefForInsight, newDefForItems, isInsight, } from "@gooddata/sdk-model";
|
|
4
3
|
import { DecoratedExecutionFactory } from "../decoratedBackend/execution";
|
|
5
4
|
/**
|
|
@@ -15,28 +14,26 @@ import { DecoratedExecutionFactory } from "../decoratedBackend/execution";
|
|
|
15
14
|
*
|
|
16
15
|
* @internal
|
|
17
16
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
export class AbstractExecutionFactory {
|
|
18
|
+
constructor(workspace) {
|
|
20
19
|
this.workspace = workspace;
|
|
21
20
|
}
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
forItems(items, filters) {
|
|
22
|
+
const def = defWithDimensions(newDefForItems(this.workspace, items, filters), defaultDimensionsGenerator);
|
|
24
23
|
return this.forDefinition(def);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
}
|
|
25
|
+
forBuckets(buckets, filters) {
|
|
26
|
+
const def = defWithDimensions(newDefForBuckets(this.workspace, buckets, filters), defaultDimensionsGenerator);
|
|
28
27
|
return this.forDefinition(def);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
}
|
|
29
|
+
forInsight(insight, filters) {
|
|
30
|
+
const def = defWithDimensions(newDefForInsight(this.workspace, insight, filters), defaultDimensionsGenerator);
|
|
32
31
|
return this.forDefinition(def);
|
|
33
|
-
}
|
|
34
|
-
|
|
32
|
+
}
|
|
33
|
+
forInsightByRef(insight, filters) {
|
|
35
34
|
return this.forInsight(insight, filters);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
}());
|
|
39
|
-
export { AbstractExecutionFactory };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
40
37
|
/**
|
|
41
38
|
* This implementation of execution factory allows transparent injection of fixed set of filters to all
|
|
42
39
|
* executions started through it.
|
|
@@ -46,33 +43,24 @@ export { AbstractExecutionFactory };
|
|
|
46
43
|
*
|
|
47
44
|
* @internal
|
|
48
45
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return
|
|
46
|
+
export class ExecutionFactoryWithFixedFilters extends DecoratedExecutionFactory {
|
|
47
|
+
constructor(decorated, filters = []) {
|
|
48
|
+
super(decorated);
|
|
49
|
+
this.filters = filters;
|
|
50
|
+
}
|
|
51
|
+
forItems(items, filters = []) {
|
|
52
|
+
return super.forItems(items, this.filters.concat(filters));
|
|
56
53
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return _super.prototype.forInsight.call(this, insight, this.filters.concat(filters));
|
|
68
|
-
};
|
|
69
|
-
ExecutionFactoryWithFixedFilters.prototype.forInsightByRef = function (insight, filters) {
|
|
70
|
-
if (filters === void 0) { filters = []; }
|
|
71
|
-
return _super.prototype.forInsightByRef.call(this, insight, this.filters.concat(filters));
|
|
72
|
-
};
|
|
73
|
-
return ExecutionFactoryWithFixedFilters;
|
|
74
|
-
}(DecoratedExecutionFactory));
|
|
75
|
-
export { ExecutionFactoryWithFixedFilters };
|
|
54
|
+
forBuckets(buckets, filters = []) {
|
|
55
|
+
return super.forBuckets(buckets, this.filters.concat(filters));
|
|
56
|
+
}
|
|
57
|
+
forInsight(insight, filters = []) {
|
|
58
|
+
return super.forInsight(insight, this.filters.concat(filters));
|
|
59
|
+
}
|
|
60
|
+
forInsightByRef(insight, filters = []) {
|
|
61
|
+
return super.forInsightByRef(insight, this.filters.concat(filters));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
76
64
|
/**
|
|
77
65
|
* This implementation of execution factory will transparently upgrade any `forInsight` execution
|
|
78
66
|
* to `forInsightByRef` execution IF the argument to `forInsight` is actually a persisted insight (`IInsight` which
|
|
@@ -80,18 +68,15 @@ export { ExecutionFactoryWithFixedFilters };
|
|
|
80
68
|
*
|
|
81
69
|
* @internal
|
|
82
70
|
*/
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return _super.call(this, decorated) || this;
|
|
71
|
+
export class ExecutionFactoryUpgradingToExecByReference extends DecoratedExecutionFactory {
|
|
72
|
+
constructor(decorated) {
|
|
73
|
+
super(decorated);
|
|
87
74
|
}
|
|
88
|
-
|
|
75
|
+
forInsight(insight, filters) {
|
|
89
76
|
if (isInsight(insight)) {
|
|
90
77
|
return this.forInsightByRef(insight, filters);
|
|
91
78
|
}
|
|
92
|
-
return
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
}(DecoratedExecutionFactory));
|
|
96
|
-
export { ExecutionFactoryUpgradingToExecByReference };
|
|
79
|
+
return super.forInsight(insight, filters);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
97
82
|
//# sourceMappingURL=execution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/toolkit/execution.ts"],"names":[],"mappings":"AAAA,qCAAqC
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/toolkit/execution.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAEH,0BAA0B,EAC1B,iBAAiB,EAIjB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EAEd,SAAS,GAEZ,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;;;;;;;;;;;GAYG;AACH,MAAM,OAAgB,wBAAwB;IAC1C,YAA+B,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAI7C,QAAQ,CAAC,KAA4B,EAAE,OAA2B;QACrE,MAAM,GAAG,GAAG,iBAAiB,CACzB,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EAC9C,0BAA0B,CAC7B,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEM,UAAU,CAAC,OAAkB,EAAE,OAA2B;QAC7D,MAAM,GAAG,GAAG,iBAAiB,CACzB,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAClD,0BAA0B,CAC7B,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEM,UAAU,CAAC,OAA2B,EAAE,OAA2B;QACtE,MAAM,GAAG,GAAG,iBAAiB,CACzB,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAClD,0BAA0B,CAC7B,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEM,eAAe,CAAC,OAAiB,EAAE,OAA2B;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACJ;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,gCAAiC,SAAQ,yBAAyB;IAC3E,YAAY,SAA4B,EAAmB,UAA6B,EAAE;QACtF,KAAK,CAAC,SAAS,CAAC,CAAC;QADsC,YAAO,GAAP,OAAO,CAAwB;IAE1F,CAAC;IAEM,QAAQ,CAAC,KAA4B,EAAE,UAA6B,EAAE;QACzE,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,UAAU,CAAC,OAAkB,EAAE,UAA6B,EAAE;QACjE,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAEM,UAAU,CAAC,OAA2B,EAAE,UAA6B,EAAE;QAC1E,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAEM,eAAe,CAAC,OAAiB,EAAE,UAA6B,EAAE;QACrE,OAAO,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC;CACJ;AAED;;;;;;GAMG;AACH,MAAM,OAAO,0CAA2C,SAAQ,yBAAyB;IACrF,YAAY,SAA4B;QACpC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAEM,UAAU,CAAC,OAA2B,EAAE,OAA2B;QACtE,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACjD;QAED,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACJ"}
|
package/esm/toolkit/paging.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paging.d.ts","sourceRoot":"","sources":["../../src/toolkit/paging.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAM3D;;;;;GAKG;AACH,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IAM3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;IAL5C,SAAgB,KAAK,EAAE,CAAC,EAAE,CAAC;IAC3B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEJ,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,SAAK,EAAE,MAAM,SAAI;IAevD,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAQlC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAQnD,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAInB,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAG1E;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"paging.d.ts","sourceRoot":"","sources":["../../src/toolkit/paging.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAM3D;;;;;GAKG;AACH,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IAM3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;IAL5C,SAAgB,KAAK,EAAE,CAAC,EAAE,CAAC;IAC3B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEJ,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,SAAK,EAAE,MAAM,SAAI;IAevD,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAQlC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAQnD,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAInB,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAG1E;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IAejD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;aAClF,KAAK;aACL,MAAM;aACN,UAAU,EAAE,MAAM;aAClB,KAAK,EAAE,CAAC,EAAE;WAlBV,GAAG,CAAC,KAAK,EACzB,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,KAAK,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EACnF,KAAK,SAAK,EACV,MAAM,SAAI,GACX,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAUV,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAClF,KAAK,QAAK,EACV,MAAM,QAAI,EACV,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,CAAC,EAAE;IAGvB,IAAI,QAAa,QAAQ,eAAe,CAAC,CAAC,CAAC,CAmBhD;IAEK,IAAI,cAAqB,MAAM,KAAG,QAAQ,eAAe,CAAC,CAAC,CAAC,CAIjE;IAEK,GAAG,QAAa,QAAQ,CAAC,EAAE,CAAC,CAmBjC;IAEK,SAAS,kBAAyB,CAAC,KAAK,CAAC,KAAK,MAAM,KAAG,QAAQ,CAAC,EAAE,CAAC,CAGxE;CACL"}
|
package/esm/toolkit/paging.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __awaiter, __generator, __spreadArrays } from "tslib";
|
|
2
1
|
import invariant from "ts-invariant";
|
|
3
2
|
import range from "lodash/range";
|
|
4
3
|
import flatMap from "lodash/flatMap";
|
|
@@ -9,13 +8,11 @@ import isNil from "lodash/isNil";
|
|
|
9
8
|
*
|
|
10
9
|
* @internal
|
|
11
10
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (limit === void 0) { limit = 50; }
|
|
15
|
-
if (offset === void 0) { offset = 0; }
|
|
11
|
+
export class InMemoryPaging {
|
|
12
|
+
constructor(allItems, limit = 50, offset = 0) {
|
|
16
13
|
this.allItems = allItems;
|
|
17
|
-
invariant(offset >= 0,
|
|
18
|
-
invariant(limit > 0,
|
|
14
|
+
invariant(offset >= 0, `paging offset must be non-negative, got: ${offset}`);
|
|
15
|
+
invariant(limit > 0, `limit must be a positive number, got: ${limit}`);
|
|
19
16
|
// this will naturally return empty items if at the end of data; limit will always be positive
|
|
20
17
|
this.items = allItems.slice(offset, offset + limit);
|
|
21
18
|
// offset is at most at the end of all available elements
|
|
@@ -24,152 +21,83 @@ var InMemoryPaging = /** @class */ (function () {
|
|
|
24
21
|
this.limit = limit;
|
|
25
22
|
this.totalCount = allItems.length;
|
|
26
23
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
};
|
|
47
|
-
InMemoryPaging.prototype.all = function () {
|
|
48
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
49
|
-
return __generator(this, function (_a) {
|
|
50
|
-
return [2 /*return*/, __spreadArrays(this.allItems)];
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
};
|
|
54
|
-
InMemoryPaging.prototype.allSorted = function (compareFn) {
|
|
55
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
56
|
-
return __generator(this, function (_a) {
|
|
57
|
-
return [2 /*return*/, __spreadArrays(this.allItems).sort(compareFn)];
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
return InMemoryPaging;
|
|
62
|
-
}());
|
|
63
|
-
export { InMemoryPaging };
|
|
24
|
+
async next() {
|
|
25
|
+
if (this.items.length === 0) {
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
return new InMemoryPaging(this.allItems, this.limit, this.offset + this.items.length);
|
|
29
|
+
}
|
|
30
|
+
async goTo(pageIndex) {
|
|
31
|
+
if (this.items.length === 0) {
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
return new InMemoryPaging(this.allItems, this.limit, pageIndex * this.items.length);
|
|
35
|
+
}
|
|
36
|
+
async all() {
|
|
37
|
+
return [...this.allItems];
|
|
38
|
+
}
|
|
39
|
+
async allSorted(compareFn) {
|
|
40
|
+
return [...this.allItems].sort(compareFn);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
64
43
|
/**
|
|
65
44
|
* Common implementation of the {@link @gooddata/sdk-backend-spi#IPagedResource} for the server-side paging.
|
|
66
45
|
*
|
|
67
46
|
* @internal
|
|
68
47
|
*/
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
48
|
+
export class ServerPaging {
|
|
49
|
+
static async for(getData, limit = 50, offset = 0) {
|
|
50
|
+
invariant(offset >= 0, `paging offset must be non-negative, got: ${offset}`);
|
|
51
|
+
invariant(limit > 0, `limit must be a positive number, got: ${limit}`);
|
|
52
|
+
const { totalCount, items } = await getData({ limit, offset });
|
|
53
|
+
// must use isNil, totalCount: 0 is a valid case (e.g. when searching for a nonsensical string)
|
|
54
|
+
invariant(!isNil(totalCount), `total count must be specified, got: ${totalCount}`);
|
|
55
|
+
return new ServerPaging(getData, limit, offset, totalCount, items);
|
|
56
|
+
}
|
|
57
|
+
constructor(getData, limit = 50, offset = 0, totalCount, items) {
|
|
74
58
|
this.getData = getData;
|
|
75
59
|
this.limit = limit;
|
|
76
60
|
this.offset = offset;
|
|
77
61
|
this.totalCount = totalCount;
|
|
78
62
|
this.items = items;
|
|
79
|
-
this.next =
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
return
|
|
116
|
-
|
|
117
|
-
case 0:
|
|
118
|
-
results = [];
|
|
119
|
-
maxRequests = 6;
|
|
120
|
-
allPagesToLoad = range(0, this.totalCount / this.limit);
|
|
121
|
-
// if the paged resource is already at the 0 offset, use it directly to save a duplicate request
|
|
122
|
-
if (this.offset === 0) {
|
|
123
|
-
results.push.apply(results, this.items);
|
|
124
|
-
allPagesToLoad.shift();
|
|
125
|
-
}
|
|
126
|
-
_a.label = 1;
|
|
127
|
-
case 1:
|
|
128
|
-
if (!(allPagesToLoad.length > 0)) return [3 /*break*/, 3];
|
|
129
|
-
pagesToLoad = allPagesToLoad.slice(0, maxRequests);
|
|
130
|
-
allPagesToLoad.splice(0, maxRequests);
|
|
131
|
-
return [4 /*yield*/, Promise.all(pagesToLoad.map(function (page) { return _this.goTo(page); }))];
|
|
132
|
-
case 2:
|
|
133
|
-
loadedPages = _a.sent();
|
|
134
|
-
results.push.apply(results, flatMap(loadedPages, function (page) { return page.items; }));
|
|
135
|
-
return [3 /*break*/, 1];
|
|
136
|
-
case 3: return [2 /*return*/, results];
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
}); };
|
|
140
|
-
this.allSorted = function (compareFn) { return __awaiter(_this, void 0, void 0, function () {
|
|
141
|
-
var all;
|
|
142
|
-
return __generator(this, function (_a) {
|
|
143
|
-
switch (_a.label) {
|
|
144
|
-
case 0: return [4 /*yield*/, this.all()];
|
|
145
|
-
case 1:
|
|
146
|
-
all = _a.sent();
|
|
147
|
-
return [2 /*return*/, all.sort(compareFn)];
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
}); };
|
|
63
|
+
this.next = async () => {
|
|
64
|
+
// No items = we are on the last page.
|
|
65
|
+
if (this.items.length === 0) {
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
// We are on the last page with the items - return empty result for the next page immediately
|
|
69
|
+
if (this.items.length < this.limit || this.offset + this.items.length === this.totalCount) {
|
|
70
|
+
return new ServerPaging(this.getData, this.limit, this.offset + this.limit, this.totalCount, []);
|
|
71
|
+
}
|
|
72
|
+
const pageData = await this.getData({ limit: this.limit, offset: this.offset + this.limit });
|
|
73
|
+
return new ServerPaging(this.getData, this.limit, this.offset + this.limit, pageData.totalCount, pageData.items);
|
|
74
|
+
};
|
|
75
|
+
this.goTo = async (pageIndex) => {
|
|
76
|
+
const offset = pageIndex * this.limit;
|
|
77
|
+
const pageData = await this.getData({ limit: this.limit, offset });
|
|
78
|
+
return new ServerPaging(this.getData, this.limit, offset, pageData.totalCount, pageData.items);
|
|
79
|
+
};
|
|
80
|
+
this.all = async () => {
|
|
81
|
+
const results = [];
|
|
82
|
+
const maxRequests = 6;
|
|
83
|
+
const allPagesToLoad = range(0, this.totalCount / this.limit);
|
|
84
|
+
// if the paged resource is already at the 0 offset, use it directly to save a duplicate request
|
|
85
|
+
if (this.offset === 0) {
|
|
86
|
+
results.push(...this.items);
|
|
87
|
+
allPagesToLoad.shift();
|
|
88
|
+
}
|
|
89
|
+
while (allPagesToLoad.length > 0) {
|
|
90
|
+
const pagesToLoad = allPagesToLoad.slice(0, maxRequests);
|
|
91
|
+
allPagesToLoad.splice(0, maxRequests);
|
|
92
|
+
const loadedPages = await Promise.all(pagesToLoad.map((page) => this.goTo(page)));
|
|
93
|
+
results.push(...flatMap(loadedPages, (page) => page.items));
|
|
94
|
+
}
|
|
95
|
+
return results;
|
|
96
|
+
};
|
|
97
|
+
this.allSorted = async (compareFn) => {
|
|
98
|
+
const all = await this.all();
|
|
99
|
+
return all.sort(compareFn);
|
|
100
|
+
};
|
|
151
101
|
}
|
|
152
|
-
|
|
153
|
-
if (limit === void 0) { limit = 50; }
|
|
154
|
-
if (offset === void 0) { offset = 0; }
|
|
155
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
156
|
-
var _a, totalCount, items;
|
|
157
|
-
return __generator(this, function (_b) {
|
|
158
|
-
switch (_b.label) {
|
|
159
|
-
case 0:
|
|
160
|
-
invariant(offset >= 0, "paging offset must be non-negative, got: " + offset);
|
|
161
|
-
invariant(limit > 0, "limit must be a positive number, got: " + limit);
|
|
162
|
-
return [4 /*yield*/, getData({ limit: limit, offset: offset })];
|
|
163
|
-
case 1:
|
|
164
|
-
_a = _b.sent(), totalCount = _a.totalCount, items = _a.items;
|
|
165
|
-
// must use isNil, totalCount: 0 is a valid case (e.g. when searching for a nonsensical string)
|
|
166
|
-
invariant(!isNil(totalCount), "total count must be specified, got: " + totalCount);
|
|
167
|
-
return [2 /*return*/, new ServerPaging(getData, limit, offset, totalCount, items)];
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
});
|
|
171
|
-
};
|
|
172
|
-
return ServerPaging;
|
|
173
|
-
}());
|
|
174
|
-
export { ServerPaging };
|
|
102
|
+
}
|
|
175
103
|
//# sourceMappingURL=paging.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paging.js","sourceRoot":"","sources":["../../src/toolkit/paging.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paging.js","sourceRoot":"","sources":["../../src/toolkit/paging.ts"],"names":[],"mappings":"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"}
|