33 lines
918 B
Markdown
33 lines
918 B
Markdown
# Storage
|
|
|
|
The storage system provides IndexedDB persistence for stores and repositories.
|
|
|
|
Initialize this early in your application lifecycle to ensure data consistency.
|
|
|
|
```typescript
|
|
import {initStorage, defaultStorageAdapters} from '@welshman/app'
|
|
|
|
// Use default storage adapters, which track important metadata events,
|
|
// relays, handles, zappers, etc.
|
|
await initStorage("my-db", 1, {
|
|
...defaultStorageAdapters,
|
|
custom: {
|
|
keyPath: "key",
|
|
init: async () => console.log(await getAll("custom")),
|
|
sync: () => {
|
|
// Set up a listener for changes, using bulkPut to save records.
|
|
// Return an unsubscribe function for cleanup
|
|
},
|
|
},
|
|
})
|
|
```
|
|
|
|
The storage system:
|
|
|
|
- Persists data across page reloads
|
|
- Throttles writes for performance
|
|
- Syncs bidirectionally
|
|
- Supports custom adapters
|
|
|
|
Initialize storage before making any subscriptions or loading data to ensure proper caching behavior.
|