UNPKG

@modern-js/utils

Version:

A Progressive React Framework for modern web development.

37 lines (36 loc) 1.6 kB
import { lodash } from "../compiled.mjs"; const { cloneDeep: cloneDeep } = lodash; function filterRoutesForServer(routes) { const clonedRoutes = cloneDeep(routes); const newRoutes = clonedRoutes.map((route)=>{ if ('nested' !== route.type) return route; if (route.children && route.children.length > 0) route.children = filterRoutesForServer(route.children); if (route.inValidSSRRoute) return null; return route; }).filter((route)=>null !== route); return newRoutes; } function filterRoutesLoader(routes) { const clonedRoutes = cloneDeep(routes); const newRoutes = clonedRoutes.map((route)=>{ if ('nested' !== route.type) return route; if (route.children && route.children.length > 0) route.children = filterRoutesLoader(route.children); if (route.inValidSSRRoute) { delete route.loader; delete route.data; delete route.action; } return route; }).filter((route)=>null !== route); return newRoutes; } function markRoutes(routes, routeIds) { return routes.map((route)=>{ if ('nested' !== route.type) return route; if (route.children && route.children.length > 0) route.children = markRoutes(route.children, routeIds); if (route.children && route.children.length > 0) route.inValidSSRRoute = route.children.every((child)=>child.inValidSSRRoute ?? false); else if (route.id) route.inValidSSRRoute = !routeIds.includes(route.id); return route; }); } export { filterRoutesForServer, filterRoutesLoader, markRoutes };