Appearance
Persistence
This service provides simple persistence drivers that implement a common PersistenceDriver interface. It is used by BaseForm, but can also be used directly.
Available Drivers
NonPersistentDriver— no persistence (default forBaseForm)MemoryPersistenceDriver— keeps data in memory, useful for tests and non-browser environmentsSessionStorageDriver— usessessionStorageLocalStorageDriver— useslocalStorage
All drivers are exported from @blueprint-ts/core/persistenceDrivers.
Using A Driver
ts
import { MemoryPersistenceDriver } from '@blueprint-ts/core/persistenceDrivers'
const driver = new MemoryPersistenceDriver('optional-suffix')
driver.set('my-key', { value: 123 })
const value = driver.get<{ value: number }>('my-key')Multiple MemoryPersistenceDriver instances share the same in-memory store when they use the same suffix and key. This makes it convenient for tests where one instance writes persisted state and another instance asserts it later.
If you need to reset the in-memory store between tests:
ts
MemoryPersistenceDriver.clear()Implementing A Custom Driver
Implement the PersistenceDriver interface:
ts
import { type PersistenceDriver } from '@blueprint-ts/core/persistenceDrivers'
export class MemoryDriver implements PersistenceDriver {
private store = new Map<string, unknown>()
get<T>(key: string): T | null {
return (this.store.get(key) as T) ?? null
}
set<T>(key: string, state: T): void {
this.store.set(key, state)
}
remove(key: string): void {
this.store.delete(key)
}
}