@gooddata/sdk-backend-base 9.6.0-alpha.6 → 9.6.0-alpha.8
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 +269 -260
- package/esm/cachingBackend/index.js.map +1 -1
- package/esm/customBackend/execution.js +107 -94
- package/esm/customBackend/execution.js.map +1 -1
- package/esm/customBackend/index.js +102 -95
- package/esm/customBackend/index.js.map +1 -1
- package/esm/customBackend/workspace.js +3 -0
- package/esm/customBackend/workspace.js.map +1 -1
- package/esm/decoratedBackend/analyticalWorkspace.js +3 -0
- package/esm/decoratedBackend/analyticalWorkspace.js.map +1 -1
- package/esm/decoratedBackend/attributes.js +1 -0
- package/esm/decoratedBackend/attributes.js.map +1 -1
- package/esm/decoratedBackend/catalog.js +5 -0
- package/esm/decoratedBackend/catalog.js.map +1 -1
- package/esm/decoratedBackend/dashboards.js +2 -0
- package/esm/decoratedBackend/dashboards.js.map +1 -1
- package/esm/decoratedBackend/elements.js +32 -6
- package/esm/decoratedBackend/elements.js.map +1 -1
- package/esm/decoratedBackend/execution.js +32 -13
- package/esm/decoratedBackend/execution.js.map +1 -1
- package/esm/decoratedBackend/index.js +4 -0
- package/esm/decoratedBackend/index.js.map +1 -1
- package/esm/decoratedBackend/organization.js +3 -0
- package/esm/decoratedBackend/organization.js.map +1 -1
- package/esm/decoratedBackend/organizations.js +2 -0
- package/esm/decoratedBackend/organizations.js.map +1 -1
- package/esm/decoratedBackend/securitySettings.js +2 -0
- package/esm/decoratedBackend/securitySettings.js.map +1 -1
- package/esm/decoratedBackend/workspaceSettings.js +1 -0
- package/esm/decoratedBackend/workspaceSettings.js.map +1 -1
- package/esm/dummyBackend/index.js +34 -10
- package/esm/dummyBackend/index.js.map +1 -1
- package/esm/eventingBackend/index.js +47 -44
- package/esm/eventingBackend/index.js.map +1 -1
- package/esm/ldmFactories/builder.js +2 -0
- package/esm/ldmFactories/builder.js.map +1 -1
- package/esm/ldmFactories/catalog/attributeFactory.js +1 -1
- package/esm/ldmFactories/catalog/attributeFactory.js.map +1 -1
- package/esm/ldmFactories/catalog/measureFactory.js +1 -1
- package/esm/ldmFactories/catalog/measureFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/insightWidgetFactory.js +5 -3
- package/esm/ldmFactories/dashboard/insightWidgetFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.js +17 -9
- package/esm/ldmFactories/dashboard/kpiWidgetFactory.js.map +1 -1
- package/esm/ldmFactories/dashboard/widgetFactory.js +18 -18
- package/esm/ldmFactories/dashboard/widgetFactory.js.map +1 -1
- package/esm/normalizingBackend/index.js +79 -58
- package/esm/normalizingBackend/index.js.map +1 -1
- package/esm/normalizingBackend/normalizer.js +317 -297
- package/esm/normalizingBackend/normalizer.js.map +1 -1
- package/esm/toolkit/auth.js +33 -32
- package/esm/toolkit/auth.js.map +1 -1
- package/esm/toolkit/execution.js +2 -0
- package/esm/toolkit/execution.js.map +1 -1
- package/esm/toolkit/paging.js +48 -38
- package/esm/toolkit/paging.js.map +1 -1
- package/esm/toolkit/pluginUrlValidation.js +1 -2
- package/esm/toolkit/pluginUrlValidation.js.map +1 -1
- package/esm/workspaceSettingsBackend/index.js +11 -2
- package/esm/workspaceSettingsBackend/index.js.map +1 -1
- package/package.json +8 -10
|
@@ -4,61 +4,64 @@ import { v4 as uuid } from "uuid";
|
|
|
4
4
|
import { decoratedBackend } from "../decoratedBackend/index.js";
|
|
5
5
|
import { DecoratedExecutionFactory, DecoratedExecutionResult, DecoratedPreparedExecution, } from "../decoratedBackend/execution.js";
|
|
6
6
|
class WithExecutionEventing extends DecoratedPreparedExecution {
|
|
7
|
+
callbacks;
|
|
7
8
|
constructor(decorated, callbacks) {
|
|
8
9
|
super(decorated);
|
|
9
10
|
this.callbacks = callbacks;
|
|
10
|
-
this.execute = () => {
|
|
11
|
-
const { beforeExecute, successfulExecute, failedExecute } = this.callbacks;
|
|
12
|
-
const executionId = uuid();
|
|
13
|
-
beforeExecute === null || beforeExecute === void 0 ? void 0 : beforeExecute(this.definition, executionId);
|
|
14
|
-
return super
|
|
15
|
-
.execute()
|
|
16
|
-
.then((result) => {
|
|
17
|
-
successfulExecute === null || successfulExecute === void 0 ? void 0 : successfulExecute(result, executionId);
|
|
18
|
-
return new WithExecutionResultEventing(result, this.createNew, this.callbacks, executionId);
|
|
19
|
-
})
|
|
20
|
-
.catch((error) => {
|
|
21
|
-
failedExecute === null || failedExecute === void 0 ? void 0 : failedExecute(error, executionId);
|
|
22
|
-
throw error;
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
this.createNew = (decorated) => {
|
|
26
|
-
return new WithExecutionEventing(decorated, this.callbacks);
|
|
27
|
-
};
|
|
28
11
|
}
|
|
12
|
+
execute = () => {
|
|
13
|
+
const { beforeExecute, successfulExecute, failedExecute } = this.callbacks;
|
|
14
|
+
const executionId = uuid();
|
|
15
|
+
beforeExecute?.(this.definition, executionId);
|
|
16
|
+
return super
|
|
17
|
+
.execute()
|
|
18
|
+
.then((result) => {
|
|
19
|
+
successfulExecute?.(result, executionId);
|
|
20
|
+
return new WithExecutionResultEventing(result, this.createNew, this.callbacks, executionId);
|
|
21
|
+
})
|
|
22
|
+
.catch((error) => {
|
|
23
|
+
failedExecute?.(error, executionId);
|
|
24
|
+
throw error;
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
createNew = (decorated) => {
|
|
28
|
+
return new WithExecutionEventing(decorated, this.callbacks);
|
|
29
|
+
};
|
|
29
30
|
}
|
|
30
31
|
class WithExecutionResultEventing extends DecoratedExecutionResult {
|
|
32
|
+
callbacks;
|
|
33
|
+
executionId;
|
|
31
34
|
constructor(decorated, wrapper, callbacks, executionId) {
|
|
32
35
|
super(decorated, wrapper);
|
|
33
36
|
this.callbacks = callbacks;
|
|
34
37
|
this.executionId = executionId;
|
|
35
|
-
this.readAll = () => {
|
|
36
|
-
const { successfulResultReadAll, failedResultReadAll } = this.callbacks;
|
|
37
|
-
const promisedDataView = super.readAll();
|
|
38
|
-
return promisedDataView
|
|
39
|
-
.then((res) => {
|
|
40
|
-
successfulResultReadAll === null || successfulResultReadAll === void 0 ? void 0 : successfulResultReadAll(res, this.executionId);
|
|
41
|
-
return res;
|
|
42
|
-
})
|
|
43
|
-
.catch((e) => {
|
|
44
|
-
failedResultReadAll === null || failedResultReadAll === void 0 ? void 0 : failedResultReadAll(e, this.executionId);
|
|
45
|
-
throw e;
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
this.readWindow = (offset, size) => {
|
|
49
|
-
const { successfulResultReadWindow, failedResultReadWindow } = this.callbacks;
|
|
50
|
-
const promisedDataView = super.readWindow(offset, size);
|
|
51
|
-
return promisedDataView
|
|
52
|
-
.then((res) => {
|
|
53
|
-
successfulResultReadWindow === null || successfulResultReadWindow === void 0 ? void 0 : successfulResultReadWindow(offset, size, res, this.executionId);
|
|
54
|
-
return res;
|
|
55
|
-
})
|
|
56
|
-
.catch((e) => {
|
|
57
|
-
failedResultReadWindow === null || failedResultReadWindow === void 0 ? void 0 : failedResultReadWindow(offset, size, e, this.executionId);
|
|
58
|
-
throw e;
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
38
|
}
|
|
39
|
+
readAll = () => {
|
|
40
|
+
const { successfulResultReadAll, failedResultReadAll } = this.callbacks;
|
|
41
|
+
const promisedDataView = super.readAll();
|
|
42
|
+
return promisedDataView
|
|
43
|
+
.then((res) => {
|
|
44
|
+
successfulResultReadAll?.(res, this.executionId);
|
|
45
|
+
return res;
|
|
46
|
+
})
|
|
47
|
+
.catch((e) => {
|
|
48
|
+
failedResultReadAll?.(e, this.executionId);
|
|
49
|
+
throw e;
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
readWindow = (offset, size) => {
|
|
53
|
+
const { successfulResultReadWindow, failedResultReadWindow } = this.callbacks;
|
|
54
|
+
const promisedDataView = super.readWindow(offset, size);
|
|
55
|
+
return promisedDataView
|
|
56
|
+
.then((res) => {
|
|
57
|
+
successfulResultReadWindow?.(offset, size, res, this.executionId);
|
|
58
|
+
return res;
|
|
59
|
+
})
|
|
60
|
+
.catch((e) => {
|
|
61
|
+
failedResultReadWindow?.(offset, size, e, this.executionId);
|
|
62
|
+
throw e;
|
|
63
|
+
});
|
|
64
|
+
};
|
|
62
65
|
}
|
|
63
66
|
/**
|
|
64
67
|
* This implementation of analytical backend decorates another implementation with support for eventing. Events
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eventingBackend/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AASlC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACH,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,GAE7B,MAAM,kCAAkC,CAAC;AAE1C,MAAM,qBAAsB,SAAQ,0BAA0B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eventingBackend/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/ldmFactories/builder.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC;;;;;;;;;GASG;AACH,MAAM,OAAO,OAAO;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/ldmFactories/builder.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC;;;;;;;;;GASG;AACH,MAAM,OAAO,OAAO;IACM;IAA4B;IAAlD,YAAsB,IAAgB,EAAY,SAAsC;QAAlE,SAAI,GAAJ,IAAI,CAAY;QAAY,cAAS,GAAT,SAAS,CAA6B;IAAG,CAAC;IAErF,KAAK;QACR,OAAO,IAAI,CAAC,IAAS,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,aAA4C;QACtD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,QAAQ;QACX,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAsDD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CACxC,qBAAoD,EACpD,aAAqB,EACf,EAAE;AACR,2CAA2C;AAC3C,sEAAsE;AACtE,qBAAqB,YAAY,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;AAE7G;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAK1B,OAA4B,EAC5B,WAA2B,EAC3B,aAAoD;IAEpD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -42,7 +42,7 @@ export class CatalogAttributeBuilder extends GroupableCatalogItemBuilder {
|
|
|
42
42
|
if (!this.item.defaultDisplayForm) {
|
|
43
43
|
throw new Error("Cannot convert catalog attribute to execution model, no displayForm found!");
|
|
44
44
|
}
|
|
45
|
-
const defaultModifications = (a) =>
|
|
45
|
+
const defaultModifications = (a) => a.alias(this.item.defaultDisplayForm?.title);
|
|
46
46
|
return newAttribute(this.item.defaultDisplayForm.ref, (m) => modifications(defaultModifications(m)));
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributeFactory.js","sourceRoot":"","sources":["../../../src/ldmFactories/catalog/attributeFactory.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAGH,YAAY,EAIZ,oCAAoC,EAEpC,yBAAyB,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAwB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAkC,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7G,OAAO,EAEH,qCAAqC,GACxC,MAAM,mCAAmC,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,OAAO,uBAEX,SAAQ,2BAA8B;IAC7B,SAAS,CACZ,cAAiD,EACjD,aAAoE;QAEpE,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE;YAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,0BAA0B,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;SACnF;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC;SACxC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,kBAAkB,CACrB,gBAA8D,EAC9D,aAA+E;QAE/E,IAAI,CAAC,oCAAoC,CAAC,gBAAgB,CAAC,EAAE;YACzD,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,qCAAqC,CAChE,gBAAgB,EAChB,aAAa,CAChB,CAAC;SACL;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;SACnD;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,YAAmD;QACnE,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,kBAAkB,CAAC,YAAmD;QACzE,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;QAE5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,gBAAgB,CAAC,gBAAwC,QAAQ;QACpE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;SACjG;QAED,MAAM,oBAAoB,GAA2B,CAAC,CAAC,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"attributeFactory.js","sourceRoot":"","sources":["../../../src/ldmFactories/catalog/attributeFactory.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAGH,YAAY,EAIZ,oCAAoC,EAEpC,yBAAyB,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAwB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAkC,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7G,OAAO,EAEH,qCAAqC,GACxC,MAAM,mCAAmC,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,OAAO,uBAEX,SAAQ,2BAA8B;IAC7B,SAAS,CACZ,cAAiD,EACjD,aAAoE;QAEpE,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE;YAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,0BAA0B,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;SACnF;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC;SACxC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,kBAAkB,CACrB,gBAA8D,EAC9D,aAA+E;QAE/E,IAAI,CAAC,oCAAoC,CAAC,gBAAgB,CAAC,EAAE;YACzD,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,qCAAqC,CAChE,gBAAgB,EAChB,aAAa,CAChB,CAAC;SACL;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;SACnD;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,YAAmD;QACnE,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,kBAAkB,CAAC,YAAmD;QACzE,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;QAE5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,gBAAgB,CAAC,gBAAwC,QAAQ;QACpE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;SACjG;QAED,MAAM,oBAAoB,GAA2B,CAAC,CAAC,EAAE,EAAE,CACvD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAEjD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;CACJ;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,gBAA+D,QAAQ,EACtD,EAAE,CAAC,cAAc,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,CAAC,CAAC"}
|
|
@@ -24,7 +24,7 @@ export class CatalogMeasureBuilder extends GroupableCatalogItemBuilder {
|
|
|
24
24
|
if (!this.item.measure) {
|
|
25
25
|
throw new Error("Cannot convert catalog measure to execution model, no measure found!");
|
|
26
26
|
}
|
|
27
|
-
const defaultModifications = (m) =>
|
|
27
|
+
const defaultModifications = (m) => m.alias(this.item.measure?.title).format(this.item.measure?.format);
|
|
28
28
|
return newMeasure(this.item.measure.ref, (m) => modifications(defaultModifications(m)));
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measureFactory.js","sourceRoot":"","sources":["../../../src/ldmFactories/catalog/measureFactory.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAIH,UAAU,EAIV,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAwB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAgC,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEvG;;;;;GAKG;AACH,MAAM,OAAO,qBAEX,SAAQ,2BAA8B;IAC7B,OAAO,CACV,YAA6C,EAC7C,aAAkE;QAElE,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,wBAAwB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;SAC7E;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;SACpC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,gBAAgB,CAAC,gBAAsD,QAAQ;QAClF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;SAC3F;QAED,MAAM,oBAAoB,GAAyC,CAAC,CAAC,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"measureFactory.js","sourceRoot":"","sources":["../../../src/ldmFactories/catalog/measureFactory.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAIH,UAAU,EAIV,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAwB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAgC,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEvG;;;;;GAKG;AACH,MAAM,OAAO,qBAEX,SAAQ,2BAA8B;IAC7B,OAAO,CACV,YAA6C,EAC7C,aAAkE;QAElE,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,wBAAwB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;SAC7E;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;SACpC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,gBAAgB,CAAC,gBAAsD,QAAQ;QAClF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;SAC3F;QAED,MAAM,oBAAoB,GAAyC,CAAC,CAAC,EAAE,EAAE,CACrE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAExE,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;CACJ;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC7B,gBAA6D,QAAQ,EACtD,EAAE,CAAC,cAAc,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC"}
|
|
@@ -6,13 +6,12 @@ import { WidgetBaseBuilder } from "./widgetFactory.js";
|
|
|
6
6
|
* @alpha
|
|
7
7
|
*/
|
|
8
8
|
export class InsightWidgetBuilder extends WidgetBaseBuilder {
|
|
9
|
+
item;
|
|
10
|
+
validator;
|
|
9
11
|
constructor(item, validator) {
|
|
10
12
|
super(item, validator);
|
|
11
13
|
this.item = item;
|
|
12
14
|
this.validator = validator;
|
|
13
|
-
this.drills = (valueOrUpdateCallback) => this.setWidgetProp("drills", valueOrUpdateCallback);
|
|
14
|
-
this.insight = (valueOrUpdateCallback) => this.setWidgetProp("insight", valueOrUpdateCallback);
|
|
15
|
-
this.properties = (valueOrUpdateCallback) => this.setWidgetProp("properties", valueOrUpdateCallback);
|
|
16
15
|
}
|
|
17
16
|
static for(insightWidget) {
|
|
18
17
|
invariant(isInsightWidgetDefinition(insightWidget) || isInsightWidget(insightWidget), "Provided data must be IInsightWidget or IInsightWidgetDefinition!");
|
|
@@ -30,6 +29,9 @@ export class InsightWidgetBuilder extends WidgetBaseBuilder {
|
|
|
30
29
|
};
|
|
31
30
|
return InsightWidgetBuilder.for(emptyInsightWidget);
|
|
32
31
|
}
|
|
32
|
+
drills = (valueOrUpdateCallback) => this.setWidgetProp("drills", valueOrUpdateCallback);
|
|
33
|
+
insight = (valueOrUpdateCallback) => this.setWidgetProp("insight", valueOrUpdateCallback);
|
|
34
|
+
properties = (valueOrUpdateCallback) => this.setWidgetProp("properties", valueOrUpdateCallback);
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* @alpha
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insightWidgetFactory.js","sourceRoot":"","sources":["../../../src/ldmFactories/dashboard/insightWidgetFactory.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAMH,yBAAyB,EACzB,eAAe,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAsB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAc3E;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,iBAAiC;
|
|
1
|
+
{"version":3,"file":"insightWidgetFactory.js","sourceRoot":"","sources":["../../../src/ldmFactories/dashboard/insightWidgetFactory.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAMH,yBAAyB,EACzB,eAAe,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAsB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAc3E;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,iBAAiC;IAEzD;IACA;IAFd,YACc,IAAoB,EACpB,SAAmD;QAE7D,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAHb,SAAI,GAAJ,IAAI,CAAgB;QACpB,cAAS,GAAT,SAAS,CAA0C;IAGjE,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,aAAuC;QACrD,SAAS,CACL,yBAAyB,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,aAAa,CAAC,EAC1E,mEAAmE,CACtE,CAAC;QAEF,OAAO,IAAI,oBAAoB,CAAC,aAA+B,CAAC,CAAC;IACrE,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAAe;QAChC,MAAM,kBAAkB,GAA6B;YACjD,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;YACV,sBAAsB,EAAE,EAAE;YAC1B,2BAA2B,EAAE,EAAE;YAC/B,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,SAAS;YACf,OAAO;SACV,CAAC;QACF,OAAO,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACxD,CAAC;IAEM,MAAM,GAAG,CAAC,qBAAsE,EAAQ,EAAE,CAC7F,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAEjD,OAAO,GAAG,CAAC,qBAAoD,EAAQ,EAAE,CAC5E,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAElD,UAAU,GAAG,CAChB,qBAAiF,EAC7E,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,OAAe,EACf,aAAsE,EACxD,EAAE;IAChB,OAAO,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;AAC9E,CAAC,CAAC"}
|
|
@@ -7,19 +7,12 @@ import { resolveValueOrUpdateCallback } from "../builder.js";
|
|
|
7
7
|
* @alpha
|
|
8
8
|
*/
|
|
9
9
|
export class KpiWidgetBuilder extends WidgetBaseBuilder {
|
|
10
|
+
item;
|
|
11
|
+
validator;
|
|
10
12
|
constructor(item, validator) {
|
|
11
13
|
super(item, validator);
|
|
12
14
|
this.item = item;
|
|
13
15
|
this.validator = validator;
|
|
14
|
-
// TODO: un-nest legacy kpi
|
|
15
|
-
this.setKpiWidgetProp = (prop, valueOrUpdateCallback) => {
|
|
16
|
-
this.setWidget((w) => (Object.assign(Object.assign({}, w), { kpi: Object.assign(Object.assign({}, w.kpi), { [prop]: resolveValueOrUpdateCallback(valueOrUpdateCallback, w.kpi[prop]) }) })));
|
|
17
|
-
return this;
|
|
18
|
-
};
|
|
19
|
-
this.drills = (valueOrUpdateCallback) => this.setWidgetProp("drills", valueOrUpdateCallback);
|
|
20
|
-
this.measure = (valueOrUpdateCallback) => this.setKpiWidgetProp("metric", valueOrUpdateCallback);
|
|
21
|
-
this.comparisonType = (valueOrUpdateCallback) => this.setKpiWidgetProp("comparisonType", valueOrUpdateCallback);
|
|
22
|
-
this.comparisonDirection = (valueOrUpdateCallback) => this.setKpiWidgetProp("comparisonDirection", valueOrUpdateCallback);
|
|
23
16
|
}
|
|
24
17
|
static for(kpiWidget) {
|
|
25
18
|
invariant(isKpiWidgetDefinition(kpiWidget) || isKpiWidget(kpiWidget), "Provided data must be IKpiWidget or IKpiWidgetDefinition!");
|
|
@@ -39,6 +32,21 @@ export class KpiWidgetBuilder extends WidgetBaseBuilder {
|
|
|
39
32
|
};
|
|
40
33
|
return KpiWidgetBuilder.for(emptyKpiWidget);
|
|
41
34
|
}
|
|
35
|
+
// TODO: un-nest legacy kpi
|
|
36
|
+
setKpiWidgetProp = (prop, valueOrUpdateCallback) => {
|
|
37
|
+
this.setWidget((w) => ({
|
|
38
|
+
...w,
|
|
39
|
+
kpi: {
|
|
40
|
+
...w.kpi,
|
|
41
|
+
[prop]: resolveValueOrUpdateCallback(valueOrUpdateCallback, w.kpi[prop]),
|
|
42
|
+
},
|
|
43
|
+
}));
|
|
44
|
+
return this;
|
|
45
|
+
};
|
|
46
|
+
drills = (valueOrUpdateCallback) => this.setWidgetProp("drills", valueOrUpdateCallback);
|
|
47
|
+
measure = (valueOrUpdateCallback) => this.setKpiWidgetProp("metric", valueOrUpdateCallback);
|
|
48
|
+
comparisonType = (valueOrUpdateCallback) => this.setKpiWidgetProp("comparisonType", valueOrUpdateCallback);
|
|
49
|
+
comparisonDirection = (valueOrUpdateCallback) => this.setKpiWidgetProp("comparisonDirection", valueOrUpdateCallback);
|
|
42
50
|
}
|
|
43
51
|
/**
|
|
44
52
|
* @alpha
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kpiWidgetFactory.js","sourceRoot":"","sources":["../../../src/ldmFactories/dashboard/kpiWidgetFactory.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAKH,qBAAqB,EACrB,WAAW,GAId,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAsB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAyB,MAAM,eAAe,CAAC;AAgBpF;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,iBAA6B;
|
|
1
|
+
{"version":3,"file":"kpiWidgetFactory.js","sourceRoot":"","sources":["../../../src/ldmFactories/dashboard/kpiWidgetFactory.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAKH,qBAAqB,EACrB,WAAW,GAId,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAsB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAyB,MAAM,eAAe,CAAC;AAgBpF;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,iBAA6B;IACzC;IAA4B;IAAlD,YAAsB,IAAgB,EAAY,SAA+C;QAC7F,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QADL,SAAI,GAAJ,IAAI,CAAY;QAAY,cAAS,GAAT,SAAS,CAAsC;IAEjG,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,SAA+B;QAC7C,SAAS,CACL,qBAAqB,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,EAC1D,2DAA2D,CAC9D,CAAC;QAEF,OAAO,IAAI,gBAAgB,CAAC,SAAuB,CAAC,CAAC;IACzD,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAAe;QAChC,MAAM,cAAc,GAAyB;YACzC,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;YACV,sBAAsB,EAAE,EAAE;YAC1B,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,KAAK;YACX,GAAG,EAAE;gBACD,MAAM,EAAE,OAAO;gBACf,cAAc,EAAE,MAAM;aACzB;SACJ,CAAC;QACF,OAAO,gBAAgB,CAAC,GAAG,CAAC,cAA4B,CAAC,CAAC;IAC9D,CAAC;IAED,2BAA2B;IACjB,gBAAgB,GAAG,CACzB,IAAO,EACP,qBAAkE,EAC9D,EAAE;QACN,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnB,GAAG,CAAC;YACJ,GAAG,EAAE;gBACD,GAAG,CAAC,CAAC,GAAI;gBACT,CAAC,IAAI,CAAC,EAAE,4BAA4B,CAAC,qBAAqB,EAAE,CAAC,CAAC,GAAI,CAAC,IAAI,CAAC,CAAC;aAC5E;SACJ,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEK,MAAM,GAAG,CAAC,qBAAkE,EAAQ,EAAE,CACzF,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAEjD,OAAO,GAAG,CAAC,qBAAoD,EAAQ,EAAE,CAC5E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAEpD,cAAc,GAAG,CACpB,qBAA0E,EACtE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;IAEnE,mBAAmB,GAAG,CACzB,qBAAiF,EAC7E,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;CAClF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CACxB,OAAe,EACf,aAA8D,EACpD,EAAE;IACZ,OAAO,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;AAC1E,CAAC,CAAC"}
|
|
@@ -3,23 +3,23 @@ import { Builder, resolveValueOrUpdateCallback } from "../builder.js";
|
|
|
3
3
|
* @alpha
|
|
4
4
|
*/
|
|
5
5
|
export class WidgetBaseBuilder extends Builder {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
this
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
6
|
+
setWidget = (updateCallback) => {
|
|
7
|
+
this.item = updateCallback(this.item);
|
|
8
|
+
return this;
|
|
9
|
+
};
|
|
10
|
+
setWidgetProp = (prop, valueOrUpdateCallback) => {
|
|
11
|
+
this.setWidget((w) => ({
|
|
12
|
+
...w,
|
|
13
|
+
[prop]: resolveValueOrUpdateCallback(valueOrUpdateCallback, w[prop]),
|
|
14
|
+
}));
|
|
15
|
+
return this;
|
|
16
|
+
};
|
|
17
|
+
title = (valueOrUpdateCallback) => this.setWidgetProp("title", valueOrUpdateCallback);
|
|
18
|
+
description = (valueOrUpdateCallback) => this.setWidgetProp("description", valueOrUpdateCallback);
|
|
19
|
+
ignoreDashboardFilters = (valueOrUpdateCallback) => this.setWidgetProp("ignoreDashboardFilters", valueOrUpdateCallback);
|
|
20
|
+
dateDataSet = (valueOrUpdateCallback) => this.setWidgetProp("dateDataSet", valueOrUpdateCallback);
|
|
21
|
+
ref = (valueOrUpdateCallback) => this.setWidgetProp("ref", valueOrUpdateCallback);
|
|
22
|
+
id = (valueOrUpdateCallback) => this.setWidgetProp("identifier", valueOrUpdateCallback);
|
|
23
|
+
uri = (valueOrUpdateCallback) => this.setWidgetProp("uri", valueOrUpdateCallback);
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=widgetFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgetFactory.js","sourceRoot":"","sources":["../../../src/ldmFactories/dashboard/widgetFactory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAY,4BAA4B,EAAyB,MAAM,eAAe,CAAC;AAiBvG;;GAEG;AACH,MAAM,OAAO,iBAAqC,SAAQ,OAAU;
|
|
1
|
+
{"version":3,"file":"widgetFactory.js","sourceRoot":"","sources":["../../../src/ldmFactories/dashboard/widgetFactory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAY,4BAA4B,EAAyB,MAAM,eAAe,CAAC;AAiBvG;;GAEG;AACH,MAAM,OAAO,iBAAqC,SAAQ,OAAU;IACtD,SAAS,GAAG,CAAC,cAAkD,EAAQ,EAAE;QAC/E,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEQ,aAAa,GAAG,CACtB,IAAO,EACP,qBAAkD,EAC9C,EAAE;QACN,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnB,GAAG,CAAC;YACJ,CAAC,IAAI,CAAC,EAAE,4BAA4B,CAAC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAE,CAAC;SACxE,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEK,KAAK,GAAG,CAAC,qBAAoD,EAAQ,EAAE,CAC1E,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAEhD,WAAW,GAAG,CAAC,qBAAoD,EAAQ,EAAE,CAChF,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;IAEtD,sBAAsB,GAAG,CAC5B,qBAAyE,EACrE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,CAAC;IAExE,WAAW,GAAG,CAAC,qBAAgE,EAAQ,EAAE,CAC5F,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;IAEtD,GAAG,GAAG,CAAC,qBAAoD,EAAQ,EAAE,CACxE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IAE9C,EAAE,GAAG,CAAC,qBAAoD,EAAQ,EAAE,CACvE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;IAErD,GAAG,GAAG,CAAC,qBAAoD,EAAQ,EAAE,CACxE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;CACxD"}
|
|
@@ -6,12 +6,10 @@ import { defFingerprint, } from "@gooddata/sdk-model";
|
|
|
6
6
|
import { Denormalizer, Normalizer } from "./normalizer.js";
|
|
7
7
|
import cloneDeep from "lodash/cloneDeep.js";
|
|
8
8
|
class WithNormalizationExecutionFactory extends DecoratedExecutionFactory {
|
|
9
|
+
config;
|
|
9
10
|
constructor(decorated, config) {
|
|
10
11
|
super(decorated);
|
|
11
12
|
this.config = config;
|
|
12
|
-
this.wrap = (original) => {
|
|
13
|
-
return new NormalizingPreparedExecution(original, this.decorated, this.config);
|
|
14
|
-
};
|
|
15
13
|
}
|
|
16
14
|
forInsightByRef(insight, filters) {
|
|
17
15
|
const isFallbackAllowed = this.config.executeByRefMode === "fallback";
|
|
@@ -21,6 +19,9 @@ class WithNormalizationExecutionFactory extends DecoratedExecutionFactory {
|
|
|
21
19
|
throw new NotSupported("Execution by reference is not supported when using normalizing backend. " +
|
|
22
20
|
"Use forInsight() instead.");
|
|
23
21
|
}
|
|
22
|
+
wrap = (original) => {
|
|
23
|
+
return new NormalizingPreparedExecution(original, this.decorated, this.config);
|
|
24
|
+
};
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Prepared execution which does normalization. The prepared execution works with the original
|
|
@@ -32,23 +33,24 @@ class WithNormalizationExecutionFactory extends DecoratedExecutionFactory {
|
|
|
32
33
|
* It thus obtains the normalized execution and starts it, obtaining the normalized result.
|
|
33
34
|
*/
|
|
34
35
|
class NormalizingPreparedExecution extends DecoratedPreparedExecution {
|
|
36
|
+
originalExecutionFactory;
|
|
37
|
+
config;
|
|
35
38
|
constructor(decorated, originalExecutionFactory, config) {
|
|
36
39
|
super(decorated);
|
|
37
40
|
this.originalExecutionFactory = originalExecutionFactory;
|
|
38
41
|
this.config = config;
|
|
39
|
-
this.execute = () => {
|
|
40
|
-
var _a, _b;
|
|
41
|
-
const normalizationState = Normalizer.normalize(this.definition);
|
|
42
|
-
const normalizedExecution = this.originalExecutionFactory.forDefinition(normalizationState.normalized);
|
|
43
|
-
(_b = (_a = this.config).normalizationStatus) === null || _b === void 0 ? void 0 : _b.call(_a, normalizationState);
|
|
44
|
-
return normalizedExecution.execute().then((result) => {
|
|
45
|
-
return new DenormalizingExecutionResult(result, normalizationState, this, this.decorated);
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
this.createNew = (decorated) => {
|
|
49
|
-
return new NormalizingPreparedExecution(decorated, this.originalExecutionFactory, this.config);
|
|
50
|
-
};
|
|
51
42
|
}
|
|
43
|
+
execute = () => {
|
|
44
|
+
const normalizationState = Normalizer.normalize(this.definition);
|
|
45
|
+
const normalizedExecution = this.originalExecutionFactory.forDefinition(normalizationState.normalized);
|
|
46
|
+
this.config.normalizationStatus?.(normalizationState);
|
|
47
|
+
return normalizedExecution.execute().then((result) => {
|
|
48
|
+
return new DenormalizingExecutionResult(result, normalizationState, this, this.decorated);
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
createNew = (decorated) => {
|
|
52
|
+
return new NormalizingPreparedExecution(decorated, this.originalExecutionFactory, this.config);
|
|
53
|
+
};
|
|
52
54
|
}
|
|
53
55
|
/**
|
|
54
56
|
* An implementation of de-normalizing execution result.
|
|
@@ -68,53 +70,61 @@ class NormalizingPreparedExecution extends DecoratedPreparedExecution {
|
|
|
68
70
|
* and exports result from it.
|
|
69
71
|
*/
|
|
70
72
|
class DenormalizingExecutionResult {
|
|
73
|
+
normalizedResult;
|
|
74
|
+
normalizationState;
|
|
75
|
+
normalizingExecution;
|
|
76
|
+
originalExecution;
|
|
77
|
+
definition;
|
|
78
|
+
dimensions;
|
|
79
|
+
denormalizer;
|
|
80
|
+
_fingerprint;
|
|
71
81
|
constructor(normalizedResult, normalizationState, normalizingExecution, originalExecution) {
|
|
72
82
|
this.normalizedResult = normalizedResult;
|
|
73
83
|
this.normalizationState = normalizationState;
|
|
74
84
|
this.normalizingExecution = normalizingExecution;
|
|
75
85
|
this.originalExecution = originalExecution;
|
|
76
|
-
this.transform = () => {
|
|
77
|
-
return this.normalizingExecution;
|
|
78
|
-
};
|
|
79
|
-
this.export = async (options) => {
|
|
80
|
-
const originalResult = await this.originalExecution.execute();
|
|
81
|
-
return originalResult.export(options);
|
|
82
|
-
};
|
|
83
|
-
this.readAll = () => {
|
|
84
|
-
const promisedDataView = this.normalizedResult.readAll();
|
|
85
|
-
return promisedDataView
|
|
86
|
-
.then((dataView) => {
|
|
87
|
-
return new DenormalizedDataView(this, dataView, this.denormalizer);
|
|
88
|
-
})
|
|
89
|
-
.catch(this.handleDataViewError);
|
|
90
|
-
};
|
|
91
|
-
this.readWindow = (offset, size) => {
|
|
92
|
-
const promisedDataView = this.normalizedResult.readWindow(offset, size);
|
|
93
|
-
return promisedDataView
|
|
94
|
-
.then((dataView) => {
|
|
95
|
-
return new DenormalizedDataView(this, dataView, this.denormalizer);
|
|
96
|
-
})
|
|
97
|
-
.catch(this.handleDataViewError);
|
|
98
|
-
};
|
|
99
|
-
this.equals = (other) => {
|
|
100
|
-
return this._fingerprint === other.fingerprint();
|
|
101
|
-
};
|
|
102
|
-
this.fingerprint = () => {
|
|
103
|
-
return this._fingerprint;
|
|
104
|
-
};
|
|
105
|
-
this.handleDataViewError = (error) => {
|
|
106
|
-
// make sure that errors with dataViews are repackaged with the dataView denormalized as well
|
|
107
|
-
// otherwise the dataViews will not make sense to the caller
|
|
108
|
-
if (isNoDataError(error) && error.dataView) {
|
|
109
|
-
throw new NoDataError(error.message, new DenormalizedDataView(this, error.dataView, this.denormalizer));
|
|
110
|
-
}
|
|
111
|
-
throw error;
|
|
112
|
-
};
|
|
113
86
|
this.denormalizer = Denormalizer.from(normalizationState);
|
|
114
87
|
this.definition = this.normalizationState.original;
|
|
115
88
|
this.dimensions = this.denormalizer.denormalizeDimDescriptors(normalizedResult.dimensions);
|
|
116
89
|
this._fingerprint = `normalizedResult_${defFingerprint(this.definition)}`;
|
|
117
90
|
}
|
|
91
|
+
transform = () => {
|
|
92
|
+
return this.normalizingExecution;
|
|
93
|
+
};
|
|
94
|
+
export = async (options) => {
|
|
95
|
+
const originalResult = await this.originalExecution.execute();
|
|
96
|
+
return originalResult.export(options);
|
|
97
|
+
};
|
|
98
|
+
readAll = () => {
|
|
99
|
+
const promisedDataView = this.normalizedResult.readAll();
|
|
100
|
+
return promisedDataView
|
|
101
|
+
.then((dataView) => {
|
|
102
|
+
return new DenormalizedDataView(this, dataView, this.denormalizer);
|
|
103
|
+
})
|
|
104
|
+
.catch(this.handleDataViewError);
|
|
105
|
+
};
|
|
106
|
+
readWindow = (offset, size) => {
|
|
107
|
+
const promisedDataView = this.normalizedResult.readWindow(offset, size);
|
|
108
|
+
return promisedDataView
|
|
109
|
+
.then((dataView) => {
|
|
110
|
+
return new DenormalizedDataView(this, dataView, this.denormalizer);
|
|
111
|
+
})
|
|
112
|
+
.catch(this.handleDataViewError);
|
|
113
|
+
};
|
|
114
|
+
equals = (other) => {
|
|
115
|
+
return this._fingerprint === other.fingerprint();
|
|
116
|
+
};
|
|
117
|
+
fingerprint = () => {
|
|
118
|
+
return this._fingerprint;
|
|
119
|
+
};
|
|
120
|
+
handleDataViewError = (error) => {
|
|
121
|
+
// make sure that errors with dataViews are repackaged with the dataView denormalized as well
|
|
122
|
+
// otherwise the dataViews will not make sense to the caller
|
|
123
|
+
if (isNoDataError(error) && error.dataView) {
|
|
124
|
+
throw new NoDataError(error.message, new DenormalizedDataView(this, error.dataView, this.denormalizer));
|
|
125
|
+
}
|
|
126
|
+
throw error;
|
|
127
|
+
};
|
|
118
128
|
}
|
|
119
129
|
/**
|
|
120
130
|
* Denormalized DataView takes mostly copies of the contents of the normalized data view. The only exception is the
|
|
@@ -122,14 +132,19 @@ class DenormalizingExecutionResult {
|
|
|
122
132
|
* backend to localId).
|
|
123
133
|
*/
|
|
124
134
|
class DenormalizedDataView {
|
|
135
|
+
normalizedDataView;
|
|
136
|
+
definition;
|
|
137
|
+
result;
|
|
138
|
+
data;
|
|
139
|
+
headerItems;
|
|
140
|
+
offset;
|
|
141
|
+
count;
|
|
142
|
+
totalCount;
|
|
143
|
+
totals;
|
|
144
|
+
totalTotals;
|
|
145
|
+
_fingerprint;
|
|
125
146
|
constructor(result, normalizedDataView, denormalizer) {
|
|
126
147
|
this.normalizedDataView = normalizedDataView;
|
|
127
|
-
this.equals = (other) => {
|
|
128
|
-
return this._fingerprint === other.fingerprint();
|
|
129
|
-
};
|
|
130
|
-
this.fingerprint = () => {
|
|
131
|
-
return this._fingerprint;
|
|
132
|
-
};
|
|
133
148
|
this.result = result;
|
|
134
149
|
this.definition = this.result.definition;
|
|
135
150
|
this.count = cloneDeep(this.normalizedDataView.count);
|
|
@@ -141,6 +156,12 @@ class DenormalizedDataView {
|
|
|
141
156
|
this.totalTotals = cloneDeep(this.normalizedDataView.totalTotals);
|
|
142
157
|
this._fingerprint = `${this.result.fingerprint()}/${this.offset.join(",")}-${this.count.join(",")}`;
|
|
143
158
|
}
|
|
159
|
+
equals = (other) => {
|
|
160
|
+
return this._fingerprint === other.fingerprint();
|
|
161
|
+
};
|
|
162
|
+
fingerprint = () => {
|
|
163
|
+
return this._fingerprint;
|
|
164
|
+
};
|
|
144
165
|
}
|
|
145
166
|
/**
|
|
146
167
|
* Decorates backend with logic which transparently normalizes execution definitions before they are dispatched
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/normalizingBackend/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAQH,YAAY,EACZ,aAAa,EACb,WAAW,GACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACzG,OAAO,EACH,cAAc,GAOjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAsB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAE5C,MAAM,iCAAkC,SAAQ,yBAAyB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/normalizingBackend/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,EAQH,YAAY,EACZ,aAAa,EACb,WAAW,GACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACzG,OAAO,EACH,cAAc,GAOjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAsB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAE5C,MAAM,iCAAkC,SAAQ,yBAAyB;IACV;IAA3D,YAAY,SAA4B,EAAmB,MAA2B;QAClF,KAAK,CAAC,SAAS,CAAC,CAAC;QADsC,WAAM,GAAN,MAAM,CAAqB;IAEtF,CAAC;IAED,eAAe,CAAC,OAAiB,EAAE,OAAmB;QAClD,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,KAAK,UAAU,CAAC;QAEtE,IAAI,iBAAiB,EAAE;YACnB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC5C;QAED,MAAM,IAAI,YAAY,CAClB,0EAA0E;YACtE,2BAA2B,CAClC,CAAC;IACN,CAAC;IAES,IAAI,GAAG,CAAC,QAA4B,EAAsB,EAAE;QAClE,OAAO,IAAI,4BAA4B,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC,CAAC;CACL;AAED;;;;;;;;GAQG;AACH,MAAM,4BAA6B,SAAQ,0BAA0B;IAG5C;IACA;IAHrB,YACI,SAA6B,EACZ,wBAA2C,EAC3C,MAA2B;QAE5C,KAAK,CAAC,SAAS,CAAC,CAAC;QAHA,6BAAwB,GAAxB,wBAAwB,CAAmB;QAC3C,WAAM,GAAN,MAAM,CAAqB;IAGhD,CAAC;IAEM,OAAO,GAAG,GAA8B,EAAE;QAC7C,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjE,MAAM,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC,aAAa,CACnE,kBAAkB,CAAC,UAAU,CAChC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,kBAAkB,CAAC,CAAC;QAEtD,OAAO,mBAAmB,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACjD,OAAO,IAAI,4BAA4B,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEQ,SAAS,GAAG,CAAC,SAA6B,EAAsB,EAAE;QACxE,OAAO,IAAI,4BAA4B,CAAC,SAAS,EAAE,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnG,CAAC,CAAC;CACL;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,4BAA4B;IAOT;IACA;IACA;IACA;IATL,UAAU,CAAuB;IACjC,UAAU,CAAyB;IAClC,YAAY,CAAe;IAC3B,YAAY,CAAS;IAEtC,YACqB,gBAAkC,EAClC,kBAAsC,EACtC,oBAAwC,EACxC,iBAAqC;QAHrC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,yBAAoB,GAApB,oBAAoB,CAAoB;QACxC,sBAAiB,GAAjB,iBAAiB,CAAoB;QAEtD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC3F,IAAI,CAAC,YAAY,GAAG,oBAAoB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC9E,CAAC;IAEM,SAAS,GAAG,GAAuB,EAAE;QACxC,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC,CAAC;IAEK,MAAM,GAAG,KAAK,EAAE,OAAsB,EAA0B,EAAE;QACrE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAE9D,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEK,OAAO,GAAG,GAAuB,EAAE;QACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAEzD,OAAO,gBAAgB;aAClB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACf,OAAO,IAAI,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACvE,CAAC,CAAC;aACD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC,CAAC;IAEK,UAAU,GAAG,CAAC,MAAgB,EAAE,IAAc,EAAsB,EAAE;QACzE,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAExE,OAAO,gBAAgB;aAClB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACf,OAAO,IAAI,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACvE,CAAC,CAAC;aACD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC,CAAC;IAEK,MAAM,GAAG,CAAC,KAAuB,EAAW,EAAE;QACjD,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;IACrD,CAAC,CAAC;IAEK,WAAW,GAAG,GAAW,EAAE;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC,CAAC;IAEM,mBAAmB,GAAG,CAAC,KAAc,EAAS,EAAE;QACpD,6FAA6F;QAC7F,4DAA4D;QAC5D,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE;YACxC,MAAM,IAAI,WAAW,CACjB,KAAK,CAAC,OAAO,EACb,IAAI,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CACpE,CAAC;SACL;QAED,MAAM,KAAK,CAAC;IAChB,CAAC,CAAC;CACL;AAED;;;;GAIG;AACH,MAAM,oBAAoB;IAgBD;IAfL,UAAU,CAAuB;IACjC,MAAM,CAAmB;IAEzB,IAAI,CAA8B;IAClC,WAAW,CAAsB;IACjC,MAAM,CAAW;IACjB,KAAK,CAAW;IAChB,UAAU,CAAW;IACrB,MAAM,CAA8B;IACpC,WAAW,CAA8B;IAExC,YAAY,CAAS;IAEtC,YACI,MAAoC,EACnB,kBAA6B,EAC9C,YAA0B;QADT,uBAAkB,GAAlB,kBAAkB,CAAW;QAG9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACxF,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAElE,IAAI,CAAC,YAAY,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACxG,CAAC;IAEM,MAAM,GAAG,CAAC,KAAgB,EAAW,EAAE;QAC1C,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;IACrD,CAAC,CAAC;IAEK,WAAW,GAAG,GAAW,EAAE;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC,CAAC;CACL;AAgCD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAC7B,WAA+B,EAC/B,SAA8B,EAAE;IAEhC,OAAO,gBAAgB,CAAC,WAAW,EAAE;QACjC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,iCAAiC,CAAC,QAAQ,EAAE,MAAM,CAAC;KACnF,CAAC,CAAC;AACP,CAAC"}
|