LCOV - code coverage report
Current view: top level - dashql-app/src/compute - compute_connection_provider.tsx Coverage Total Hit
Test: DashQL 915828b Lines: 100.0 % 27 27
Test Date: 2026-11-06 19:30:32

            Line data    Source code
       1              : import * as React from 'react';
       2              : 
       3              : import type { EmbeddedComputeDatabase } from '../platform/database/embedded_database.js';
       4              : import { useEmbeddedDatabaseSetup } from '../platform/database/embedded_database_provider.js';
       5              : import { useLogger } from '../platform/logger/logger_provider.js';
       6              : import { stringifyError } from '../platform/logger/logger.js';
       7              : 
       8            1 : const COMPUTE_DB_CTX = React.createContext<EmbeddedComputeDatabase | null>(null);
       9              : 
      10              : interface Props {
      11              :     children?: React.ReactElement;
      12              : }
      13              : 
      14            1 : export const ComputeConnectionProvider: React.FC<Props> = (props: Props) => {
      15            1 :     const logger = useLogger();
      16            1 :     const setupEmbeddedDatabase = useEmbeddedDatabaseSetup();
      17            1 :     const [database, setDatabase] = React.useState<EmbeddedComputeDatabase | null>(null);
      18              : 
      19            1 :     React.useEffect(() => {
      20            1 :         let cancelled = false;
      21            1 :         const init = async () => {
      22            1 :             try {
      23            1 :                 const embeddedDatabase = await setupEmbeddedDatabase("compute");
      24            1 :                 if (!cancelled) {
      25            1 :                     setDatabase(embeddedDatabase);
      26              :                 }
      27            1 :             } catch (e: any) {
      28            1 :                 logger.warn("Failed to create compute database", { error: stringifyError(e) }, "compute");
      29            1 :             }
      30            1 :         };
      31            1 :         init();
      32            1 :         return () => { cancelled = true; };
      33            1 :     }, [setupEmbeddedDatabase, logger]);
      34              : 
      35            1 :     return (
      36            1 :         <COMPUTE_DB_CTX.Provider value={database}>
      37            1 :             {props.children}
      38            1 :         </COMPUTE_DB_CTX.Provider>
      39              :     );
      40            1 : };
      41              : 
      42            1 : export function useComputeDatabase(): EmbeddedComputeDatabase | null {
      43            1 :     return React.useContext(COMPUTE_DB_CTX);
      44            1 : }
        

Generated by: LCOV version 2.0-1