finished pruning for lit-only demo

This commit is contained in:
authentik Default Admin 2026-03-04 14:18:44 -08:00
parent 648412dd6d
commit 3736d7278b
10 changed files with 217 additions and 281 deletions

View file

@ -1,33 +0,0 @@
// 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),
}
}

View file

@ -1,42 +0,0 @@
import { createStore } from 'zustand/vanilla'
import { persist, createJSONStorage } from 'zustand/middleware'
import { get, set, del } from 'idb-keyval'
const storage = createJSONStorage(() => ({
getItem: async (name) => {
const value = await get(name)
return value ?? null
},
setItem: async (name, value) => {
await set(name, value)
},
removeItem: async (name) => {
await del(name)
},
}))
export const store = createStore(
persist(
(set, get) => ({
_hydrated: false,
user: null,
items: [],
route: 'home',
setUser: (user) => set({ user }),
addItem: (item) => set(s => ({ items: [...s.items, item] })),
removeItem: (id) => set(s => ({ items: s.items.filter(i => i.id !== id) })),
navigate: (route) => set({ route }),
}),
{
name: 'app-store',
storage,
onRehydrateStorage: () => {
return (state, error) => {
if (!error) {
store.setState({ _hydrated: true })
}
}
},
}
)
)

View file

@ -1,9 +0,0 @@
// store/middleware/persistence.js
import { db } from '../idb.js'
export const makeIdbStorage = (storeName) =>
createJSONStorage(() => ({
getItem: (name) => db[storeName].get(name),
setItem: (name, value) => db[storeName].set(name, value),
removeItem: (name) => db[storeName].remove(name),
}))