Cleaning up localstorage

This commit is contained in:
James Barnsley
2017-11-23 17:43:29 +13:00
parent faadd3ea05
commit 668f8c9d28
5 changed files with 164 additions and 110 deletions

View File

@ -1,4 +1,6 @@
var helpers = require('../../helpers.js')
const localstorageMiddleware = (function(){
/**
@ -30,55 +32,60 @@ const localstorageMiddleware = (function(){
switch(action.type){
case 'PUSHER_CONNECTED':
var pusher = JSON.parse(localStorage.getItem('pusher') );
if (!pusher ) pusher = {};
Object.assign(
pusher,{
helpers.setStorage(
'pusher',
{
connection_id: action.connection_id
}
);
localStorage.setItem('pusher', JSON.stringify(pusher));
break;
case 'PUSHER_SET_PORT':
var pusher = JSON.parse(localStorage.getItem('pusher') );
if (!pusher ) pusher = {};
Object.assign(pusher, { port: action.port } );
localStorage.setItem('pusher', JSON.stringify(pusher));
helpers.setStorage(
'pusher',
{
port: action.port
}
);
break;
case 'PUSHER_USERNAME_CHANGED':
var stored_pusher = JSON.parse(localStorage.getItem('pusher') )
var pusher = Object.assign({}, stored_pusher, { username: action.username })
localStorage.setItem('pusher', JSON.stringify(pusher))
helpers.setStorage(
'pusher',
{
username: action.username
}
);
break;
case 'MOPIDY_SET_CONFIG':
var mopidy = {
host: action.config.host,
port: action.config.port
};
localStorage.setItem('mopidy', JSON.stringify(mopidy));
helpers.setStorage(
'mopidy',
{
host: action.config.host,
port: action.config.port
}
);
break;
case 'MOPIDY_URISCHEMES_FILTERED':
var mopidy = JSON.parse(localStorage.getItem('mopidy') );
if (!mopidy ) mopidy = {};
Object.assign(mopidy, { uri_schemes: action.data });
localStorage.setItem('mopidy', JSON.stringify(mopidy));
helpers.setStorage(
'mopidy',
{
uri_schemes: action.data
}
);
break;
case 'SPOTIFY_SET_CONFIG':
var spotify = JSON.parse(localStorage.getItem('spotify') );
if (!spotify ) spotify = {};
Object.assign(
spotify,{
helpers.setStorage(
'spotify',
{
authentication_provider: action.config.authentication_provider,
country: action.config.country,
locale: action.config.locale
}
);
localStorage.setItem('spotify', JSON.stringify(spotify));
break;
case 'SPOTIFY_IMPORT_AUTHORIZATION':
@ -88,10 +95,8 @@ const localstorageMiddleware = (function(){
} else if (action.data){
var authorization = action.data;
}
var spotify = JSON.parse(localStorage.getItem('spotify') );
spotify = Object.assign(
{},
(spotify ? spotify : {}),
helpers.setStorage(
'spotify',
{
authorization: authorization,
access_token: authorization.access_token,
@ -99,14 +104,11 @@ const localstorageMiddleware = (function(){
token_expiry: authorization.token_expiry
}
);
localStorage.setItem('spotify', JSON.stringify(spotify));
break;
case 'SPOTIFY_AUTHORIZATION_REVOKED':
var spotify = JSON.parse(localStorage.getItem('spotify') );
spotify = Object.assign(
{},
(spotify ? spotify : {}),
helpers.setStorage(
'spotify',
{
authorization: false,
access_token: false,
@ -114,44 +116,40 @@ const localstorageMiddleware = (function(){
token_expiry: false
}
);
localStorage.setItem('spotify', JSON.stringify(spotify));
break;
case 'SPOTIFY_TOKEN_REFRESHED':
var spotify = JSON.parse(localStorage.getItem('spotify') );
if (!spotify ) spotify = {};
Object.assign(
spotify,{
helpers.setStorage(
'spotify',
{
access_token: action.data.access_token,
token_expiry: action.data.token_expiry,
provider: action.provider
}
);
localStorage.setItem('spotify', JSON.stringify(spotify));
break;
case 'SPOTIFY_ME_LOADED':
var spotify = JSON.parse(localStorage.getItem('spotify') );
if (!spotify ) spotify = {};
Object.assign(
spotify,
{ me: action.data }
helpers.setStorage(
'spotify',
{
me: action.data
}
);
localStorage.setItem('spotify', JSON.stringify(spotify));
break;
case 'CORE_SET':
var core = JSON.parse(localStorage.getItem('core') );
if (!core ) core = {};
Object.assign(core, action.data );
localStorage.setItem('core', JSON.stringify(core));
helpers.setStorage(
'core',
action.data
);
break
case 'UI_SET':
var ui = JSON.parse(localStorage.getItem('ui') );
if (!ui ) ui = {};
Object.assign(ui, action.data );
localStorage.setItem('ui', JSON.stringify(ui));
helpers.setStorage(
'ui',
action.data
);
break
case 'SUPPRESS_BROADCAST':
@ -169,25 +167,21 @@ const localstorageMiddleware = (function(){
break
case 'LASTFM_AUTHORIZATION_GRANTED':
var lastfm = JSON.parse(localStorage.getItem('lastfm') );
lastfm = Object.assign(
{},
helpers.setStorage(
'lastfm',
{
session: action.data.session
}
);
localStorage.setItem('lastfm', JSON.stringify(lastfm));
break;
case 'LASTFM_AUTHORIZATION_REVOKED':
var lastfm = JSON.parse(localStorage.getItem('lastfm') );
lastfm = Object.assign(
{},
helpers.setStorage(
'lastfm',
{
session: null
}
);
localStorage.setItem('lastfm', JSON.stringify(lastfm));
break;
}
}