UNPKG

@dqcai/sqlite

Version:

Universal SQLite adapter for Node.js, Browser, Deno, Bun, and React Native with a unified API and query builder.

65 lines 2.86 kB
import { DatabaseSchema, ImportOptions, ImportResult, QueryTable, SQLiteAdapter, SQLiteResult, SQLiteRow, TypeMappingConfig, ColumnMapping } from "../types"; export declare class UniversalDAO { private adapter; private dbPath; private options?; private connection; private isConnected; private inTransaction; private typeMappingConfig; private createIfNotExists; private forceRecreate; private logger; constructor(adapter: SQLiteAdapter, dbPath: string, options?: { createIfNotExists?: boolean; forceRecreate?: boolean; } | undefined); connect(): Promise<void>; disconnect(): Promise<void>; close(): Promise<void>; setTypeMappingConfig(config: TypeMappingConfig["type_mapping"]): void; private convertToSQLiteType; private getDefaultSQLiteType; private processColumnDefinition; initializeFromSchema(schema: DatabaseSchema): Promise<void>; private dropAllTables; private createTableWithForeignKeys; private createIndexesForTable; beginTransaction(): Promise<void>; commitTransaction(): Promise<void>; rollbackTransaction(): Promise<void>; getSchemaVersion(): Promise<string>; setSchemaVersion(version: string): Promise<void>; insert(insertTable: QueryTable): Promise<SQLiteResult>; update(updateTable: QueryTable): Promise<SQLiteResult>; delete(deleteTable: QueryTable): Promise<SQLiteResult>; select(selectTable: QueryTable): Promise<SQLiteRow>; selectAll(selectTable: QueryTable): Promise<SQLiteRow[]>; private buildSelectQuery; private buildWhereClause; convertJsonToQueryTable(tableName: string, json: Record<string, any>, idFields?: string[]): QueryTable; importData(options: ImportOptions): Promise<ImportResult>; importDataWithMapping(tableName: string, data: Record<string, any>[], columnMappings: ColumnMapping[], options?: Partial<ImportOptions>): Promise<ImportResult>; importFromCSV(tableName: string, csvData: string, options?: { delimiter?: string; hasHeader?: boolean; columnMappings?: ColumnMapping[]; } & Partial<ImportOptions>): Promise<ImportResult>; private validateAndTransformRow; private transformRowData; private findValueForColumn; private convertValueToColumnType; private insertRow; private insertOrUpdate; private updateRowByColumns; private isConflictError; getDatabaseInfo(): Promise<any>; getTableInfo(tableName: string): Promise<any[]>; dropTable(tableName: string): Promise<void>; isConnectionOpen(): boolean; ensureConnected(): Promise<void>; execute(sql: string, params?: any[]): Promise<SQLiteResult>; getRst(sql: string, params?: any[]): Promise<SQLiteRow>; getRsts(sql: string, params?: any[]): Promise<SQLiteRow[]>; } //# sourceMappingURL=universal-dao.d.ts.map