remote-sql
v0.0.7
Published
TypeScript interface for remote SQL databases with batch transaction support
Maintainers
Readme
remote-sql
TypeScript interface for remote SQL databases with batch transaction support.
Overview
remote-sql provides a type-safe interface that abstracts different SQL database backends. It focuses on batch-based transaction workflows, which are commonly used in serverless and edge computing environments where remote SQL operations are required.
Installation
pnpm add remote-sqlUsage
Types
The package exports the following types:
SQLStatement- A SQL statement with optional parameters ({sql: string; args: any[]} | string)SQLResult<T>- Result type for SQL queries ({results: T[]})SQLPreparedStatement- Prepared statement interface with bind and execute methodsRemoteSQL- Main database interface
Example
import type { RemoteSQL, SQLPreparedStatement, SQLResult } from 'remote-sql';
// Prepare a statement
const stmt = remoteSQL.prepare('SELECT * FROM users WHERE id = ?');
// Bind parameters and execute
const result: SQLResult<User> = await stmt.bind(userId).all<User>();
// Execute multiple statements as a batch
const stmt1 = remoteSQL.prepare('INSERT INTO users (name) VALUES (?)').bind('Alice');
const stmt2 = remoteSQL.prepare('INSERT INTO users (name) VALUES (?)').bind('Bob');
const results = await remoteSQL.batch([stmt1, stmt2]);API
RemoteSQL
prepare(sql: string): SQLPreparedStatement
Creates a prepared statement from a SQL string.
batch<T>(list: SQLPreparedStatement[]): Promise<SQLResult<T>[]>
Executes multiple prepared statements as a batch transaction.
SQLPreparedStatement
bind(...values: any[]): SQLPreparedStatement
Binds values to the prepared statement parameters. Returns a new prepared statement.
all<T>(): Promise<SQLResult<T>>
Executes the prepared statement and returns all results.
License
MIT
