// lib/idb.js import { createStore, get, set, del, entries, clear } from 'idb-keyval' // Named stores — each maps to a distinct IDBObjectStore export const itemsStore = createStore('app-db', 'items') export const userStore = createStore('app-db', 'user') export const cacheStore = createStore('app-db', 'cache') // Typed wrappers — keeps raw idb-keyval calls out of the rest of the app // and gives you one place to add validation, logging, or migration logic export const db = { items: { getAll: () => entries(itemsStore), get: (id) => get(id, itemsStore), set: (id, value) => set(id, value, itemsStore), remove: (id) => del(id, itemsStore), clear: () => clear(itemsStore), }, user: { get: () => get('user', userStore), set: (value) => set('user', value, userStore), clear: () => del('user', userStore), }, cache: { get: (key) => get(key, cacheStore), set: (key, value) => set(key, value, cacheStore), remove: (key) => del(key, cacheStore), clear: () => clear(cacheStore), } }