hookstate-persist
v1.0.2
Published
Simple and configurable peristence plugin for Hookstate state management.
Downloads
12
Maintainers
Readme
Hookstate Persist
Simple and configurable peristence plugin for Hookstate state management.
Works on React Native and Web.
Installation
To install, run:
yarn add hookstate-persist
npm install hookstate-persist
Usage
// React Native
import {createState} from '@hookstate/core';
import CreatePersistor, {PersistorWrapper} from 'hookstate-persist';
import AsyncStorage from '@react-native-async-storage/async-storage';
import {Product} from '../utils/types';
// for tree object state, wrap root state with Persist wrapper
// this gives you the benefit of validating the hydrateTime value is not null
const wrapped = PersistorWrapper({
cart: [] as Array<Product>,
user: {} as User,
location: '',
});
const store = createState(wrapped);
// create the peristor pluging
const persistor = CreatePersistor({
key: '@myStore', // store name
engine: AsyncStorage, // storage engine which implements getItem & setItem
});
// attach plugin and you're done
store.attach(persistor);
Peristor options
CreatePersistor {
key: string, // key in storage
engine: StoreEngine, // engine; any type of storage that implements "getItem" and "setItem" eg AsyncStorage or localStorage
whitelist?: Array<string>, // property names of items in state you want to persist (optional)
blacklist?: Array<string>, // property names of items in state you want excluded from storage(optional)
}
API
CreatePersistor(config: ICreatePersistor) // creates the peristence plugin
PersistorWrapper(state: State<S>) // Wrapps the root state. Do not use if root state is not map/tree like
Contiributions
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.