JSPM

@remix-run/data-table-sqlite

0.4.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2569
  • Score
    100M100P100Q112041F
  • License MIT

SQLite adapter for remix/data-table

Package Exports

  • @remix-run/data-table-sqlite
  • @remix-run/data-table-sqlite/package.json

Readme

data-table-sqlite

SQLite adapter for remix/data-table. Use this package when you want data-table APIs backed by a synchronous SQLite client.

Features

  • Native Runtime SQLite Support: Works with Node's node:sqlite DatabaseSync, Bun's bun:sqlite Database, and compatible synchronous SQLite clients
  • Full data-table API Support: Queries, relations, writes, and transactions
  • Adapter-Owned Compiler: SQL compilation lives in this adapter, with optional shared pure helpers from data-table
  • Migration DDL Support: Compiles and executes DataMigrationOperation operations for remix/data-table/migrations
  • SQLite Capabilities Enabled By Default:
    • returning: true
    • savepoints: true
    • upsert: true
    • transactionalDdl: true
    • migrationLock: false

Installation

npm i remix

Usage

Node

import { DatabaseSync } from 'node:sqlite'
import { createDatabase } from 'remix/data-table'
import { createSqliteDatabaseAdapter } from 'remix/data-table-sqlite'

let sqlite = new DatabaseSync('app.db')
let db = createDatabase(createSqliteDatabaseAdapter(sqlite))

Bun

import { Database } from 'bun:sqlite'
import { createDatabase } from 'remix/data-table'
import { createSqliteDatabaseAdapter } from 'remix/data-table-sqlite'

let sqlite = new Database('app.db')
let db = createDatabase(createSqliteDatabaseAdapter(sqlite))

This is a good fit for local development, embedded deployments, and single-node services. Import any driver-specific types you need directly from your runtime's SQLite module.

Adapter Capabilities

data-table-sqlite reports this capability set by default:

  • returning: true
  • savepoints: true
  • upsert: true
  • transactionalDdl: true
  • migrationLock: false

Advanced Usage

In-Memory Database For Tests

import { DatabaseSync } from 'node:sqlite'
import { createDatabase } from 'remix/data-table'
import { createSqliteDatabaseAdapter } from 'remix/data-table-sqlite'

let sqlite = new DatabaseSync(':memory:')
let db = createDatabase(createSqliteDatabaseAdapter(sqlite))

License

See LICENSE