UNPKG

7.56 kBJavaScriptView Raw
1(function webpackUniversalModuleDefinition(root, factory) {
2 if(typeof exports === 'object' && typeof module === 'object')
3 module.exports = factory(require("./actions.js"), require("./router.js"), require("path-to-regexp"));
4 else if(typeof define === 'function' && define.amd)
5 define(["./actions.js", "./router.js", "path-to-regexp"], factory);
6 else if(typeof exports === 'object')
7 exports["navigationMiddleware.js"] = factory(require("./actions.js"), require("./router.js"), require("path-to-regexp"));
8 else
9 root["navigationMiddleware.js"] = factory(root["./actions.js"], root["./router.js"], root["path-to-regexp"]);
10})(this, function(__WEBPACK_EXTERNAL_MODULE_14__, __WEBPACK_EXTERNAL_MODULE_16__, __WEBPACK_EXTERNAL_MODULE_316__) {
11return /******/ (function(modules) { // webpackBootstrap
12/******/ // The module cache
13/******/ var installedModules = {};
14
15/******/ // The require function
16/******/ function __webpack_require__(moduleId) {
17
18/******/ // Check if module is in cache
19/******/ if(installedModules[moduleId])
20/******/ return installedModules[moduleId].exports;
21
22/******/ // Create a new module (and put it into the cache)
23/******/ var module = installedModules[moduleId] = {
24/******/ exports: {},
25/******/ id: moduleId,
26/******/ loaded: false
27/******/ };
28
29/******/ // Execute the module function
30/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31
32/******/ // Flag the module as loaded
33/******/ module.loaded = true;
34
35/******/ // Return the exports of the module
36/******/ return module.exports;
37/******/ }
38
39
40/******/ // expose the modules object (__webpack_modules__)
41/******/ __webpack_require__.m = modules;
42
43/******/ // expose the module cache
44/******/ __webpack_require__.c = installedModules;
45
46/******/ // __webpack_public_path__
47/******/ __webpack_require__.p = "";
48
49/******/ // Load entry module and return exports
50/******/ return __webpack_require__(0);
51/******/ })
52/************************************************************************/
53/******/ ({
54
55/***/ 0:
56/***/ function(module, exports, __webpack_require__) {
57
58 'use strict';
59
60 Object.defineProperty(exports, "__esModule", {
61 value: true
62 });
63
64 var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
65
66 var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
67
68 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
69
70 var _pathToRegexp = __webpack_require__(316);
71
72 var _pathToRegexp2 = _interopRequireDefault(_pathToRegexp);
73
74 var _router = __webpack_require__(16);
75
76 var _actions = __webpack_require__(14);
77
78 var actions = _interopRequireWildcard(_actions);
79
80 function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
81
82 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
83
84 function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
85
86 exports.default = {
87 create: function create(routes) {
88 return function (store) {
89 return function (next) {
90 return function (action) {
91 if (action.type == actions.NAVIGATE_TO_URL) {
92 var _action$payload = action.payload;
93 var method = _action$payload.method;
94 var pathName = _action$payload.pathName;
95 var queryParams = _action$payload.queryParams;
96 var hashParams = _action$payload.hashParams;
97 var bodyParams = _action$payload.bodyParams;
98 var referrer = _action$payload.referrer;
99 var dispatch = store.dispatch;
100 var getState = store.getState;
101 var _iteratorNormalCompletion = true;
102 var _didIteratorError = false;
103 var _iteratorError = undefined;
104
105 try {
106 var _loop = function _loop() {
107 var route = _step.value;
108
109 var _route = _slicedToArray(route, 2);
110
111 var url = _route[0];
112 var handler = _route[1];
113
114 var reg = (0, _pathToRegexp2.default)(url);
115 var result = reg.exec(pathName);
116
117 if (result) {
118 var urlParams = reg.keys.reduce(function (prev, cur, index) {
119 return _extends({}, prev, _defineProperty({}, cur.name, result[index + 1]));
120 }, {});
121
122 if (method === _router.METHODS.GET) {
123 dispatch(actions.setPage(pathName, {
124 urlParams: urlParams,
125 queryParams: queryParams,
126 hashParams: hashParams,
127 referrer: referrer
128 }));
129 }
130
131 var h = new handler(pathName, urlParams, queryParams, hashParams, bodyParams, dispatch, getState);
132
133 return {
134 v: next(h[method].bind(h))
135 };
136 }
137 };
138
139 for (var _iterator = routes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
140 var _ret = _loop();
141
142 if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
143 }
144 } catch (err) {
145 _didIteratorError = true;
146 _iteratorError = err;
147 } finally {
148 try {
149 if (!_iteratorNormalCompletion && _iterator.return) {
150 _iterator.return();
151 }
152 } finally {
153 if (_didIteratorError) {
154 throw _iteratorError;
155 }
156 }
157 }
158
159 ;
160
161 return next(new Error('No route found for ' + method + ' ' + pathName));
162 }
163
164 return next(action);
165 };
166 };
167 };
168 }
169 };
170
171/***/ },
172
173/***/ 14:
174/***/ function(module, exports) {
175
176 module.exports = __WEBPACK_EXTERNAL_MODULE_14__;
177
178/***/ },
179
180/***/ 16:
181/***/ function(module, exports) {
182
183 module.exports = __WEBPACK_EXTERNAL_MODULE_16__;
184
185/***/ },
186
187/***/ 316:
188/***/ function(module, exports) {
189
190 module.exports = require("path-to-regexp");
191
192/***/ }
193
194/******/ })
195});
196;
\No newline at end of file