function createSqlite
createSqlite(options?: SQLiteOptions): SQLiteConnector

Creates a SQLite connector with a shared database instance.

Uses Node.js built-in node:sqlite for in-memory or file-based databases. Ideal for testing or lightweight applications. The shared database instance supports reference counting for multiple concurrent connections.

Examples

In-memory database for testing

import { DB, createInMemory } from "@anabranch/db";
import { createSqlite } from "@anabranch/db-sqlite";

const db = new DB(await createSqlite().connect());
await db.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)");
await db.execute("INSERT INTO users (name) VALUES (?)", ["Alice"]);
const users = await db.query("SELECT * FROM users").run();

Using withConnection for automatic cleanup

import { DB } from "@anabranch/db";
import { createSqlite } from "@anabranch/db-sqlite";

const result = await DB.withConnection(createSqlite(), (db) =>
  db.withTransaction(async (tx) => {
    await tx.execute("INSERT INTO users (name) VALUES (?)", ["Bob"]);
    return tx.query("SELECT * FROM users");
  })
).run();

Stream processing with error collection

import { DB } from "@anabranch/db";
import { createSqlite } from "@anabranch/db-sqlite";

const { successes, errors } = await DB.withConnection(createSqlite(), (db) =>
  db.stream("SELECT * FROM users")
    .map(user => validateUser(user))
    .partition()
).run();

Parameters

optional
options: SQLiteOptions

Return Type