- restructure from src/ + server/ to src/client/ + src/server/ + src/shared/ - switch backend runtime from Node (tsx) to Bun - merge server/package.json into root, remove @hono/node-server + tsx - convert server @/ imports to relative paths - standardize biome config (lineWidth 80, quoteStyle double) - add CLAUDE.md, .env.example at root - update vite.config, tsconfig, deploy.sh for new structure Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
23 lines
656 B
TypeScript
23 lines
656 B
TypeScript
import type { PGlite } from "@electric-sql/pglite"
|
|
import { type ReactNode, createContext, use } from "react"
|
|
import { getDb } from "./client"
|
|
import { migrateFromLocalStorage } from "./migrate-from-localstorage"
|
|
|
|
const dbPromise = getDb().then(async (db) => {
|
|
await migrateFromLocalStorage(db)
|
|
return db
|
|
})
|
|
|
|
const DbContext = createContext<PGlite | null>(null)
|
|
|
|
export function DbProvider({ children }: { children: ReactNode }) {
|
|
const db = use(dbPromise)
|
|
return <DbContext value={db}>{children}</DbContext>
|
|
}
|
|
|
|
export function useDb(): PGlite {
|
|
const db = use(DbContext)
|
|
if (!db) throw new Error("useDb must be used within DbProvider")
|
|
return db
|
|
}
|