@specter/redux-effects-specter-cache
v0.5.5
Published
cache structure for redux middleware of specter
Downloads
4
Readme
redux-effects-specter-cache
Caching middleware for @specter/redux-effects-specter.
Installation
npm install --save @specter/specter \ # peer dependency
@specter/storage \ # peer dependency
@specter/redux-effects-specter \ # peer dependency
@specter/redux-effects-specter-cache
Usage
Installing the middleware:
import { createStore, applyMiddleware } from 'redux';
import { Client } from '@specter/specter';
import stepsMiddleware from 'redux-effects-steps';
import specterMiddleware from '@specter/redux-effects-specter';
import specterCacheMiddleware from '@specter/redux-effects-specter-cache';
import rootReducer from './reducers';
const client = new Client({
base: '/xhr'
});
const cacheConfig = {
max: 500,
maxAge: 1000 * 60 * 60
};
const cacheMiddlewareConfig = {
excludes: [
"greet" // expected service name of specter
]
}
const store = createStore(
rootReducer,
applyMiddleware(
stepsMiddleware,
specterCacheMiddleware({ cacheConfig, cacheMiddlewareConfig }),
specterMiddleware(client)
)
);
redux-effects-specter-cache must be applied before redux-effects-specter.
API
Middleware
specterCacheMiddleware(cacheConfig, [options])
Creates redux middleware.
Arguments
options
(Object) : LRE-cache option and middleware optioncacheConfig
(Object): See lru-cahce API docs for more info.middlewareOption
(Object):excludes
(Array): An array of the resource names to not use the cache. Defaults[]
.fromCache
(Function): Checks whether an action is target to obtain from cache. Defaults() => true
.- Arguments:
action
(Object): An action.state
(Object): The current state of the Store.
- Returns:
- (Boolean): If
true
, uses cache to obtain the resource.
- (Boolean): If
- Arguments:
toCache
(Function): Checks whether an action is target to store to cache. Defaults() => true
.- Arguments:
action
(Object): An action.state
(Object): The current state of the Store.
- Returns:
- (Boolean): If
true
, saves the obtaining resource to cache.
- (Boolean): If
- Arguments:
resetCache
(Function): reset cache if resetCache function returns true. Defaults() => false
.- Arguments:
action
(Object): An action.state
(Object): The current state of the Store.
- Returns:
- (Boolean): If
true
, reset all cache.
- (Boolean): If
- Arguments:
Returns
- (Function): Redux middleware.