JSPM

@tanstack/cloudflare-durable-objects-db-sqlite-persistence

0.1.9
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 142
  • Score
    100M100P100Q101236F
  • License MIT

Cloudflare Durable Object SQLite persisted collection adapter for TanStack DB

Package Exports

  • @tanstack/cloudflare-durable-objects-db-sqlite-persistence
  • @tanstack/cloudflare-durable-objects-db-sqlite-persistence/package.json

Readme

@tanstack/cloudflare-durable-objects-db-sqlite-persistence

Thin SQLite persistence for Cloudflare Durable Objects.

Public API

  • createCloudflareDOSQLitePersistence(...)
  • persistedCollectionOptions(...) (re-exported from core)

Quick start

import { createCollection } from '@tanstack/db'
import {
  createCloudflareDOSQLitePersistence,
  persistedCollectionOptions,
} from '@tanstack/cloudflare-durable-objects-db-sqlite-persistence'

type Todo = {
  id: string
  title: string
  completed: boolean
}

export class TodosObject extends DurableObject {
  persistence = createCloudflareDOSQLitePersistence({
    // Pass full storage to use native DO transaction support.
    storage: this.ctx.storage,
  })

  todos = createCollection(
    persistedCollectionOptions<Todo, string>({
      id: `todos`,
      getKey: (todo) => todo.id,
      persistence: this.persistence,
      schemaVersion: 1, // Per-collection schema version
    }),
  )
}

Notes

  • One shared persistence instance can serve multiple collections.
  • Mode defaults are inferred from collection usage:
    • sync config present => sync-present-reset
    • no sync config => sync-absent-error
  • You can still override with schemaMismatchPolicy if needed.