1.1.0 • Published 2 years ago
@fmal/cerebral-storage v1.1.0
@fmal/cerebral-storage
Originally @cerebral/storage
Install
npm install @fmal/cerebral-storage
Description
This module exposes local storage or session storage as a provider, where it by default parses and serializes to JSON.
Instantiate
import App from 'cerebral';
import StorageModule from '@fmal/cerebral-storage';
const storage = StorageModule({
// instance of storage, can be window.localStorage / localStorage,
// window.sessionStorage / sessionStorage, or asyncStorage on
// react native. Async storage API is automatically managed
target: localStorage,
// Serializes and parses to JSON by default
json: true,
// Synchronize state when it changes
sync: {
someStorageKey: 'some.state.path'
},
// Set prefix for storagekey "somePrefix.someStorageKey"
prefix: 'somePrefix'
});
const main = {
modules: { storage }
});
const app = App(main);
error
StorageProviderError
import { StorageProviderError } from '@fmal/cerebral-storage'
// Error structure
{
name: 'StorageProviderError',
message: 'Some storage error'
stack: '...'
}
get
Get data from storage.
action
function someAction({ storage }) {
// sync
const value = storage.get('someKey');
// async
return storage.get('someKey').then(value => ({ value }));
}
operator
import { getStorage } from '@fmal/cerebral-storage/factories';
export default [
// sync and async
getStorage('someKey'),
function someAction({ props }) {
props.value; // Whatever was on "someKey"
}
];
remove
Remove data from storage.
action
function someAction({ storage }) {
// sync
storage.remove('someKey');
// async
return storage.remove('someKey');
}
operator
import { state } from 'cerebral';
import { removeStorage } from '@fmal/cerebral-storage/factories';
export default [
// sync and async
removeStorage(state`currentStorageKey`)
];
set
Write data to storage.
action
function someAction({ storage }) {
// sync
storage.set('someKey', { foo: 'bar' });
// async
return storage.set('someKey', { foo: 'bar' });
}
operator
import { state, props } from 'cerebral';
import { setStorage } from '@fmal/cerebral-storage/factories';
export default [
// sync and async
setStorage(state`currentStorageKey`, props`someData`)
];
1.1.0
2 years ago
3.1.0
2 years ago
1.0.3-1654608821202
2 years ago
1.0.2
4 years ago
1.0.2-1602948849571
4 years ago
1.0.1
4 years ago
1.0.1-1577985485537
4 years ago
1.0.0
5 years ago
1.0.0-1571050487690
5 years ago