Database API
Database API
Section titled “Database API”The database API provides methods for connecting to and querying your database.
Configuration
Section titled “Configuration”The database type is configured via environment variables:
DATABASE_TYPE = 'sqlite' | 'pg'
Methods
Section titled “Methods”executeQuery()
Section titled “executeQuery()”Executes a database query with parameters.
async function executeQuery<T>( sql: string, params?: any[]): Promise<T[]>
Parameters
Section titled “Parameters”sql
(string): SQL query stringparams
(any[]): Optional query parameters
Returns
Section titled “Returns”Returns an array of result rows.
Example
Section titled “Example”const users = await executeQuery<User>( 'SELECT * FROM users WHERE group_id = ?', [groupId])
transaction()
Section titled “transaction()”Executes multiple queries in a transaction.
async function transaction<T>( queries: Array<{sql: string, params?: any[]}>): Promise<T>
Example
Section titled “Example”await transaction([ { sql: 'INSERT INTO users (email, name) VALUES (?, ?)', params: ['user@example.com', 'John Doe'] }, { sql: 'INSERT INTO groups_users (user_id, group_id) VALUES (?, ?)', params: [userId, groupId] }])
Database Providers
Section titled “Database Providers”SQLite
Section titled “SQLite”Supported providers:
- Turso
- SQLite Cloud
- Cloudflare D1
Configuration:
TURSO_SQLITE_URL=your-turso-urlTURSO_SQLITE_AUTH_TOKEN=your-turso-token
PostgreSQL
Section titled “PostgreSQL”Configuration:
POSTGRES_DIRECT_URL=your-postgres-urlPOSTGRES_SESSION_POOLED_URL=your-pooled-url
Error Handling
Section titled “Error Handling”All database methods throw typed errors:
try { await executeQuery('SELECT * FROM users')} catch (error) { if (error instanceof DatabaseError) { console.error('Database error:', error.code, error.message) }}