LCOV - code coverage report
Current view: top level - dashql-app/src/ui/vegalite - vegalite_loader.ts Coverage Total Hit
Test: DashQL 915828b Lines: 86.7 % 15 13
Test Date: 2026-11-06 19:30:32

            Line data    Source code
       1              : /// The modules that render Vega-Lite charts, loaded on first use to keep them out of the startup bundle.
       2              : export interface VegaModules {
       3              :     /// Embed a Vega-Lite spec into an element
       4              :     embed: typeof import('vega-embed').default;
       5              :     /// The Vega runtime, e.g. to build changesets
       6              :     vega: typeof import('vega-embed').vega;
       7              :     /// The Vega-Lite compiler, e.g. to check specs
       8              :     vegaLite: typeof import('vega-embed').vegaLite;
       9              :     /// The expression interpreter, it avoids the `Function()` eval of Vega that CSP forbids
      10              :     expressionInterpreter: typeof import('vega-interpreter').expressionInterpreter;
      11              : }
      12              : 
      13            1 : let loading: Promise<VegaModules> | null = null;
      14              : 
      15              : /// Load the Vega modules once
      16            1 : export function loadVega(): Promise<VegaModules> {
      17            1 :     loading ??= Promise.all([import('vega-embed'), import('vega-interpreter')])
      18            1 :         .then(([embed, interpreter]) => ({
      19            1 :             embed: embed.default,
      20            1 :             vega: embed.vega,
      21            1 :             vegaLite: embed.vegaLite,
      22            1 :             expressionInterpreter: interpreter.expressionInterpreter,
      23            1 :         }))
      24            1 :         .catch(error => {
      25            0 :             loading = null;
      26            0 :             throw error;
      27            1 :         });
      28            1 :     return loading;
      29            1 : }
        

Generated by: LCOV version 2.0-1