UNPKG

7.46 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 dispatch = store.dispatch;
99 var getState = store.getState;
100 var _iteratorNormalCompletion = true;
101 var _didIteratorError = false;
102 var _iteratorError = undefined;
103
104 try {
105 var _loop = function _loop() {
106 var route = _step.value;
107
108 var _route = _slicedToArray(route, 2);
109
110 var url = _route[0];
111 var handler = _route[1];
112
113 var reg = (0, _pathToRegexp2.default)(url);
114 var result = reg.exec(pathName);
115
116 if (result) {
117 var urlParams = reg.keys.reduce(function (prev, cur, index) {
118 return _extends({}, prev, _defineProperty({}, cur.name, result[index + 1]));
119 }, {});
120
121 if (method === _router.METHODS.GET) {
122 dispatch(actions.setPage(pathName, {
123 urlParams: urlParams,
124 queryParams: queryParams,
125 hashParams: hashParams
126 }));
127 }
128
129 var h = new handler(pathName, urlParams, queryParams, hashParams, bodyParams, dispatch, getState);
130
131 return {
132 v: next(h[method].bind(h))
133 };
134 }
135 };
136
137 for (var _iterator = routes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
138 var _ret = _loop();
139
140 if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
141 }
142 } catch (err) {
143 _didIteratorError = true;
144 _iteratorError = err;
145 } finally {
146 try {
147 if (!_iteratorNormalCompletion && _iterator.return) {
148 _iterator.return();
149 }
150 } finally {
151 if (_didIteratorError) {
152 throw _iteratorError;
153 }
154 }
155 }
156
157 ;
158
159 return next(new Error('No route found for ' + method + ' ' + pathName));
160 }
161
162 return next(action);
163 };
164 };
165 };
166 }
167 };
168
169/***/ },
170
171/***/ 14:
172/***/ function(module, exports) {
173
174 module.exports = __WEBPACK_EXTERNAL_MODULE_14__;
175
176/***/ },
177
178/***/ 16:
179/***/ function(module, exports) {
180
181 module.exports = __WEBPACK_EXTERNAL_MODULE_16__;
182
183/***/ },
184
185/***/ 316:
186/***/ function(module, exports) {
187
188 module.exports = require("path-to-regexp");
189
190/***/ }
191
192/******/ })
193});
194;
\No newline at end of file