UNPKG

5.53 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.js","names":["parse","qsParse","LOCATION","NAVIGATE","REMOVE_QUESTION_MARK","parseQuery","s","exec","createLocation","location","loc","query","type","payload","ACTIONS_HISTORY","PUSH","REPLACE","GO","GO_BACK","GO_FORWARD","createNavigate","action","args","createPushNavigate","createReplaceNavigate","createGoNavigate","createGoBackNavigate","createGoForwardNavigate","INITAL_STATE","historyReducer","state","historyMiddleware","history","store","listen","dispatch","next","historyAction","push","replace","go","goBack","goForward","syncStoreWithHistory"],"sources":["../src/index.js"],"sourcesContent":["import {parse as qsParse} from 'querystring';\nimport {getOr, get, isEqual, pipe, set} from 'lodash/fp';\n\nexport const LOCATION = '@@history/LOCATION';\nexport const NAVIGATE = '@@history/NAVIGATE';\n\nconst REMOVE_QUESTION_MARK = /^\\??(.*)/;\nconst parseQuery = pipe(s => REMOVE_QUESTION_MARK.exec(s), get(1), qsParse);\n\nexport const createLocation = location => {\n const loc = pipe(getOr('', 'search'), parseQuery, query => {\n if (isEqual(query, {})) return location;\n return set('query', query, location);\n })(location);\n\n return {\n type: LOCATION,\n payload: {\n ...loc\n }\n };\n};\n\nconst ACTIONS_HISTORY = {\n PUSH: 'push',\n REPLACE: 'replace',\n GO: 'go',\n GO_BACK: 'goBack',\n GO_FORWARD: 'goForward'\n};\n\nconst createNavigate =\n action =>\n (...args) => {\n return {\n type: NAVIGATE,\n payload: {\n action,\n args\n }\n };\n };\n\nexport const createPushNavigate = createNavigate(ACTIONS_HISTORY.PUSH);\nexport const createReplaceNavigate = createNavigate(ACTIONS_HISTORY.REPLACE);\nexport const createGoNavigate = createNavigate(ACTIONS_HISTORY.GO);\nexport const createGoBackNavigate = createNavigate(ACTIONS_HISTORY.GO_BACK);\nexport const createGoForwardNavigate = createNavigate(ACTIONS_HISTORY.GO_FORWARD);\n\nexport const INITAL_STATE = {};\n\nexport const historyReducer = (state, {type, payload}) => {\n if (type === LOCATION) return payload;\n return state || INITAL_STATE;\n};\n\nexport const historyMiddleware =\n ({history}) =>\n store => {\n history.listen(location => {\n store.dispatch(createLocation(location));\n });\n\n return next => action => {\n if (action.type === NAVIGATE) {\n const {\n payload: {action: historyAction, args}\n } = action;\n\n switch (historyAction) {\n case ACTIONS_HISTORY.PUSH:\n history.push(...args);\n break;\n case ACTIONS_HISTORY.REPLACE:\n history.replace(...args);\n break;\n case ACTIONS_HISTORY.GO:\n history.go(...args);\n break;\n case ACTIONS_HISTORY.GO_BACK:\n history.goBack(...args);\n break;\n case ACTIONS_HISTORY.GO_FORWARD:\n history.goForward(...args);\n break;\n }\n }\n\n return next(action);\n };\n };\n\nexport const syncStoreWithHistory = (store, history) => {\n const action = createLocation(history.location);\n return store.dispatch(action);\n};\n"],"mappings":"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"}
\No newline at end of file