import { createClient as createClickhouseClient } from "@clickhouse/client"; import type { DataFormat } from "@clickhouse/client"; import { Env } from "@humanwhocodes/env"; const env = new Env(); const { CLICKHOUSE_USER, CLICKHOUSE_PASS } = env.required; const CLICKHOUSE_HOST = env.get("CLICKHOUSE_HOST", "http://localhost:8123"); export const clickhouse = createClickhouseClient({ host: CLICKHOUSE_HOST, username: CLICKHOUSE_USER, password: CLICKHOUSE_PASS, }); export async function query( queryString: string, format: DataFormat = "JSONEachRow" ): Promise> { return await ( await clickhouse.query({ query: queryString, format, clickhouse_settings: { output_format_json_quote_64bit_integers: 0, //output_format_json_quote_64bit_floats: false, //output_format_json_quote_64bit_decimals: false, }, }) ).json(); }