@bhagat-surya-dev/dashchat-database-manager
Version:
AI-powered database schema analysis and management library
53 lines • 1.99 kB
TypeScript
import { FormattedSchema } from './type';
export interface LogContext {
method: string;
action?: string;
duration?: number;
metadata?: Record<string, unknown>;
}
export declare enum LogLevel {
INFO = "INFO",
WARN = "WARN",
ERROR = "ERROR",
DEBUG = "DEBUG"
}
export interface RawColumnInfo {
column_name: string;
data_type: string;
is_nullable?: string;
type?: string;
present_in_all_samples?: boolean;
}
export interface RawTableSchema {
name: string;
columns: RawColumnInfo[];
}
export interface RawTableData {
name: string;
sampleData: Record<string, unknown>[];
}
export interface DatabaseHandlerOptions {
timeout?: number;
maxSampleSize?: number;
loggerFn?: (level: LogLevel, context: LogContext, message: string) => void;
}
export interface DatabaseHandler {
getSchemaInfo(databaseUrl: string): Promise<FormattedSchema>;
testConnection(databaseUrl: string): Promise<boolean>;
getDatabaseType(): string;
}
export declare abstract class BaseDatabaseHandler implements DatabaseHandler {
protected timeout: number;
protected maxSampleSize: number;
protected loggerFn?: (level: LogLevel, context: LogContext, message: string) => void;
constructor(options?: DatabaseHandlerOptions);
abstract getSchemaInfo(databaseUrl: string): Promise<FormattedSchema>;
abstract testConnection(databaseUrl: string): Promise<boolean>;
abstract getDatabaseType(): string;
protected withTimeout<T>(promise: Promise<T>, ms?: number, errorMsg?: string): Promise<T>;
protected log(level: LogLevel, context: LogContext, message: string): void;
protected formatLogMessage(level: LogLevel, context: LogContext, message: string): string;
protected logError(method: string, error: Error | unknown, context?: Record<string, unknown>): void;
protected logInfo(method: string, message: string, data?: Record<string, unknown>): void;
}
//# sourceMappingURL=base-handler.d.ts.map