51 lines
1.3 KiB
JavaScript
Executable File
51 lines
1.3 KiB
JavaScript
Executable File
|
|
console.info('Bootstrapping...');
|
|
|
|
import { createStore, applyMiddleware, combineReducers } from 'redux'
|
|
|
|
import mopidy from './services/mopidy/reducer'
|
|
import spotify from './services/spotify/reducer'
|
|
|
|
import thunk from 'redux-thunk'
|
|
import mopidyMiddleware from './services/mopidy/middleware'
|
|
import spotifyMiddleware from './services/spotify/middleware'
|
|
import localstorageMiddleware from './services/localstorage/middleware'
|
|
|
|
let reducers = combineReducers({
|
|
mopidy,
|
|
spotify
|
|
});
|
|
|
|
// set application defaults
|
|
var initialState = {
|
|
mopidy: {
|
|
host: window.location.hostname,
|
|
port: 6680
|
|
},
|
|
spotify: {
|
|
country: 'NZ',
|
|
locale: 'en_NZ',
|
|
me: false
|
|
}
|
|
};
|
|
|
|
// if we've got a stored version of mopidy state, load and merge
|
|
if( localStorage.getItem('mopidy') ){
|
|
var storedMopidy = JSON.parse( localStorage.getItem('mopidy') );
|
|
initialState.mopidy = Object.assign(initialState.mopidy, storedMopidy );
|
|
}
|
|
|
|
// if we've got a stored version of spotify state, load and merge
|
|
if( localStorage.getItem('spotify') ){
|
|
var storedSpotify = JSON.parse( localStorage.getItem('spotify') );
|
|
initialState.spotify = Object.assign(initialState.spotify, storedSpotify );
|
|
}
|
|
|
|
let store = createStore(
|
|
reducers,
|
|
initialState,
|
|
applyMiddleware( thunk, localstorageMiddleware, mopidyMiddleware, spotifyMiddleware )
|
|
);
|
|
|
|
export default store;
|