UNPKG

@snipsonian/redux-first-router

Version:

Redux-first-router snippets

28 lines (27 loc) 1.6 kB
"use strict"; 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;