createPersister
stableCreate a persister instance
Create a persister instance for saving and restoring query cache data. Supports various storage backends like localStorage, sessionStorage implementations.
Storages
createPersister supports localStorage and sessionStorage implementations. Choose the right one for your use case.
Per-Query Control
Use the persist: false option on individual queries to exclude sensitive or temporary data from persistence while keeping other queries persisted.
Signature
function createPersister(type: 'local' | 'session',config?: PersisterConfig): Persister | undefined
Parameters
type
'local' | 'session'RequiredStorage type to use. 'local' for localStorage, 'session' for sessionStorage.
config
PersisterConfigDefault: {}Optional configuration object with burstKey, prefix, and debounceTime.
config.burstKey
stringDefault: 'package version'Version key to invalidate old cached data when breaking changes occur.
config.prefix
stringDefault: 'qortex'Prefix for storage keys to avoid conflicts with other applications.
config.debounceTime
numberDefault: 100Time in milliseconds to debounce save operations for performance.
Returns
Returns
Persister | undefinedPersister instance with save, load, sync, and clear methods, or undefined if storage is not available
Examples
Basic Usage
Create a localStorage persister
import { createPersister } from 'qortex-core/persister';import { setDefaultConfig } from 'qortex-react';// Create a localStorage persisterconst persister = createPersister('local');// Use with setDefaultConfigsetDefaultConfig({ persister });
Session Storage
Create a sessionStorage persister
import { createPersister } from 'qortex-core/persister';import { setDefaultConfig } from 'qortex-react';// Create a sessionStorage persisterconst sessionPersister = createPersister('session');// Use for session-based cachingsetDefaultConfig({ persister: sessionPersister });
With Configuration
Create a persister with custom configuration
import { createPersister } from 'qortex-core/persister';import { setDefaultConfig } from 'qortex-react';// Create a persister with custom configurationconst persister = createPersister('local', {burstKey: 'v1.0.0',prefix: 'my_app_cache',debounceTime: 50});setDefaultConfig({ persister });
Selective Persistence
Exclude specific queries from persistence
import { createPersister } from 'qortex-core/persister';import { setDefaultConfig, registerFetcher } from 'qortex-react';// Enable persistence globallyconst persister = createPersister('local', { burstKey: 'v1' });setDefaultConfig({ persister });// This query will be persisted (default)registerFetcher('user-profile', {fetcher: () => fetch('/api/profile').then(r => r.json())});// This query will NOT be persisted (sensitive data)registerFetcher('auth-token', {fetcher: () => fetch('/api/token').then(r => r.json()),persist: false // Exclude from persistence});
Behavior
Storages
Supports various storage backends (localStorage, sessionStorage)
Configurable
Highly configurable with custom serialization and age limits
Async Operations
All operations are asynchronous for better performance
Error Handling
Built-in error handling for storage operations