@bbc/spartacus
Version:
58 lines (43 loc) • 3.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _reactRouterConfig = require('react-router-config');
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /*
* © Jordan Tart https://github.com/jtart
* https://github.com/jtart/react-universal-app
*/
var loadInitialData = function () {
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, routes) {
var matchedRoutes, _matchedRoutes$, route, match;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
matchedRoutes = (0, _reactRouterConfig.matchRoutes)(routes, url);
if (!(matchedRoutes.length <= 0)) {
_context.next = 3;
break;
}
throw new Error('No route was found for ' + url + '.');
case 3:
_matchedRoutes$ = matchedRoutes[0], route = _matchedRoutes$.route, match = _matchedRoutes$.match;
if (route.getInitialData) {
_context.next = 6;
break;
}
return _context.abrupt('return', {});
case 6:
return _context.abrupt('return', route.getInitialData({ match: match }));
case 7:
case 'end':
return _context.stop();
}
}
}, _callee, undefined);
}));
return function loadInitialData(_x, _x2) {
return _ref.apply(this, arguments);
};
}();
exports.default = loadInitialData;