vegas-react-native
Version:
A specialized set of basic functions utilities to build React Native applications
66 lines (50 loc) • 1.08 kB
JavaScript
const namespace = 'appStore' ;
const all = () => Promise.resolve(JSON.parse( localStorage[namespace]) ) ;
const clear = () =>
{
delete localStorage[namespace] ;
init( namespace ) ;
return storage ;
};
const getItem = key =>
{
const items = store() ;
return items[key] ;
};
const init = namespace =>
{
if (typeof localStorage !== 'undefined')
{
localStorage[namespace] = localStorage[namespace] ? localStorage[namespace] : '{}' ;
}
};
const removeItem = key =>
{
const items = store() ;
delete items[key] ;
localStorage[namespace] = JSON.stringify(items) ;
return storage ;
};
const setItem = ( key , value ) =>
{
const items = store() ;
items[key] = value ;
localStorage[namespace] = JSON.stringify(items) ;
return storage ;
};
const store = () => JSON.parse(localStorage[namespace]) ;
init( namespace ) ;
/*
TODO:
- missing "key" support
- missing "length" support
*/
const storage = {
all,
clear,
getItem,
removeItem,
setItem,
store
};
export default storage ;