@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
TypeScript
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