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

            Line data    Source code
       1              : import * as React from 'react';
       2              : 
       3              : import { useLogger } from '../logger/logger_provider.js';
       4              : import { isDesktopHost } from '../native_globals.js';
       5              : import { NativeHttpClient } from './native_http_client.js';
       6              : import { WebHttpClient } from './web_http_client.js';
       7              : import { HttpClient } from './http_client.js';
       8              : import { HttpRequestLog, RecordingHttpClient } from './http_request_log.js';
       9              : 
      10              : type Props = {
      11              :     children: React.ReactElement;
      12              : };
      13              : 
      14            1 : const CLIENT_CTX = React.createContext<HttpClient | null>(null);
      15            1 : const REQUEST_LOG_CTX = React.createContext<HttpRequestLog | null>(null);
      16            1 : export const useHttpClient = () => React.useContext(CLIENT_CTX)!;
      17              : /// The log of the requests of the http client, null outside of the provider
      18            1 : export const useHttpRequestLog = () => React.useContext(REQUEST_LOG_CTX);
      19              : 
      20            1 : export const HttpClientProvider: React.FC<Props> = (props: Props) => {
      21            1 :     const logger = useLogger();
      22            1 :     const [requestLog] = React.useState(() => new HttpRequestLog());
      23            1 :     const client = React.useMemo<HttpClient>(() => new RecordingHttpClient(isDesktopHost()
      24            1 :         ? new NativeHttpClient({ proxyEndpoint: new URL("dashql-native://localhost") }, logger)
      25            1 :         : new WebHttpClient(logger), requestLog), [logger, requestLog]);
      26            1 :     return (
      27            1 :         <REQUEST_LOG_CTX.Provider value={requestLog}>
      28            1 :             <CLIENT_CTX.Provider value={client}>{props.children}</CLIENT_CTX.Provider>
      29            1 :         </REQUEST_LOG_CTX.Provider>
      30              :     );
      31            1 : };
        

Generated by: LCOV version 2.0-1