sqlocal
Version:
SQLocal makes it easy to run SQLite3 in the browser, backed by the origin private file system.
34 lines (33 loc) • 1.64 kB
TypeScript
import type { DataChange, DriverConfig, DriverStatement, RawResultData, Sqlite3, Sqlite3Db, Sqlite3InitModule, Sqlite3StorageType, SQLocalDriver, UserFunction } from '../types.js';
/**
* A SQLocal driver that implements the interface needed for
* interacting with SQLite databases in memory.
*/
export declare class SQLiteMemoryDriver implements SQLocalDriver {
protected sqlite3InitModule?: Sqlite3InitModule;
protected sqlite3?: Sqlite3;
protected db?: Sqlite3Db;
protected config?: DriverConfig;
protected pointers: number[];
protected writeCallbacks: Set<(change: DataChange) => void>;
readonly storageType: Sqlite3StorageType;
constructor(sqlite3InitModule?: Sqlite3InitModule);
init(config: DriverConfig): Promise<void>;
onWrite(callback: (change: DataChange) => void): () => void;
exec(statement: DriverStatement): Promise<RawResultData>;
execBatch(statements: DriverStatement[], method?: 'transaction' | 'savepoint'): Promise<RawResultData[]>;
isDatabasePersisted(): Promise<boolean>;
getDatabaseSizeBytes(): Promise<number>;
createFunction(fn: UserFunction): Promise<void>;
import(database: ArrayBuffer | Uint8Array<ArrayBuffer> | ReadableStream<Uint8Array<ArrayBuffer>>): Promise<void>;
export(): Promise<{
name: string;
data: ArrayBuffer | Uint8Array<ArrayBuffer>;
}>;
clear(): Promise<void>;
destroy(): Promise<void>;
protected getFlags(config: DriverConfig): string;
protected execOnDb(db: Sqlite3Db, statement: DriverStatement): RawResultData;
protected initWriteHook(): void;
protected closeDb(): void;
}