UNPKG

@proddata/node-cratedb

Version:
111 lines (110 loc) 2.85 kB
import type { RequestOptions } from 'http'; export interface CrateDBConfig { user: string; password: string; jwt: string | null; host: string; port: number; defaultSchema: string | null; connectionString: string | null; ssl: boolean; keepAlive: boolean; maxConnections: number; deserialization: DeserializationConfig; rowMode?: 'array' | 'object'; compression: CompressionOptions; } type CompressionOptions = { request: 'gzip' | 'none'; response: 'gzip' | 'none'; }; export type DeserializationConfig = { long: 'bigint' | 'number'; timestamp: 'date' | 'number'; date: 'date' | 'number'; }; export type QueryConfig = { rowMode?: 'array' | 'object'; httpOptions?: RequestOptions; }; export interface CrateDBBaseResponse { rows?: unknown[]; cols?: string[]; col_types?: number[]; duration?: number; rowcount?: number; durations: { cratedb?: number; request: number; encoding?: number; preparation?: number; deserialization?: number; total?: number; }; sizes: { request: number; response: number; requestUncompressed?: number; }; error?: { code: number; message: string; }; results?: Array<CrateDBBulkRecord>; } export interface CrateDBResponse extends CrateDBBaseResponse { cols: string[]; col_types: number[]; rows: unknown[][]; rowcount: number; duration: number; } export interface CrateDBBulkResponse extends CrateDBBaseResponse { results: Array<CrateDBBulkRecord>; bulk_errors?: number[]; duration: number; } export interface CrateDBBulkRecord { rowcount: number; error?: { code: number; message: string; }; } export interface CrateDBErrorResponse { error: { message: string; code: number; }; error_trace?: string; } export type CrateDBRecord = Record<string, unknown>; export type OptimizeOptions = { max_num_segments?: number; only_expunge_deletes?: boolean; flush?: boolean; }; export type ObjectMode = 'strict' | 'dynamic' | 'ignored'; export type ObjectColumnDefinition = { type: 'object'; mode?: ObjectMode; properties?: Record<string, ColumnDefinition | ObjectColumnDefinition>; }; export type BaseColumnDefinition = { type: string; notNull?: boolean; defaultValue?: string | number | boolean | undefined; primaryKey?: boolean; generatedAlways?: string; }; export type ColumnDefinition = BaseColumnDefinition | ObjectColumnDefinition; /** * Defines additional table options such as clustering, partitioning, and replicas. */ export type TableOptions = { clusteredBy?: string; partitionedBy?: string[]; numberOfShards?: number; numberOfReplicas?: string | number; }; export {};