Interface: ISql
Defined in: Data/Core/ISql.ts:53
Abstraction layer for SQL database operations.
This interface provides a clean abstraction over SQLite (or potentially other SQL databases) allowing repositories to execute queries without directly depending on the database implementation.
Implementations:
- SqliteProvider in @bible/desktop (better-sqlite3, compiled for Electron)
- SqliteProvider in @bible/web (better-sqlite3, for Express server)
- Custom implementations for other platforms or testing
Example usage:
// Obtain an ISql instance from your platform's provider
const sql: ISql = createYourSqlProvider('path/to/database.db');
const user = sql.queryOne<User>('SELECT * FROM users WHERE id = ?', [userId]);
const users = sql.queryAll<User>('SELECT * FROM users WHERE age > ?', [18]);
const result = sql.execute('INSERT INTO users (name, email) VALUES (?, ?)', ['John', 'john@example.com']);
Methods
close()
close():
void
Defined in: Data/Core/ISql.ts:88
Close the database connection
Returns
void
execute()
execute(
sql,params?):SqlResult
Defined in: Data/Core/ISql.ts:76
Execute a SQL statement (INSERT, UPDATE, DELETE) that doesn't return rows
Parameters
sql
string
SQL statement string
params?
SqlParameter[] | {[key: string]: SqlParameter; }
Optional bind parameters
Returns
Result containing number of affected rows and last insert ID
getDatabasePath()
getDatabasePath():
string
Defined in: Data/Core/ISql.ts:98
Get the file path of the database
Returns
string
isOpen()
isOpen():
boolean
Defined in: Data/Core/ISql.ts:93
Check if the database connection is open
Returns
boolean
queryAll()
queryAll<
T>(sql,params?):T[]
Defined in: Data/Core/ISql.ts:68
Execute a SQL query and return all matching rows
Type Parameters
T
T = SqlRow
Parameters
sql
string
SQL query string
params?
SqlParameter[] | {[key: string]: SqlParameter; }
Optional bind parameters
Returns
T[]
Array of result rows
queryOne()
queryOne<
T>(sql,params?):T|undefined
Defined in: Data/Core/ISql.ts:60
Execute a SQL query and return a single row
Type Parameters
T
T = SqlRow
Parameters
sql
string
SQL query string
params?
SqlParameter[] | {[key: string]: SqlParameter; }
Optional bind parameters
Returns
T | undefined
Single row result, or undefined if no rows match
transaction()
transaction<
T>(callback):T
Defined in: Data/Core/ISql.ts:83
Execute multiple SQL statements within a transaction
Type Parameters
T
T
Parameters
callback
() => T
Function containing the operations to execute within the transaction
Returns
T
Result of the callback function