UNPKG

neverchange

Version:

NeverChange is a database solution for web applications using SQLite WASM and OPFS.

49 lines (48 loc) 1.46 kB
export interface SQLiteExecutionResult { type: string; dbId: string; messageId: string; workerReceivedTime: number; workerRespondTime: number; departureTime: number; result: { sql: string; bind: any[]; dbId: string; }; } export type ExecuteResult = { r: SQLiteExecutionResult; }; export type QueryResult<T> = T[]; export interface NeverChangeDB { init(): Promise<void>; execute(sql: string, params?: any[]): Promise<ExecuteResult>; query<T = any>(sql: string, params?: any[]): Promise<QueryResult<T>>; close(): Promise<void>; addMigrations(migrations: Migration[]): void; dumpDatabase(options?: { compatibilityMode?: boolean; table?: string; }): Promise<string>; importDump(dumpContent: string, options?: { compatibilityMode?: boolean; }): Promise<void>; dumpTableToCSV(tableName: string, options?: { quoteAllFields?: boolean; }): Promise<string>; importCSVToTable(tableName: string, csvContent: string): Promise<void>; transaction<T>(fn: (tx: NeverChangeDB) => Promise<T>): Promise<T>; rollback(): Promise<never>; commit(): Promise<void>; } export interface NeverChangeDBConstructor { new (dbName: string, options?: { debug?: boolean; isMigrationActive?: boolean; }): NeverChangeDB; } export interface Migration { version: number; up: (db: NeverChangeDB) => Promise<void>; }