JSPM

tauri-react-sqlite

0.1.4
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 1
    • Score
      100M100P100Q12051F
    • License MIT

    This package allows you to conveniently interact with sqlite databases on the client using drizzle orm

    Package Exports

    • tauri-react-sqlite

    Readme

    README.md

    # Tauri React Sqlite
    
    A React context provider and adapter for using Drizzle ORM with Tauri SQLite plugin.
    Provides seamless database integration for Tauri desktop applications with React.
    
    ## Features
    
    - 🚀 **Zero-config** setup for Tauri + Drizzle ORM
    - ⚡ **React Context** for easy database access
    - 🔄 **Auto-reconnection** functionality
    - 📊 **Loading & error states** built-in
    - 🦾 **TypeScript** support
    - 🔍 **ReturningId()** for immediate inserted data access

    Peer Dependencies

    Make sure you also have these installed in your project:

    npm install react drizzle-orm @tauri-apps/plugin-sql @libsql/client

    Quick Start

    1. Setup Database Provider

    // main.tsx or App.tsx
    import { DatabaseProvider } from "tauri-react-sqlite";
    import * as schema from "./db/schema";
    
    function App() {
      return (
        <DatabaseProvider
          options={{
            schema,
            logger: true,
            dbPath: "sqlite:app.db",
          }}
          onReady={(db) => console.log("Database connected!")}
          onError={(error) => console.error("Database error:", error)}
        >
          <YourApp />
        </DatabaseProvider>
      );
    }

    2. Use in Components

    import { useDatabase } from "tauri-react-sqlite";
    import { users } from "../db/schema";
    import { eq } from "drizzle-orm";
    
    function UserList() {
      const { db, isLoading, error, reconnect } = useDatabase();
    
      // ... component code
    }

    3. ReturningId Utility

    ⚠️ Note: Id must be a number, since SQLite only supports returningId for numeric IDs

    import { returningId } from "tauri-react-sqlite";
    
    const newId = returningId(await db.insert(users).values(userData));

    API Reference

    DatabaseProvider Props

    Prop Type Description Default
    options.schema Record<string, AnySQLiteTable> Drizzle ORM schema Required
    options.logger boolean Enable query logging false
    options.dbPath string SQLite database path 'sqlite:app.db'

    TypeScript Note

    TypeScript support is included, but you may need type assertions in some cases:

    const result = await db.select().from(users);