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

            Line data    Source code
       1              : import * as React from 'react';
       2              : 
       3              : import { TrinoApiClient, TrinoApiClientInterface } from "./trino_api_client.js";
       4              : import { useLogger } from '../../platform/logger/logger_provider.js';
       5              : import { useAppConfig } from '../../config/app_config.js';
       6              : import { useHttpClient } from '../../platform/http/http_client_provider.js';
       7              : import { createTrinoSetup, TrinoSetupApi } from './trino_connection_setup.js';
       8              : import { usePlatformType } from '../../platform/platform_type.js';
       9              : 
      10            1 : const API_CTX = React.createContext<TrinoApiClientInterface | null>(null);
      11            1 : export const SETUP_CTX = React.createContext<TrinoSetupApi | null>(null);
      12              : 
      13              : interface Props {
      14              :     children: React.ReactElement;
      15              : }
      16              : 
      17            1 : export const TrinoConnector: React.FC<Props> = (props: Props) => {
      18            1 :     const logger = useLogger();
      19            1 :     const config = useAppConfig();
      20            1 :     const httpClient = useHttpClient();
      21            1 :     const platformType = usePlatformType();
      22            1 :     const connectorConfig = config?.connectors?.trino;
      23            1 :     const forceReLogin = config?.settings?.forceReLogin ?? false;
      24              : 
      25            1 :     const [api, setup] = React.useMemo(() => {
      26            1 :         if (!connectorConfig) {
      27            1 :             return [null, null];
      28            1 :         } else {
      29            1 :             const api: TrinoApiClientInterface = new TrinoApiClient(logger, httpClient);
      30            1 :             const setup = createTrinoSetup(api!, connectorConfig, logger, httpClient, platformType, forceReLogin);
      31            1 :             return [api, setup];
      32            1 :         }
      33            1 :     }, [connectorConfig, httpClient, platformType, forceReLogin]);
      34              : 
      35            1 :     return (
      36            1 :         <API_CTX.Provider value={api}>
      37            1 :             <SETUP_CTX.Provider value={setup}>
      38            1 :                 {props.children}
      39            1 :             </SETUP_CTX.Provider>
      40            1 :         </API_CTX.Provider>
      41              :     );
      42            1 : }
      43              : 
      44              : export const useTrinoAPI = (): TrinoApiClientInterface => React.useContext(API_CTX)!;
      45            1 : export const useTrinoSetup = (): TrinoSetupApi => React.useContext(SETUP_CTX)!;
        

Generated by: LCOV version 2.0-1