diff options
author | Özgür Kesim <oec-taler@kesim.org> | 2023-08-25 13:24:08 +0200 |
---|---|---|
committer | Özgür Kesim <oec-taler@kesim.org> | 2023-08-25 13:24:08 +0200 |
commit | 5ab3070b3a63c2e8fed0e413dea06cf03fb48f1e (patch) | |
tree | 121425d99c9465f2daf8ac91c6dc2254ebac5906 /packages/idb-bridge/src/sqlite3-interface.ts | |
parent | 70fca92e781696a057089bc8bc48adebdf6e017e (diff) | |
parent | 2051aded501cddac1a4c869fb1f9731ac4523a1e (diff) |
Merge branch 'master' into age-withdraw
Diffstat (limited to 'packages/idb-bridge/src/sqlite3-interface.ts')
-rw-r--r-- | packages/idb-bridge/src/sqlite3-interface.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/packages/idb-bridge/src/sqlite3-interface.ts b/packages/idb-bridge/src/sqlite3-interface.ts new file mode 100644 index 000000000..8668ef844 --- /dev/null +++ b/packages/idb-bridge/src/sqlite3-interface.ts @@ -0,0 +1,34 @@ +export type Sqlite3Database = { + internalDbHandle: any; + exec(sqlStr: string): void; + prepare(stmtStr: string): Sqlite3Statement; + close(): void; +}; +export type Sqlite3Statement = { + internalStatement: any; + + run(params?: BindParams): RunResult; + getAll(params?: BindParams): ResultRow[]; + getFirst(params?: BindParams): ResultRow | undefined; +}; + +export interface RunResult { + lastInsertRowid: number | bigint; +} + +export type Sqlite3Value = string | Uint8Array | number | null | bigint; + +export type BindParams = Record<string, Sqlite3Value | undefined>; +export type ResultRow = Record<string, Sqlite3Value>; + +/** + * Common interface that multiple sqlite3 bindings + * (such as better-sqlite3 or qtart's sqlite3 bindings) + * can adapt to. + * + * This does not expose full sqlite3 functionality, but just enough + * to be used by our IndexedDB sqlite3 backend. + */ +export interface Sqlite3Interface { + open(filename: string): Sqlite3Database; +} |