UNPKG

vuex-persist

Version:
82 lines (81 loc) 2.54 kB
/** * Options to be used to construct a {@link VuexPersistence} object */ import { Payload } from 'vuex'; import { AsyncStorage } from './AsyncStorage'; import { MergeOptionType } from './utils'; export interface PersistOptions<S> { /** * Window.Storage type object. Default is localStorage */ storage?: Storage | AsyncStorage; /** * Method to retrieve state from persistence * @param key * @param [storage] */ restoreState?: (key: string, storage?: Storage) => Promise<S> | S; /** * Method to save state into persistence * @param key * @param state * @param [storage] */ saveState?: (key: string, state: {}, storage?: Storage) => Promise<void> | void; /** * Function to reduce state to the object you want to save. * Be default, we save the entire state. * You can use this if you want to save only a portion of it. * @param state */ reducer?: (state: S) => {}; /** * Key to use to save the state into the storage */ key?: string; /** * Method to filter which mutations will trigger state saving * Be default returns true for all mutations. * Check mutations using <code>mutation.type</code> * @param mutation object of type {@link Payload} */ filter?: (mutation: Payload) => boolean; /** * Names of modules that you want to persist. * If you create your custom {@link PersistOptions.reducer} function, * then that will override filter behaviour, not this argument */ modules?: string[]; /** * Set this to true to support * <a href="https://vuex.vuejs.org/en/strict.html">Vuex Strict Mode</a> * @default false */ strictMode?: boolean; /** * If your storage is async * i.e., if setItem(), getItem() etc return Promises * (Must be used for asynchronous storages like LocalForage) * @default false */ asyncStorage?: boolean; /** * Support serializing circular json objects * <pre> * let x = {a: 10} * x.b = x * console.log(x.a) // 10 * console.log(x.b.a) // 10 * console.log(x.b.b.a) // 10 * </pre> * @default false * */ supportCircular?: boolean; /** * Whether to replace or concat arrays when merging * saved state with restored state * defaults to replacing arrays */ mergeOption?: MergeOptionType; }