UNPKG

@bravissimolabs/react-router-config

Version:

Static route config matching for React Router

40 lines (25 loc) 1.08 kB
"use strict"; exports.__esModule = true; var _matchPath = require("react-router/matchPath"); var _matchPath2 = _interopRequireDefault(_matchPath); var _Router = require("react-router/Router"); var _Router2 = _interopRequireDefault(_Router); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // ensure we're using the exact code for default root match var computeMatch = _Router2.default.prototype.computeMatch; var matchRoutes = function matchRoutes(routes, pathname) { var branch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; routes.some(function (route) { var match = route.path ? (0, _matchPath2.default)(pathname, route) : branch.length ? branch[branch.length - 1].match // use parent match : computeMatch(pathname); // use default "root" match if (match) { branch.push({ route: route, match: match }); if (route.routes) { matchRoutes(route.routes, pathname, branch); } } return match; }); return branch; }; exports.default = matchRoutes;