@snipsonian/redux-first-router
Version:
Redux-first-router snippets
28 lines (27 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const redux_first_router_1 = require("redux-first-router");
const history_1 = require("history");
const queryString = require("query-string");
const isSet_1 = require("@snipsonian/core/cjs/is/isSet");
const storageType_1 = require("@snipsonian/redux/cjs/config/storageType");
const registerProvidedReducer_1 = require("@snipsonian/redux/cjs/reducer/registerProvidedReducer");
const reducer_1 = require("../reducer");
const selectors_1 = require("../selectors");
const routeManager_1 = require("../route/routeManager");
const toRoutesMap_1 = require("./toRoutesMap");
function configureRouter({ reducerKey = reducer_1.DEFAULT_REDUCER_KEY, routes = (0, routeManager_1.getRegisteredRoutes)(), initialDispatch, reducerStorageType = storageType_1.REDUCER_STORAGE_TYPE.NO_STORAGE, transformReducerStateForStorage, otherRouterOptions = {}, }) {
(0, selectors_1.setReducerKey)(reducerKey);
const routerOptions = Object.assign({ location: reducerKey, initialDispatch: (0, isSet_1.default)(initialDispatch) ? initialDispatch : true, querySerializer: queryString, createHistory: history_1.createBrowserHistory }, otherRouterOptions);
const { reducer, middleware, enhancer, } = (0, redux_first_router_1.connectRoutes)((0, toRoutesMap_1.default)(routes), routerOptions);
(0, registerProvidedReducer_1.default)(reducer, {
key: reducerKey,
reducerStorageType,
transformReducerStateForStorage,
});
return {
middleware,
enhancer,
};
}
exports.default = configureRouter;