opds-web-client
Version:
31 lines (30 loc) • 1.35 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var redux_1 = require("redux");
var index_1 = require("./reducers/index");
var thunk = require("redux-thunk").default;
var authMiddleware_1 = require("./authMiddleware");
var redux_devtools_extension_1 = require("redux-devtools-extension");
var persistState = null;
try {
var testKey = String(Math.random());
window.localStorage.setItem(testKey, "test");
window.localStorage.removeItem(testKey);
persistState = require("redux-localstorage");
}
catch (e) {
// localStorage isn't available in this environment, so preferences won't be saved.
}
/** Builds the Redux store. If any auth plugins are passed in, it will add auth middleware.
If localStorage is available, it will persist the preferences state only. */
function buildStore(initialState, authPlugins, pathFor) {
var middlewares = authPlugins && authPlugins.length
? [(0, authMiddleware_1.default)(authPlugins, pathFor), thunk]
: [thunk];
var composeArgs = [redux_1.applyMiddleware.apply(void 0, middlewares)];
if (persistState) {
composeArgs.push(persistState("preferences"));
}
return (0, redux_1.createStore)(index_1.default, initialState, redux_devtools_extension_1.composeWithDevTools.apply(this, composeArgs));
}
exports.default = buildStore;
;