Skip to content

Commit 0478813

Browse files
committed
lazy load React components + VegaParser (elastic#64749)
1 parent ad5450f commit 0478813

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

src/plugins/vis_type_vega/public/vega_request_handler.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919

2020
import { Filter, esQuery, TimeRange, Query } from '../../data/public';
2121

22-
// @ts-ignore
23-
import { VegaParser } from './data_model/vega_parser';
2422
// @ts-ignore
2523
import { SearchCache } from './data_model/search_cache';
2624
// @ts-ignore
@@ -46,7 +44,12 @@ export function createVegaRequestHandler({
4644
const { timefilter } = data.query.timefilter;
4745
const timeCache = new TimeCache(timefilter, 3 * 1000);
4846

49-
return ({ timeRange, filters, query, visParams }: VegaRequestHandlerParams) => {
47+
return async function vegaRequestHandler({
48+
timeRange,
49+
filters,
50+
query,
51+
visParams,
52+
}: VegaRequestHandlerParams) {
5053
if (!searchCache) {
5154
searchCache = new SearchCache(getData().search.__LEGACY.esClient, {
5255
max: 10,
@@ -58,8 +61,10 @@ export function createVegaRequestHandler({
5861

5962
const esQueryConfigs = esQuery.getEsQueryConfig(uiSettings);
6063
const filtersDsl = esQuery.buildEsQuery(undefined, query, filters, esQueryConfigs);
64+
// @ts-ignore
65+
const { VegaParser } = await import('./data_model/vega_parser');
6166
const vp = new VegaParser(visParams.spec, searchCache, timeCache, filtersDsl, serviceSettings);
6267

63-
return vp.parseAsync();
68+
return await vp.parseAsync();
6469
};
6570
}

src/plugins/vis_type_vega/public/vega_visualization.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
* under the License.
1818
*/
1919
import { i18n } from '@kbn/i18n';
20-
import { VegaView } from './vega_view/vega_view';
21-
import { VegaMapView } from './vega_view/vega_map_view';
2220
import { getNotifications, getData, getSavedObjects } from './services';
2321

2422
export const createVegaVisualization = ({ serviceSettings }) =>
@@ -117,8 +115,10 @@ export const createVegaVisualization = ({ serviceSettings }) =>
117115

118116
if (vegaParser.useMap) {
119117
const services = { toastService: getNotifications().toasts };
118+
const { VegaMapView } = await import('./vega_view/vega_map_view');
120119
this._vegaView = new VegaMapView(vegaViewParams, services);
121120
} else {
121+
const { VegaView } = await import('./vega_view/vega_view');
122122
this._vegaView = new VegaView(vegaViewParams);
123123
}
124124
await this._vegaView.init();

0 commit comments

Comments
 (0)