ydb-embedded-ui 6.4.0 → 6.5.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -1
- package/dist/components/AsyncReplicationState/AsyncReplicationState.d.ts +6 -0
- package/dist/components/AsyncReplicationState/AsyncReplicationState.js +20 -0
- package/dist/components/AsyncReplicationState/index.d.ts +1 -0
- package/dist/components/AsyncReplicationState/index.js +1 -0
- package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.d.ts +6 -2
- package/dist/components/ButtonWithConfirmDialog/ButtonWithConfirmDialog.js +12 -3
- package/dist/components/Errors/ResponseError/ResponseError.js +3 -0
- package/dist/components/PDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/QueryExecutionStatus/QueryExecutionStatus.d.ts +1 -2
- package/dist/components/QueryExecutionStatus/QueryExecutionStatus.js +2 -1
- package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
- package/dist/containers/Clusters/Clusters.js +7 -2
- package/dist/containers/Clusters/constants.d.ts +1 -3
- package/dist/containers/Clusters/constants.js +0 -18
- package/dist/containers/PDiskPage/PDiskPage.js +2 -1
- package/dist/containers/PDiskPage/i18n/en.json +2 -1
- package/dist/containers/PDiskPage/i18n/index.d.ts +1 -1
- package/dist/containers/Tablet/TabletControls/TabletControls.js +3 -1
- package/dist/containers/Tablet/i18n/en.json +3 -0
- package/dist/containers/Tablet/i18n/index.d.ts +1 -1
- package/dist/containers/Tablet/i18n/index.js +1 -2
- package/dist/containers/Tablets/Tablets.js +2 -1
- package/dist/containers/Tablets/i18n/en.json +2 -1
- package/dist/containers/Tablets/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +2 -0
- package/dist/containers/Tenant/Diagnostics/HotKeys/HotKeys.js +29 -18
- package/dist/containers/Tenant/Diagnostics/HotKeys/HotKeys.scss +14 -4
- package/dist/containers/Tenant/Diagnostics/HotKeys/i18n/en.json +2 -1
- package/dist/containers/Tenant/Diagnostics/HotKeys/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/AsyncReplicationInfo.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/AsyncReplicationInfo.js +39 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/Credentials.d.ts +6 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/Credentials.js +14 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/i18n/en.json +7 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/i18n/index.js +4 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/index.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/index.js +1 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationPaths/AsyncReplicationPaths.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationPaths/AsyncReplicationPaths.js +34 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationPaths/AsyncReplicationPaths.scss +7 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationPaths/i18n/en.json +7 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationPaths/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationPaths/i18n/index.js +4 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationPaths/index.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationPaths/index.js +1 -0
- package/dist/containers/Tenant/Diagnostics/Overview/Overview.js +2 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopQueries.js +2 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.js +2 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopTables.js +2 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueries.js +3 -3
- package/dist/containers/Tenant/Diagnostics/TopShards/TopShards.js +3 -3
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +20 -6
- package/dist/containers/Tenant/Query/ExecuteResult/ExecuteResult.d.ts +2 -2
- package/dist/containers/Tenant/Query/ExecuteResult/ExecuteResult.js +5 -6
- package/dist/containers/Tenant/Query/ExplainResult/ExplainResult.js +5 -13
- package/dist/containers/Tenant/Query/Preview/Preview.js +2 -2
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.d.ts +1 -7
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +18 -19
- package/dist/containers/Tenant/Tenant.js +3 -2
- package/dist/containers/Tenant/utils/schema.js +8 -0
- package/dist/containers/Tenant/utils/schemaActions.js +1 -0
- package/dist/containers/Tenant/utils/schemaControls.js +1 -0
- package/dist/containers/VDiskPage/VDiskPage.js +2 -1
- package/dist/containers/VDiskPage/i18n/en.json +2 -1
- package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
- package/dist/services/api.d.ts +3 -3
- package/dist/services/settings.d.ts +1 -0
- package/dist/services/settings.js +2 -1
- package/dist/store/configureStore.d.ts +0 -4
- package/dist/store/defaultStore.d.ts +0 -2
- package/dist/store/reducers/authentication/authentication.d.ts +187 -7
- package/dist/store/reducers/authentication/authentication.js +12 -3
- package/dist/store/reducers/authentication/types.d.ts +5 -1
- package/dist/store/reducers/cluster/cluster.js +4 -0
- package/dist/store/reducers/executeQuery.d.ts +4 -63
- package/dist/store/reducers/executeQuery.js +38 -34
- package/dist/store/reducers/executeTopQueries/executeTopQueries.js +4 -1
- package/dist/store/reducers/explainQuery/explainQuery.d.ts +9 -0
- package/dist/store/reducers/explainQuery/explainQuery.js +32 -0
- package/dist/store/reducers/explainQuery/types.d.ts +12 -0
- package/dist/store/reducers/explainQuery/utils.d.ts +6 -0
- package/dist/store/reducers/explainQuery/utils.js +40 -0
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +0 -20
- package/dist/store/reducers/host.d.ts +61 -2
- package/dist/store/reducers/index.d.ts +0 -3
- package/dist/store/reducers/index.js +0 -2
- package/dist/store/reducers/node/selectors.d.ts +0 -1
- package/dist/store/reducers/nodesList.d.ts +0 -1
- package/dist/store/reducers/olapStats.js +4 -1
- package/dist/store/reducers/preview.js +4 -1
- package/dist/store/reducers/schema/schema.d.ts +61 -2
- package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +61 -2
- package/dist/store/reducers/shardsWorkload/shardsWorkload.js +4 -1
- package/dist/store/reducers/tablets.d.ts +0 -1
- package/dist/store/reducers/tabletsFilters.d.ts +61 -2
- package/dist/store/reducers/tenantOverview/executeTopTables/executeTopTables.js +6 -3
- package/dist/store/reducers/tenantOverview/topQueries/tenantOverviewTopQueries.js +6 -3
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.js +6 -3
- package/dist/store/reducers/tenants/selectors.d.ts +0 -9
- package/dist/store/reducers/topic.d.ts +0 -15
- package/dist/store/utils.d.ts +2 -3
- package/dist/store/utils.js +1 -1
- package/dist/types/api/schema/replication.d.ts +74 -0
- package/dist/types/api/schema/replication.js +7 -0
- package/dist/types/api/schema/schema.d.ts +4 -1
- package/dist/types/api/schema/schema.js +1 -0
- package/dist/types/api/whoami.d.ts +6 -0
- package/dist/types/store/executeQuery.d.ts +2 -9
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.js +1 -0
- package/dist/utils/monaco/yql/constants.d.ts +2 -0
- package/dist/utils/monaco/yql/constants.js +33 -0
- package/dist/utils/monaco/yql/generateSuggestions.d.ts +1 -0
- package/dist/utils/monaco/yql/generateSuggestions.js +28 -11
- package/dist/utils/monaco/yql/yqlSuggestions.js +6 -1
- package/dist/utils/query.d.ts +5 -3
- package/dist/utils/query.js +27 -4
- package/dist/utils/response.d.ts +4 -0
- package/dist/utils/response.js +9 -0
- package/package.json +3 -3
- package/dist/containers/Tablet/i18n/ru.json +0 -10
- package/dist/store/reducers/explainQuery.d.ts +0 -145
- package/dist/store/reducers/explainQuery.js +0 -94
- package/dist/types/store/explainQuery.d.ts +0 -27
- package/dist/utils/error.d.ts +0 -2
- package/dist/utils/error.js +0 -13
- /package/dist/{types/store/explainQuery.js → store/reducers/explainQuery/types.js} +0 -0
@@ -0,0 +1,6 @@
|
|
1
|
+
import type { ExplainQueryResponse, ExplainScriptResponse } from '../../../types/api/query';
|
2
|
+
import type { PreparedExplainResponse } from './types';
|
3
|
+
export declare const explainVersions: {
|
4
|
+
v2: string;
|
5
|
+
};
|
6
|
+
export declare const prepareExplainResponse: (response: ExplainScriptResponse | ExplainQueryResponse) => PreparedExplainResponse;
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { preparePlan } from '../../../utils/prepareQueryExplain';
|
2
|
+
import { parseQueryAPIExplainResponse, parseQueryExplainPlan } from '../../../utils/query';
|
3
|
+
export const explainVersions = {
|
4
|
+
v2: '0.2',
|
5
|
+
};
|
6
|
+
const supportedExplainQueryVersions = Object.values(explainVersions);
|
7
|
+
export const prepareExplainResponse = (response) => {
|
8
|
+
const { plan: rawPlan, ast } = parseQueryAPIExplainResponse(response);
|
9
|
+
if (!rawPlan) {
|
10
|
+
return { ast };
|
11
|
+
}
|
12
|
+
const { tables, meta, Plan } = parseQueryExplainPlan(rawPlan);
|
13
|
+
if (supportedExplainQueryVersions.indexOf(meta.version) === -1) {
|
14
|
+
// Do not prepare plan for not supported versions
|
15
|
+
return {
|
16
|
+
plan: {
|
17
|
+
pristine: rawPlan,
|
18
|
+
version: meta.version,
|
19
|
+
},
|
20
|
+
ast,
|
21
|
+
};
|
22
|
+
}
|
23
|
+
let links = [];
|
24
|
+
let nodes = [];
|
25
|
+
if (Plan) {
|
26
|
+
const preparedPlan = preparePlan(Plan);
|
27
|
+
links = preparedPlan.links;
|
28
|
+
nodes = preparedPlan.nodes;
|
29
|
+
}
|
30
|
+
return {
|
31
|
+
plan: {
|
32
|
+
links,
|
33
|
+
nodes,
|
34
|
+
tables,
|
35
|
+
version: meta.version,
|
36
|
+
pristine: rawPlan,
|
37
|
+
},
|
38
|
+
ast,
|
39
|
+
};
|
40
|
+
};
|
@@ -16,7 +16,6 @@ export declare const selectIssuesTreesRoots: ((state: {
|
|
16
16
|
tenants: import("../tenants/types").TenantsState;
|
17
17
|
partitions: import("../partitions/types").PartitionsState;
|
18
18
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
19
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
20
19
|
tabletsFilters: {
|
21
20
|
loading: boolean;
|
22
21
|
requestTime: number;
|
@@ -89,7 +88,6 @@ export declare const selectIssuesTreesRoots: ((state: {
|
|
89
88
|
tenants: import("../tenants/types").TenantsState;
|
90
89
|
partitions: import("../partitions/types").PartitionsState;
|
91
90
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
92
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
93
91
|
tabletsFilters: {
|
94
92
|
loading: boolean;
|
95
93
|
requestTime: number;
|
@@ -155,7 +153,6 @@ export declare const selectIssuesTreesRoots: ((state: {
|
|
155
153
|
tenants: import("../tenants/types").TenantsState;
|
156
154
|
partitions: import("../partitions/types").PartitionsState;
|
157
155
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
158
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
159
156
|
tabletsFilters: {
|
160
157
|
loading: boolean;
|
161
158
|
requestTime: number;
|
@@ -279,7 +276,6 @@ export declare const selectIssuesTreesRoots: ((state: {
|
|
279
276
|
tenants: import("../tenants/types").TenantsState;
|
280
277
|
partitions: import("../partitions/types").PartitionsState;
|
281
278
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
282
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
283
279
|
tabletsFilters: {
|
284
280
|
loading: boolean;
|
285
281
|
requestTime: number;
|
@@ -408,7 +404,6 @@ export declare const selectIssuesTreesRoots: ((state: {
|
|
408
404
|
tenants: import("../tenants/types").TenantsState;
|
409
405
|
partitions: import("../partitions/types").PartitionsState;
|
410
406
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
411
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
412
407
|
tabletsFilters: {
|
413
408
|
loading: boolean;
|
414
409
|
requestTime: number;
|
@@ -548,7 +543,6 @@ export declare const selectIssuesTrees: ((state: {
|
|
548
543
|
tenants: import("../tenants/types").TenantsState;
|
549
544
|
partitions: import("../partitions/types").PartitionsState;
|
550
545
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
551
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
552
546
|
tabletsFilters: {
|
553
547
|
loading: boolean;
|
554
548
|
requestTime: number;
|
@@ -621,7 +615,6 @@ export declare const selectIssuesTrees: ((state: {
|
|
621
615
|
tenants: import("../tenants/types").TenantsState;
|
622
616
|
partitions: import("../partitions/types").PartitionsState;
|
623
617
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
624
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
625
618
|
tabletsFilters: {
|
626
619
|
loading: boolean;
|
627
620
|
requestTime: number;
|
@@ -687,7 +680,6 @@ export declare const selectIssuesTrees: ((state: {
|
|
687
680
|
tenants: import("../tenants/types").TenantsState;
|
688
681
|
partitions: import("../partitions/types").PartitionsState;
|
689
682
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
690
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
691
683
|
tabletsFilters: {
|
692
684
|
loading: boolean;
|
693
685
|
requestTime: number;
|
@@ -811,7 +803,6 @@ export declare const selectIssuesTrees: ((state: {
|
|
811
803
|
tenants: import("../tenants/types").TenantsState;
|
812
804
|
partitions: import("../partitions/types").PartitionsState;
|
813
805
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
814
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
815
806
|
tabletsFilters: {
|
816
807
|
loading: boolean;
|
817
808
|
requestTime: number;
|
@@ -940,7 +931,6 @@ export declare const selectIssuesTrees: ((state: {
|
|
940
931
|
tenants: import("../tenants/types").TenantsState;
|
941
932
|
partitions: import("../partitions/types").PartitionsState;
|
942
933
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
943
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
944
934
|
tabletsFilters: {
|
945
935
|
loading: boolean;
|
946
936
|
requestTime: number;
|
@@ -1071,7 +1061,6 @@ export declare const selectIssuesTrees: ((state: {
|
|
1071
1061
|
tenants: import("../tenants/types").TenantsState;
|
1072
1062
|
partitions: import("../partitions/types").PartitionsState;
|
1073
1063
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
1074
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
1075
1064
|
tabletsFilters: {
|
1076
1065
|
loading: boolean;
|
1077
1066
|
requestTime: number;
|
@@ -1144,7 +1133,6 @@ export declare const selectIssuesTrees: ((state: {
|
|
1144
1133
|
tenants: import("../tenants/types").TenantsState;
|
1145
1134
|
partitions: import("../partitions/types").PartitionsState;
|
1146
1135
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
1147
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
1148
1136
|
tabletsFilters: {
|
1149
1137
|
loading: boolean;
|
1150
1138
|
requestTime: number;
|
@@ -1210,7 +1198,6 @@ export declare const selectIssuesTrees: ((state: {
|
|
1210
1198
|
tenants: import("../tenants/types").TenantsState;
|
1211
1199
|
partitions: import("../partitions/types").PartitionsState;
|
1212
1200
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
1213
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
1214
1201
|
tabletsFilters: {
|
1215
1202
|
loading: boolean;
|
1216
1203
|
requestTime: number;
|
@@ -1334,7 +1321,6 @@ export declare const selectIssuesTrees: ((state: {
|
|
1334
1321
|
tenants: import("../tenants/types").TenantsState;
|
1335
1322
|
partitions: import("../partitions/types").PartitionsState;
|
1336
1323
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
1337
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
1338
1324
|
tabletsFilters: {
|
1339
1325
|
loading: boolean;
|
1340
1326
|
requestTime: number;
|
@@ -1463,7 +1449,6 @@ export declare const selectIssuesTrees: ((state: {
|
|
1463
1449
|
tenants: import("../tenants/types").TenantsState;
|
1464
1450
|
partitions: import("../partitions/types").PartitionsState;
|
1465
1451
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
1466
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
1467
1452
|
tabletsFilters: {
|
1468
1453
|
loading: boolean;
|
1469
1454
|
requestTime: number;
|
@@ -1611,7 +1596,6 @@ export declare const selectIssuesStatistics: ((state: {
|
|
1611
1596
|
tenants: import("../tenants/types").TenantsState;
|
1612
1597
|
partitions: import("../partitions/types").PartitionsState;
|
1613
1598
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
1614
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
1615
1599
|
tabletsFilters: {
|
1616
1600
|
loading: boolean;
|
1617
1601
|
requestTime: number;
|
@@ -1684,7 +1668,6 @@ export declare const selectIssuesStatistics: ((state: {
|
|
1684
1668
|
tenants: import("../tenants/types").TenantsState;
|
1685
1669
|
partitions: import("../partitions/types").PartitionsState;
|
1686
1670
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
1687
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
1688
1671
|
tabletsFilters: {
|
1689
1672
|
loading: boolean;
|
1690
1673
|
requestTime: number;
|
@@ -1750,7 +1733,6 @@ export declare const selectIssuesStatistics: ((state: {
|
|
1750
1733
|
tenants: import("../tenants/types").TenantsState;
|
1751
1734
|
partitions: import("../partitions/types").PartitionsState;
|
1752
1735
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
1753
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
1754
1736
|
tabletsFilters: {
|
1755
1737
|
loading: boolean;
|
1756
1738
|
requestTime: number;
|
@@ -1874,7 +1856,6 @@ export declare const selectIssuesStatistics: ((state: {
|
|
1874
1856
|
tenants: import("../tenants/types").TenantsState;
|
1875
1857
|
partitions: import("../partitions/types").PartitionsState;
|
1876
1858
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
1877
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
1878
1859
|
tabletsFilters: {
|
1879
1860
|
loading: boolean;
|
1880
1861
|
requestTime: number;
|
@@ -2003,7 +1984,6 @@ export declare const selectIssuesStatistics: ((state: {
|
|
2003
1984
|
tenants: import("../tenants/types").TenantsState;
|
2004
1985
|
partitions: import("../partitions/types").PartitionsState;
|
2005
1986
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
2006
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
2007
1987
|
tabletsFilters: {
|
2008
1988
|
loading: boolean;
|
2009
1989
|
requestTime: number;
|
@@ -6,7 +6,67 @@ export declare const FETCH_HOST: {
|
|
6
6
|
readonly FAILURE: "host/FETCH_HOST_FAILURE";
|
7
7
|
};
|
8
8
|
declare const host: Reducer<IHostState, IHostAction>;
|
9
|
-
export declare function getHostInfo(): (dispatch: import("redux").
|
9
|
+
export declare function getHostInfo(): (dispatch: import("redux-thunk").ThunkDispatch<{
|
10
|
+
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
|
11
|
+
singleClusterMode: boolean;
|
12
|
+
cluster: import("./cluster/types").ClusterState;
|
13
|
+
tenant: import("./tenant/types").TenantState;
|
14
|
+
tooltip: import("../../types/store/tooltip").ITooltipState;
|
15
|
+
tablets: import("../../types/store/tablets").TabletsState;
|
16
|
+
schema: import("./schema/types").SchemaState;
|
17
|
+
host: IHostState;
|
18
|
+
tenants: import("./tenants/types").TenantsState;
|
19
|
+
partitions: import("./partitions/types").PartitionsState;
|
20
|
+
executeQuery: import("../../types/store/executeQuery").ExecuteQueryState;
|
21
|
+
tabletsFilters: {
|
22
|
+
loading: boolean;
|
23
|
+
requestTime: number;
|
24
|
+
data: undefined;
|
25
|
+
wasLoaded: boolean;
|
26
|
+
stateFilter: never[];
|
27
|
+
typeFilter: never[];
|
28
|
+
} | {
|
29
|
+
tabletsData: any;
|
30
|
+
nodes: any;
|
31
|
+
loading: boolean;
|
32
|
+
wasLoaded: boolean;
|
33
|
+
timeoutForRequest: number;
|
34
|
+
error: undefined;
|
35
|
+
data: undefined;
|
36
|
+
stateFilter: never[];
|
37
|
+
typeFilter: never[];
|
38
|
+
} | {
|
39
|
+
error: any;
|
40
|
+
loading: boolean;
|
41
|
+
data: undefined;
|
42
|
+
wasLoaded: boolean;
|
43
|
+
stateFilter: never[];
|
44
|
+
typeFilter: never[];
|
45
|
+
} | {
|
46
|
+
stateFilter: any;
|
47
|
+
data: undefined;
|
48
|
+
loading: boolean;
|
49
|
+
wasLoaded: boolean;
|
50
|
+
typeFilter: never[];
|
51
|
+
} | {
|
52
|
+
typeFilter: any;
|
53
|
+
data: undefined;
|
54
|
+
loading: boolean;
|
55
|
+
wasLoaded: boolean;
|
56
|
+
stateFilter: never[];
|
57
|
+
};
|
58
|
+
heatmap: import("../../types/store/heatmap").IHeatmapState;
|
59
|
+
settings: import("./settings/types").SettingsState;
|
60
|
+
schemaAcl: import("./schemaAcl/types").SchemaAclState;
|
61
|
+
executeTopQueries: import("./executeTopQueries/types").TopQueriesFilters;
|
62
|
+
shardsWorkload: import("./shardsWorkload/types").ShardsWorkloadFilters;
|
63
|
+
hotKeys: import("./hotKeys/types").HotKeysState;
|
64
|
+
authentication: import("./authentication/types").AuthenticationState;
|
65
|
+
header: import("./header/types").HeaderState;
|
66
|
+
saveQuery: string | null;
|
67
|
+
fullscreen: boolean;
|
68
|
+
clusters: import("./clusters/types").ClustersFilters;
|
69
|
+
}, undefined, import("redux").UnknownAction> & import("redux").Dispatch<any>, getState: () => {
|
10
70
|
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
|
11
71
|
singleClusterMode: boolean;
|
12
72
|
cluster: import("./cluster/types").ClusterState;
|
@@ -18,7 +78,6 @@ export declare function getHostInfo(): (dispatch: import("redux").Dispatch<impor
|
|
18
78
|
tenants: import("./tenants/types").TenantsState;
|
19
79
|
partitions: import("./partitions/types").PartitionsState;
|
20
80
|
executeQuery: import("../../types/store/executeQuery").ExecuteQueryState;
|
21
|
-
explainQuery: import("../../types/store/explainQuery").ExplainQueryState;
|
22
81
|
tabletsFilters: {
|
23
82
|
loading: boolean;
|
24
83
|
requestTime: number;
|
@@ -11,7 +11,6 @@ export declare const rootReducer: {
|
|
11
11
|
tenants: import("redux").Reducer<import("./tenants/types").TenantsState>;
|
12
12
|
partitions: import("redux").Reducer<import("./partitions/types").PartitionsState>;
|
13
13
|
executeQuery: import("redux").Reducer<import("../../types/store/executeQuery").ExecuteQueryState, import("../../types/store/executeQuery").ExecuteQueryAction>;
|
14
|
-
explainQuery: import("redux").Reducer<import("../../types/store/explainQuery").ExplainQueryState, import("../../types/store/explainQuery").ExplainQueryAction>;
|
15
14
|
tabletsFilters: (state: {
|
16
15
|
data: undefined;
|
17
16
|
loading: boolean;
|
@@ -92,7 +91,6 @@ declare const combinedReducer: import("redux").Reducer<{
|
|
92
91
|
tenants: import("./tenants/types").TenantsState;
|
93
92
|
partitions: import("./partitions/types").PartitionsState;
|
94
93
|
executeQuery: import("../../types/store/executeQuery").ExecuteQueryState;
|
95
|
-
explainQuery: import("../../types/store/explainQuery").ExplainQueryState;
|
96
94
|
tabletsFilters: {
|
97
95
|
loading: boolean;
|
98
96
|
requestTime: number;
|
@@ -153,7 +151,6 @@ declare const combinedReducer: import("redux").Reducer<{
|
|
153
151
|
tenants: import("./tenants/types").TenantsState | undefined;
|
154
152
|
partitions: import("./partitions/types").PartitionsState | undefined;
|
155
153
|
executeQuery: never;
|
156
|
-
explainQuery: never;
|
157
154
|
tabletsFilters: {
|
158
155
|
data: undefined;
|
159
156
|
loading: boolean;
|
@@ -5,7 +5,6 @@ import cluster from './cluster/cluster';
|
|
5
5
|
import clusters from './clusters/clusters';
|
6
6
|
import executeQuery from './executeQuery';
|
7
7
|
import executeTopQueries from './executeTopQueries/executeTopQueries';
|
8
|
-
import explainQuery from './explainQuery';
|
9
8
|
import fullscreen from './fullscreen';
|
10
9
|
import header from './header/header';
|
11
10
|
import heatmap from './heatmap';
|
@@ -35,7 +34,6 @@ export const rootReducer = {
|
|
35
34
|
tenants,
|
36
35
|
partitions,
|
37
36
|
executeQuery,
|
38
|
-
explainQuery,
|
39
37
|
tabletsFilters,
|
40
38
|
heatmap,
|
41
39
|
settings,
|
@@ -12,7 +12,6 @@ export declare const selectNodeStructure: ((state: {
|
|
12
12
|
tenants: import("../tenants/types").TenantsState;
|
13
13
|
partitions: import("../partitions/types").PartitionsState;
|
14
14
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
15
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
16
15
|
tabletsFilters: {
|
17
16
|
loading: boolean;
|
18
17
|
requestTime: number;
|
@@ -14,7 +14,6 @@ export declare const selectNodesMap: ((state: {
|
|
14
14
|
tenants: import("./tenants/types").TenantsState;
|
15
15
|
partitions: import("./partitions/types").PartitionsState;
|
16
16
|
executeQuery: import("../../types/store/executeQuery").ExecuteQueryState;
|
17
|
-
explainQuery: import("../../types/store/explainQuery").ExplainQueryState;
|
18
17
|
tabletsFilters: {
|
19
18
|
loading: boolean;
|
20
19
|
requestTime: number;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { parseQueryAPIExecuteResponse } from '../../utils/query';
|
1
|
+
import { isQueryErrorResponse, parseQueryAPIExecuteResponse } from '../../utils/query';
|
2
2
|
import { api } from './api';
|
3
3
|
function createOlatStatsQuery(path) {
|
4
4
|
return `SELECT * FROM \`${path}/.sys/primary_index_stats\``;
|
@@ -15,6 +15,9 @@ export const olapApi = api.injectEndpoints({
|
|
15
15
|
database: path,
|
16
16
|
action: queryAction,
|
17
17
|
}, { signal });
|
18
|
+
if (isQueryErrorResponse(response)) {
|
19
|
+
return { error: response };
|
20
|
+
}
|
18
21
|
return { data: parseQueryAPIExecuteResponse(response) };
|
19
22
|
}
|
20
23
|
catch (error) {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { parseQueryAPIExecuteResponse } from '../../utils/query';
|
1
|
+
import { isQueryErrorResponse, parseQueryAPIExecuteResponse } from '../../utils/query';
|
2
2
|
import { api } from './api';
|
3
3
|
export const previewApi = api.injectEndpoints({
|
4
4
|
endpoints: (build) => ({
|
@@ -6,6 +6,9 @@ export const previewApi = api.injectEndpoints({
|
|
6
6
|
queryFn: async ({ query, database, action }, { signal }) => {
|
7
7
|
try {
|
8
8
|
const response = await window.api.sendQuery({ schema: 'modern', query, database, action }, { signal });
|
9
|
+
if (isQueryErrorResponse(response)) {
|
10
|
+
return { error: response };
|
11
|
+
}
|
9
12
|
return { data: parseQueryAPIExecuteResponse(response) };
|
10
13
|
}
|
11
14
|
catch (error) {
|
@@ -18,7 +18,67 @@ export declare const initialState: {
|
|
18
18
|
declare const schema: Reducer<SchemaState, SchemaAction>;
|
19
19
|
export declare function getSchema({ path }: {
|
20
20
|
path: string;
|
21
|
-
}): (dispatch:
|
21
|
+
}): (dispatch: import("redux-thunk").ThunkDispatch<{
|
22
|
+
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
|
23
|
+
singleClusterMode: boolean;
|
24
|
+
cluster: import("../cluster/types").ClusterState;
|
25
|
+
tenant: import("../tenant/types").TenantState;
|
26
|
+
tooltip: import("../../../types/store/tooltip").ITooltipState;
|
27
|
+
tablets: import("../../../types/store/tablets").TabletsState;
|
28
|
+
schema: SchemaState;
|
29
|
+
host: import("../../../types/store/host").IHostState;
|
30
|
+
tenants: import("../tenants/types").TenantsState;
|
31
|
+
partitions: import("../partitions/types").PartitionsState;
|
32
|
+
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
33
|
+
tabletsFilters: {
|
34
|
+
loading: boolean;
|
35
|
+
requestTime: number;
|
36
|
+
data: undefined;
|
37
|
+
wasLoaded: boolean;
|
38
|
+
stateFilter: never[];
|
39
|
+
typeFilter: never[];
|
40
|
+
} | {
|
41
|
+
tabletsData: any;
|
42
|
+
nodes: any;
|
43
|
+
loading: boolean;
|
44
|
+
wasLoaded: boolean;
|
45
|
+
timeoutForRequest: number;
|
46
|
+
error: undefined;
|
47
|
+
data: undefined;
|
48
|
+
stateFilter: never[];
|
49
|
+
typeFilter: never[];
|
50
|
+
} | {
|
51
|
+
error: any;
|
52
|
+
loading: boolean;
|
53
|
+
data: undefined;
|
54
|
+
wasLoaded: boolean;
|
55
|
+
stateFilter: never[];
|
56
|
+
typeFilter: never[];
|
57
|
+
} | {
|
58
|
+
stateFilter: any;
|
59
|
+
data: undefined;
|
60
|
+
loading: boolean;
|
61
|
+
wasLoaded: boolean;
|
62
|
+
typeFilter: never[];
|
63
|
+
} | {
|
64
|
+
typeFilter: any;
|
65
|
+
data: undefined;
|
66
|
+
loading: boolean;
|
67
|
+
wasLoaded: boolean;
|
68
|
+
stateFilter: never[];
|
69
|
+
};
|
70
|
+
heatmap: import("../../../types/store/heatmap").IHeatmapState;
|
71
|
+
settings: import("../settings/types").SettingsState;
|
72
|
+
schemaAcl: import("../schemaAcl/types").SchemaAclState;
|
73
|
+
executeTopQueries: import("../executeTopQueries/types").TopQueriesFilters;
|
74
|
+
shardsWorkload: import("../shardsWorkload/types").ShardsWorkloadFilters;
|
75
|
+
hotKeys: import("../hotKeys/types").HotKeysState;
|
76
|
+
authentication: import("../authentication/types").AuthenticationState;
|
77
|
+
header: import("../header/types").HeaderState;
|
78
|
+
saveQuery: string | null;
|
79
|
+
fullscreen: boolean;
|
80
|
+
clusters: import("../clusters/types").ClustersFilters;
|
81
|
+
}, undefined, import("redux").UnknownAction> & Dispatch<any>, getState: () => {
|
22
82
|
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
|
23
83
|
singleClusterMode: boolean;
|
24
84
|
cluster: import("../cluster/types").ClusterState;
|
@@ -30,7 +90,6 @@ export declare function getSchema({ path }: {
|
|
30
90
|
tenants: import("../tenants/types").TenantsState;
|
31
91
|
partitions: import("../partitions/types").PartitionsState;
|
32
92
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
33
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
34
93
|
tabletsFilters: {
|
35
94
|
loading: boolean;
|
36
95
|
requestTime: number;
|
@@ -8,7 +8,67 @@ export declare const FETCH_SCHEMA_ACL: {
|
|
8
8
|
declare const schemaAcl: Reducer<SchemaAclState, SchemaAclAction>;
|
9
9
|
export declare function getSchemaAcl({ path }: {
|
10
10
|
path: string;
|
11
|
-
}): (dispatch: import("redux").
|
11
|
+
}): (dispatch: import("redux-thunk").ThunkDispatch<{
|
12
|
+
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
|
13
|
+
singleClusterMode: boolean;
|
14
|
+
cluster: import("../cluster/types").ClusterState;
|
15
|
+
tenant: import("../tenant/types").TenantState;
|
16
|
+
tooltip: import("../../../types/store/tooltip").ITooltipState;
|
17
|
+
tablets: import("../../../types/store/tablets").TabletsState;
|
18
|
+
schema: import("../schema/types").SchemaState;
|
19
|
+
host: import("../../../types/store/host").IHostState;
|
20
|
+
tenants: import("../tenants/types").TenantsState;
|
21
|
+
partitions: import("../partitions/types").PartitionsState;
|
22
|
+
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
23
|
+
tabletsFilters: {
|
24
|
+
loading: boolean;
|
25
|
+
requestTime: number;
|
26
|
+
data: undefined;
|
27
|
+
wasLoaded: boolean;
|
28
|
+
stateFilter: never[];
|
29
|
+
typeFilter: never[];
|
30
|
+
} | {
|
31
|
+
tabletsData: any;
|
32
|
+
nodes: any;
|
33
|
+
loading: boolean;
|
34
|
+
wasLoaded: boolean;
|
35
|
+
timeoutForRequest: number;
|
36
|
+
error: undefined;
|
37
|
+
data: undefined;
|
38
|
+
stateFilter: never[];
|
39
|
+
typeFilter: never[];
|
40
|
+
} | {
|
41
|
+
error: any;
|
42
|
+
loading: boolean;
|
43
|
+
data: undefined;
|
44
|
+
wasLoaded: boolean;
|
45
|
+
stateFilter: never[];
|
46
|
+
typeFilter: never[];
|
47
|
+
} | {
|
48
|
+
stateFilter: any;
|
49
|
+
data: undefined;
|
50
|
+
loading: boolean;
|
51
|
+
wasLoaded: boolean;
|
52
|
+
typeFilter: never[];
|
53
|
+
} | {
|
54
|
+
typeFilter: any;
|
55
|
+
data: undefined;
|
56
|
+
loading: boolean;
|
57
|
+
wasLoaded: boolean;
|
58
|
+
stateFilter: never[];
|
59
|
+
};
|
60
|
+
heatmap: import("../../../types/store/heatmap").IHeatmapState;
|
61
|
+
settings: import("../settings/types").SettingsState;
|
62
|
+
schemaAcl: SchemaAclState;
|
63
|
+
executeTopQueries: import("../executeTopQueries/types").TopQueriesFilters;
|
64
|
+
shardsWorkload: import("../shardsWorkload/types").ShardsWorkloadFilters;
|
65
|
+
hotKeys: import("../hotKeys/types").HotKeysState;
|
66
|
+
authentication: import("../authentication/types").AuthenticationState;
|
67
|
+
header: import("../header/types").HeaderState;
|
68
|
+
saveQuery: string | null;
|
69
|
+
fullscreen: boolean;
|
70
|
+
clusters: import("../clusters/types").ClustersFilters;
|
71
|
+
}, undefined, import("redux").UnknownAction> & import("redux").Dispatch<any>, getState: () => {
|
12
72
|
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
|
13
73
|
singleClusterMode: boolean;
|
14
74
|
cluster: import("../cluster/types").ClusterState;
|
@@ -20,7 +80,6 @@ export declare function getSchemaAcl({ path }: {
|
|
20
80
|
tenants: import("../tenants/types").TenantsState;
|
21
81
|
partitions: import("../partitions/types").PartitionsState;
|
22
82
|
executeQuery: import("../../../types/store/executeQuery").ExecuteQueryState;
|
23
|
-
explainQuery: import("../../../types/store/explainQuery").ExplainQueryState;
|
24
83
|
tabletsFilters: {
|
25
84
|
loading: boolean;
|
26
85
|
requestTime: number;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { createSlice } from '@reduxjs/toolkit';
|
2
|
-
import { parseQueryAPIExecuteResponse } from '../../../utils/query';
|
2
|
+
import { isQueryErrorResponse, parseQueryAPIExecuteResponse } from '../../../utils/query';
|
3
3
|
import { api } from '../api';
|
4
4
|
import { EShardsWorkloadMode } from './types';
|
5
5
|
const initialState = {};
|
@@ -92,6 +92,9 @@ export const shardApi = api.injectEndpoints({
|
|
92
92
|
}, {
|
93
93
|
signal,
|
94
94
|
});
|
95
|
+
if (isQueryErrorResponse(response)) {
|
96
|
+
return { error: response };
|
97
|
+
}
|
95
98
|
const data = parseQueryAPIExecuteResponse(response);
|
96
99
|
return { data };
|
97
100
|
}
|
@@ -19,7 +19,6 @@ export declare const selectTabletsWithFqdn: ((state: {
|
|
19
19
|
tenants: import("./tenants/types").TenantsState;
|
20
20
|
partitions: import("./partitions/types").PartitionsState;
|
21
21
|
executeQuery: import("../../types/store/executeQuery").ExecuteQueryState;
|
22
|
-
explainQuery: import("../../types/store/explainQuery").ExplainQueryState;
|
23
22
|
tabletsFilters: {
|
24
23
|
loading: boolean;
|
25
24
|
requestTime: number;
|
@@ -1,4 +1,64 @@
|
|
1
|
-
export function getTabletsInfo(data: any): (dispatch: import("redux").
|
1
|
+
export function getTabletsInfo(data: any): (dispatch: import("redux-thunk").ThunkDispatch<{
|
2
|
+
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
|
3
|
+
singleClusterMode: boolean;
|
4
|
+
cluster: import("./cluster/types").ClusterState;
|
5
|
+
tenant: import("./tenant/types").TenantState;
|
6
|
+
tooltip: import("../../types/store/tooltip").ITooltipState;
|
7
|
+
tablets: import("../../types/store/tablets").TabletsState;
|
8
|
+
schema: import("./schema/types").SchemaState;
|
9
|
+
host: import("../../types/store/host").IHostState;
|
10
|
+
tenants: import("./tenants/types").TenantsState;
|
11
|
+
partitions: import("./partitions/types").PartitionsState;
|
12
|
+
executeQuery: import("../../types/store/executeQuery").ExecuteQueryState;
|
13
|
+
tabletsFilters: {
|
14
|
+
loading: boolean;
|
15
|
+
requestTime: number;
|
16
|
+
data: undefined;
|
17
|
+
wasLoaded: boolean;
|
18
|
+
stateFilter: never[];
|
19
|
+
typeFilter: never[];
|
20
|
+
} | {
|
21
|
+
tabletsData: any;
|
22
|
+
nodes: any;
|
23
|
+
loading: boolean;
|
24
|
+
wasLoaded: boolean;
|
25
|
+
timeoutForRequest: number;
|
26
|
+
error: undefined;
|
27
|
+
data: undefined;
|
28
|
+
stateFilter: never[];
|
29
|
+
typeFilter: never[];
|
30
|
+
} | {
|
31
|
+
error: any;
|
32
|
+
loading: boolean;
|
33
|
+
data: undefined;
|
34
|
+
wasLoaded: boolean;
|
35
|
+
stateFilter: never[];
|
36
|
+
typeFilter: never[];
|
37
|
+
} | {
|
38
|
+
stateFilter: any;
|
39
|
+
data: undefined;
|
40
|
+
loading: boolean;
|
41
|
+
wasLoaded: boolean;
|
42
|
+
typeFilter: never[];
|
43
|
+
} | {
|
44
|
+
typeFilter: any;
|
45
|
+
data: undefined;
|
46
|
+
loading: boolean;
|
47
|
+
wasLoaded: boolean;
|
48
|
+
stateFilter: never[];
|
49
|
+
};
|
50
|
+
heatmap: import("../../types/store/heatmap").IHeatmapState;
|
51
|
+
settings: import("./settings/types").SettingsState;
|
52
|
+
schemaAcl: import("./schemaAcl/types").SchemaAclState;
|
53
|
+
executeTopQueries: import("./executeTopQueries/types").TopQueriesFilters;
|
54
|
+
shardsWorkload: import("./shardsWorkload/types").ShardsWorkloadFilters;
|
55
|
+
hotKeys: import("./hotKeys/types").HotKeysState;
|
56
|
+
authentication: import("./authentication/types").AuthenticationState;
|
57
|
+
header: import("./header/types").HeaderState;
|
58
|
+
saveQuery: string | null;
|
59
|
+
fullscreen: boolean;
|
60
|
+
clusters: import("./clusters/types").ClustersFilters;
|
61
|
+
}, undefined, import("redux").UnknownAction> & import("redux").Dispatch<any>, getState: () => {
|
2
62
|
api: import("@reduxjs/toolkit/query").CombinedState<{}, "All", "api">;
|
3
63
|
singleClusterMode: boolean;
|
4
64
|
cluster: import("./cluster/types").ClusterState;
|
@@ -10,7 +70,6 @@ export function getTabletsInfo(data: any): (dispatch: import("redux").Dispatch<i
|
|
10
70
|
tenants: import("./tenants/types").TenantsState;
|
11
71
|
partitions: import("./partitions/types").PartitionsState;
|
12
72
|
executeQuery: import("../../types/store/executeQuery").ExecuteQueryState;
|
13
|
-
explainQuery: import("../../types/store/explainQuery").ExplainQueryState;
|
14
73
|
tabletsFilters: {
|
15
74
|
loading: boolean;
|
16
75
|
requestTime: number;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { TENANT_OVERVIEW_TABLES_LIMIT } from '../../../../utils/constants';
|
2
|
-
import { parseQueryAPIExecuteResponse } from '../../../../utils/query';
|
2
|
+
import { isQueryErrorResponse, parseQueryAPIExecuteResponse } from '../../../../utils/query';
|
3
3
|
import { api } from '../../api';
|
4
4
|
const getQueryText = (path) => {
|
5
5
|
return `
|
@@ -16,13 +16,16 @@ export const topTablesApi = api.injectEndpoints({
|
|
16
16
|
getTopTables: builder.query({
|
17
17
|
queryFn: async ({ path }, { signal }) => {
|
18
18
|
try {
|
19
|
-
const
|
19
|
+
const response = await window.api.sendQuery({
|
20
20
|
schema: 'modern',
|
21
21
|
query: getQueryText(path),
|
22
22
|
database: path,
|
23
23
|
action: 'execute-scan',
|
24
24
|
}, { signal });
|
25
|
-
|
25
|
+
if (isQueryErrorResponse(response)) {
|
26
|
+
return { error: response };
|
27
|
+
}
|
28
|
+
return { data: parseQueryAPIExecuteResponse(response) };
|
26
29
|
}
|
27
30
|
catch (error) {
|
28
31
|
return { error: error || 'Unauthorized' };
|