@snipsonian/redux-first-router
Version:
Redux-first-router snippets
42 lines (41 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRouteKeysThatBelongToGroup = exports.doesRouteBelongToGroup = exports.getRouteKeyByPath = exports.getRoutePath = exports.getRoute = exports.getRegisteredRoutes = exports.registerRoutes = void 0;
let allRoutes;
function registerRoutes(routes) {
allRoutes = routes;
}
exports.registerRoutes = registerRoutes;
function getRegisteredRoutes() {
return allRoutes;
}
exports.getRegisteredRoutes = getRegisteredRoutes;
function getRoute({ routeKey }) {
return allRoutes[routeKey];
}
exports.getRoute = getRoute;
function getRoutePath({ routeKey }) {
return getRoute({ routeKey }).path;
}
exports.getRoutePath = getRoutePath;
function getRouteKeyByPath({ path }) {
return getAllRouteKeys()
.find((routeKey) => getRoute({ routeKey }).path === path);
}
exports.getRouteKeyByPath = getRouteKeyByPath;
function doesRouteBelongToGroup({ routeKey, group }) {
const route = getRoute({ routeKey });
if (!route || !route.groups) {
return false;
}
return route.groups.indexOf(group) > -1;
}
exports.doesRouteBelongToGroup = doesRouteBelongToGroup;
function getRouteKeysThatBelongToGroup({ group }) {
return getAllRouteKeys()
.filter((routeKey) => doesRouteBelongToGroup({ routeKey, group }));
}
exports.getRouteKeysThatBelongToGroup = getRouteKeysThatBelongToGroup;
function getAllRouteKeys() {
return Object.keys(allRoutes);
}