@@ -3,29 +3,38 @@ import { ClickhouseClient } from "./client/client.js";
33import { ClickhouseReader , ClickhouseWriter } from "./client/types.js" ;
44import { NoopClient } from "./client/noop.js" ;
55import { insertTaskRuns , insertRawTaskRunPayloads } from "./taskRuns.js" ;
6- import { Logger } from "@trigger.dev/core/logger" ;
6+ import { Logger , type LogLevel } from "@trigger.dev/core/logger" ;
7+ import type { Agent as HttpAgent } from "http" ;
8+ import type { Agent as HttpsAgent } from "https" ;
79
810export type * from "./taskRuns.js" ;
911
12+ export type ClickhouseCommonConfig = {
13+ keepAlive ?: {
14+ enabled ?: boolean ;
15+ idleSocketTtl ?: number ;
16+ } ;
17+ httpAgent ?: HttpAgent | HttpsAgent ;
18+ clickhouseSettings ?: ClickHouseSettings ;
19+ logger ?: Logger ;
20+ logLevel ?: LogLevel ;
21+ } ;
22+
1023export type ClickHouseConfig =
11- | {
24+ | ( {
1225 name ?: string ;
1326 url ?: string ;
1427 writerUrl ?: never ;
1528 readerUrl ?: never ;
16- clickhouseSettings ?: ClickHouseSettings ;
17- logger ?: Logger ;
18- }
19- | {
29+ } & ClickhouseCommonConfig )
30+ | ( {
2031 name ?: never ;
2132 url ?: never ;
2233 writerName ?: string ;
2334 writerUrl : string ;
2435 readerName ?: string ;
2536 readerUrl : string ;
26- clickhouseSettings ?: ClickHouseSettings ;
27- logger ?: Logger ;
28- } ;
37+ } & ClickhouseCommonConfig ) ;
2938
3039export class ClickHouse {
3140 public readonly reader : ClickhouseReader ;
@@ -47,6 +56,9 @@ export class ClickHouse {
4756 url : config . url ,
4857 clickhouseSettings : config . clickhouseSettings ,
4958 logger : this . logger ,
59+ logLevel : config . logLevel ,
60+ keepAlive : config . keepAlive ,
61+ httpAgent : config . httpAgent ,
5062 } ) ;
5163 this . reader = client ;
5264 this . writer = client ;
@@ -58,12 +70,18 @@ export class ClickHouse {
5870 url : config . readerUrl ,
5971 clickhouseSettings : config . clickhouseSettings ,
6072 logger : this . logger ,
73+ logLevel : config . logLevel ,
74+ keepAlive : config . keepAlive ,
75+ httpAgent : config . httpAgent ,
6176 } ) ;
6277 this . writer = new ClickhouseClient ( {
6378 name : config . writerName ?? "clickhouse-writer" ,
6479 url : config . writerUrl ,
6580 clickhouseSettings : config . clickhouseSettings ,
6681 logger : this . logger ,
82+ logLevel : config . logLevel ,
83+ keepAlive : config . keepAlive ,
84+ httpAgent : config . httpAgent ,
6785 } ) ;
6886
6987 this . _splitClients = true ;
0 commit comments