@tanstack/router-core 0.0.1-alpha.7 → 0.0.1-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -540,12 +540,11 @@ function createRouter(userOptions) {
540
540
  const now = Date.now();
541
541
  const matchPromises = resolvedMatches.map(async match => {
542
542
  // Validate the match (loads search params etc)
543
- match.__.validate(); // If the match doesn't have a loader, don't attempt to load it
544
-
545
-
546
- if (!match.hasLoaders()) {
547
- return;
548
- } // If this is a preload, add it to the preload cache
543
+ match.__.validate(); // // If the match doesn't have a loader, don't attempt to load it
544
+ // if (!match.hasLoaders()) {
545
+ // return
546
+ // }
547
+ // If this is a preload, add it to the preload cache
549
548
 
550
549
 
551
550
  if (loaderOpts != null && loaderOpts.preload && (loaderOpts == null ? void 0 : loaderOpts.maxAge) > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sources":["../../../../../src/router.ts"],"sourcesContent":["import {\n BrowserHistory,\n createBrowserHistory,\n createMemoryHistory,\n HashHistory,\n History,\n MemoryHistory,\n} from 'history'\nimport invariant from 'tiny-invariant'\nimport { GetFrameworkGeneric } from './frameworks'\n\nimport {\n LinkInfo,\n LinkOptions,\n NavigateOptionsAbsolute,\n ToOptions,\n ValidFromPath,\n} from './link'\nimport {\n cleanPath,\n interpolatePath,\n joinPaths,\n matchPathname,\n resolvePath,\n} from './path'\nimport { AnyRoute, cascadeLoaderData, createRoute, Route } from './route'\nimport {\n AnyRouteConfig,\n AnySearchSchema,\n RouteConfig,\n SearchFilter,\n} from './routeConfig'\nimport {\n AllRouteInfo,\n AnyAllRouteInfo,\n AnyRouteInfo,\n RouteInfo,\n RoutesById,\n} from './routeInfo'\nimport { createRouteMatch, RouteMatch } from './routeMatch'\nimport { defaultParseSearch, defaultStringifySearch } from './searchParams'\nimport {\n functionalUpdate,\n last,\n PickAsRequired,\n replaceEqualDeep,\n Timeout,\n Updater,\n} from './utils'\n\nexport interface LocationState {}\n\nexport interface Location<\n TSearchObj extends AnySearchSchema = {},\n TState extends LocationState = LocationState,\n> {\n href: string\n pathname: string\n search: TSearchObj\n searchStr: string\n state: TState\n hash: string\n key?: string\n}\n\nexport interface FromLocation {\n pathname: string\n search?: unknown\n key?: string\n hash?: string\n}\n\nexport type SearchSerializer = (searchObj: Record<string, any>) => string\nexport type SearchParser = (searchStr: string) => Record<string, any>\nexport type FilterRoutesFn = <TRoute extends Route<any, RouteInfo>>(\n routeConfigs: TRoute[],\n) => TRoute[]\n\nexport interface RouterOptions<TRouteConfig extends AnyRouteConfig> {\n history?: BrowserHistory | MemoryHistory | HashHistory\n stringifySearch?: SearchSerializer\n parseSearch?: SearchParser\n filterRoutes?: FilterRoutesFn\n defaultLinkPreload?: false | 'intent'\n defaultLinkPreloadMaxAge?: number\n defaultLinkPreloadDelay?: number\n useErrorBoundary?: boolean\n defaultElement?: GetFrameworkGeneric<'Element'>\n defaultErrorElement?: GetFrameworkGeneric<'Element'>\n defaultCatchElement?: GetFrameworkGeneric<'Element'>\n defaultPendingElement?: GetFrameworkGeneric<'Element'>\n defaultPendingMs?: number\n defaultPendingMinMs?: number\n defaultLoaderMaxAge?: number\n defaultLoaderGcMaxAge?: number\n caseSensitive?: boolean\n routeConfig?: TRouteConfig\n basepath?: string\n createRouter?: (router: Router<any, any>) => void\n createRoute?: (opts: { route: AnyRoute; router: Router<any, any> }) => void\n}\n\nexport interface Action<\n TPayload = unknown,\n TResponse = unknown,\n // TError = unknown,\n> {\n submit: (submission?: TPayload) => Promise<TResponse>\n current?: ActionState<TPayload, TResponse>\n latest?: ActionState<TPayload, TResponse>\n pending: ActionState<TPayload, TResponse>[]\n}\n\nexport interface ActionState<\n TPayload = unknown,\n TResponse = unknown,\n // TError = unknown,\n> {\n submittedAt: number\n status: 'idle' | 'pending' | 'success' | 'error'\n submission: TPayload\n data?: TResponse\n error?: unknown\n}\n\nexport interface RouterState {\n status: 'idle' | 'loading'\n location: Location\n matches: RouteMatch[]\n lastUpdated: number\n loaderData: unknown\n currentAction?: ActionState\n latestAction?: ActionState\n actions: Record<string, Action>\n pending?: PendingState\n isFetching: boolean\n isPreloading: boolean\n}\n\nexport interface PendingState {\n location: Location\n matches: RouteMatch[]\n}\n\ntype Listener = () => void\n\nexport type ListenerFn = () => void\n\nexport interface BuildNextOptions {\n to?: string | number | null\n params?: true | Updater<Record<string, any>>\n search?: true | Updater<unknown>\n hash?: true | Updater<string>\n key?: string\n from?: string\n fromCurrent?: boolean\n __preSearchFilters?: SearchFilter<any>[]\n __postSearchFilters?: SearchFilter<any>[]\n}\n\nexport type MatchCacheEntry = {\n gc: number\n match: RouteMatch\n}\n\nexport interface MatchLocation {\n to?: string | number | null\n fuzzy?: boolean\n caseSensitive?: boolean\n from?: string\n fromCurrent?: boolean\n}\n\nexport interface MatchRouteOptions {\n pending: boolean\n caseSensitive?: boolean\n}\n\ntype LinkCurrentTargetElement = {\n preloadTimeout?: null | ReturnType<typeof setTimeout>\n}\n\nexport interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n> {\n options: PickAsRequired<\n RouterOptions<TRouteConfig>,\n 'stringifySearch' | 'parseSearch'\n >\n // Computed in this.update()\n basepath: string\n // Internal:\n allRouteInfo: TAllRouteInfo\n listeners: Listener[]\n location: Location\n navigateTimeout?: Timeout\n nextAction?: 'push' | 'replace'\n state: RouterState\n routeTree: Route<TAllRouteInfo, RouteInfo>\n routesById: RoutesById<TAllRouteInfo>\n navigationPromise: Promise<void>\n removeActionQueue: { action: Action; actionState: ActionState }[]\n startedLoadingAt: number\n resolveNavigation: () => void\n subscribe: (listener: Listener) => () => void\n notify: () => void\n mount: () => () => void\n onFocus: () => void\n update: <TRouteConfig extends RouteConfig = RouteConfig>(\n opts?: RouterOptions<TRouteConfig>,\n ) => Router<TRouteConfig>\n buildRouteTree: (\n routeConfig: RouteConfig,\n ) => Route<TAllRouteInfo, AnyRouteInfo>\n parseLocation: (\n location: History['location'],\n previousLocation?: Location,\n ) => Location\n buildLocation: (dest: BuildNextOptions) => Location\n commitLocation: (next: Location, replace?: boolean) => Promise<void>\n buildNext: (opts: BuildNextOptions) => Location\n cancelMatches: () => void\n loadLocation: (next?: Location) => Promise<void>\n matchCache: Record<string, MatchCacheEntry>\n cleanMatchCache: () => void\n getRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n id: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n loadRoute: (\n navigateOpts: BuildNextOptions,\n loaderOpts: { maxAge: number },\n ) => Promise<RouteMatch[]>\n matchRoutes: (\n pathname: string,\n opts?: { strictParseParams?: boolean },\n ) => RouteMatch[]\n loadMatches: (\n resolvedMatches: RouteMatch[],\n loaderOpts?: { withPending?: boolean } & (\n | { preload: true; maxAge: number }\n | { preload?: false; maxAge?: never }\n ),\n ) => Promise<void>\n invalidateRoute: (opts: MatchLocation) => void\n reload: () => Promise<void>\n resolvePath: (from: string, path: string) => string\n _navigate: (\n location: BuildNextOptions & { replace?: boolean },\n ) => Promise<void>\n navigate: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n opts: NavigateOptionsAbsolute<TAllRouteInfo, TFrom, TTo>,\n ) => Promise<void>\n matchRoute: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n matchLocation: ToOptions<TAllRouteInfo, TFrom, TTo>,\n opts?: MatchRouteOptions,\n ) => boolean\n buildLink: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n opts: LinkOptions<TAllRouteInfo, TFrom, TTo>,\n ) => LinkInfo\n}\n\n// Detect if we're in the DOM\nconst isServer = Boolean(\n typeof window === 'undefined' || !window.document?.createElement,\n)\n\n// This is the default history object if none is defined\nconst createDefaultHistory = () =>\n !isServer ? createBrowserHistory() : createMemoryHistory()\n\nexport function createRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n>(\n userOptions?: RouterOptions<TRouteConfig>,\n): Router<TRouteConfig, TAllRouteInfo> {\n const history = userOptions?.history || createDefaultHistory()\n\n const originalOptions = {\n defaultLoaderGcMaxAge: 5 * 60 * 1000,\n defaultLoaderMaxAge: 0,\n defaultLinkPreloadDelay: 50,\n ...userOptions,\n stringifySearch: userOptions?.stringifySearch ?? defaultStringifySearch,\n parseSearch: userOptions?.parseSearch ?? defaultParseSearch,\n }\n\n let router: Router<TRouteConfig, TAllRouteInfo> = {\n options: originalOptions,\n listeners: [],\n removeActionQueue: [],\n // Resolved after construction\n basepath: '',\n routeTree: undefined!,\n routesById: {} as any,\n location: undefined!,\n allRouteInfo: undefined!,\n //\n navigationPromise: Promise.resolve(),\n resolveNavigation: () => {},\n matchCache: {},\n state: {\n status: 'idle',\n location: null!,\n matches: [],\n actions: {},\n loaderData: {} as any,\n lastUpdated: Date.now(),\n isFetching: false,\n isPreloading: false,\n },\n startedLoadingAt: Date.now(),\n subscribe: (listener: Listener): (() => void) => {\n router.listeners.push(listener as Listener)\n return () => {\n router.listeners = router.listeners.filter((x) => x !== listener)\n }\n },\n getRoute: (id) => {\n return router.routesById[id]\n },\n notify: (): void => {\n router.state = {\n ...router.state,\n isFetching:\n router.state.status === 'loading' ||\n router.state.matches.some((d) => d.isFetching),\n isPreloading: Object.values(router.matchCache).some(\n (d) =>\n d.match.isFetching &&\n !router.state.matches.find((dd) => dd.matchId === d.match.matchId),\n ),\n }\n\n cascadeLoaderData(router.state.matches)\n router.listeners.forEach((listener) => listener())\n },\n\n mount: () => {\n const next = router.buildLocation({\n to: '.',\n search: true,\n hash: true,\n })\n\n // If the current location isn't updated, trigger a navigation\n // to the current location. Otherwise, load the current location.\n if (next.href !== router.location.href) {\n router.commitLocation(next, true)\n } else {\n router.loadLocation()\n }\n\n const unsub = history.listen((event) => {\n router.loadLocation(\n router.parseLocation(event.location, router.location),\n )\n })\n\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n // Listen to visibillitychange and focus\n window.addEventListener('visibilitychange', router.onFocus, false)\n window.addEventListener('focus', router.onFocus, false)\n }\n\n return () => {\n unsub()\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', router.onFocus)\n window.removeEventListener('focus', router.onFocus)\n }\n },\n\n onFocus: () => {\n router.loadLocation()\n },\n\n update: (opts) => {\n Object.assign(router.options, opts)\n\n const { basepath, routeConfig } = router.options\n\n router.basepath = cleanPath(`/${basepath ?? ''}`)\n\n if (routeConfig) {\n router.routesById = {} as any\n router.routeTree = router.buildRouteTree(routeConfig)\n }\n\n return router as any\n },\n\n buildRouteTree: (rootRouteConfig: RouteConfig) => {\n const recurseRoutes = (\n routeConfigs: RouteConfig[],\n parent?: Route<TAllRouteInfo, any>,\n ): Route<TAllRouteInfo, any>[] => {\n return routeConfigs.map((routeConfig) => {\n const routeOptions = routeConfig.options\n const route = createRoute(routeConfig, routeOptions, parent, router)\n\n // {\n // pendingMs: routeOptions.pendingMs ?? router.defaultPendingMs,\n // pendingMinMs: routeOptions.pendingMinMs ?? router.defaultPendingMinMs,\n // }\n\n const existingRoute = (router.routesById as any)[route.routeId]\n\n if (existingRoute) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Duplicate routes found with id: ${String(route.routeId)}`,\n router.routesById,\n route,\n )\n }\n throw new Error()\n }\n\n ;(router.routesById as any)[route.routeId] = route\n\n const children = routeConfig.children as RouteConfig[]\n\n route.childRoutes = children?.length\n ? recurseRoutes(children, route)\n : undefined\n\n return route\n })\n }\n\n const routes = recurseRoutes([rootRouteConfig])\n\n return routes[0]!\n },\n\n parseLocation: (\n location: History['location'],\n previousLocation?: Location,\n ): Location => {\n const parsedSearch = router.options.parseSearch(location.search)\n\n return {\n pathname: location.pathname,\n searchStr: location.search,\n search: replaceEqualDeep(previousLocation?.search, parsedSearch),\n hash: location.hash.split('#').reverse()[0] ?? '',\n href: `${location.pathname}${location.search}${location.hash}`,\n state: location.state as LocationState,\n key: location.key,\n }\n },\n\n buildLocation: (dest: BuildNextOptions = {}): Location => {\n // const resolvedFrom: Location = {\n // ...router.location,\n const fromPathname = dest.fromCurrent\n ? router.location.pathname\n : dest.from ?? router.location.pathname\n\n let pathname = resolvePath(\n router.basepath ?? '/',\n fromPathname,\n `${dest.to ?? '.'}`,\n )\n\n const fromMatches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n const toMatches = router.matchRoutes(pathname)\n\n const prevParams = { ...last(fromMatches)?.params }\n\n let nextParams =\n (dest.params ?? true) === true\n ? prevParams\n : functionalUpdate(dest.params!, prevParams)\n\n if (nextParams) {\n toMatches\n .map((d) => d.options.stringifyParams)\n .filter(Boolean)\n .forEach((fn) => {\n Object.assign({}, nextParams!, fn!(nextParams!))\n })\n }\n\n pathname = interpolatePath(pathname, nextParams ?? {})\n\n // Pre filters first\n const preFilteredSearch = dest.__preSearchFilters?.length\n ? dest.__preSearchFilters.reduce(\n (prev, next) => next(prev),\n router.location.search,\n )\n : router.location.search\n\n // Then the link/navigate function\n const destSearch =\n dest.search === true\n ? preFilteredSearch // Preserve resolvedFrom true\n : dest.search\n ? functionalUpdate(dest.search, preFilteredSearch) ?? {} // Updater\n : dest.__preSearchFilters?.length\n ? preFilteredSearch // Preserve resolvedFrom filters\n : {}\n\n // Then post filters\n const postFilteredSearch = dest.__postSearchFilters?.length\n ? dest.__postSearchFilters.reduce(\n (prev, next) => next(prev),\n destSearch,\n )\n : destSearch\n\n const search = replaceEqualDeep(\n router.location.search,\n postFilteredSearch,\n )\n\n const searchStr = router.options.stringifySearch(search)\n let hash =\n dest.hash === true\n ? router.location.hash\n : functionalUpdate(dest.hash!, router.location.hash)\n hash = hash ? `#${hash}` : ''\n\n return {\n pathname,\n search,\n searchStr,\n state: router.location.state,\n hash,\n href: `${pathname}${searchStr}${hash}`,\n key: dest.key,\n }\n },\n\n commitLocation: (next: Location, replace?: boolean): Promise<void> => {\n const id = '' + Date.now() + Math.random()\n\n if (router.navigateTimeout) clearTimeout(router.navigateTimeout)\n\n let nextAction: 'push' | 'replace' = 'replace'\n\n if (!replace) {\n nextAction = 'push'\n }\n\n const isSameUrl =\n router.parseLocation(history.location).href === next.href\n\n if (isSameUrl && !next.key) {\n nextAction = 'replace'\n }\n\n if (nextAction === 'replace') {\n history.replace(\n {\n pathname: next.pathname,\n hash: next.hash,\n search: next.searchStr,\n },\n {\n id,\n },\n )\n } else {\n history.push(\n {\n pathname: next.pathname,\n hash: next.hash,\n search: next.searchStr,\n },\n {\n id,\n },\n )\n }\n\n router.navigationPromise = new Promise((resolve) => {\n const previousNavigationResolve = router.resolveNavigation\n\n router.resolveNavigation = () => {\n previousNavigationResolve()\n resolve()\n }\n })\n\n return router.navigationPromise\n },\n\n buildNext: (opts: BuildNextOptions) => {\n const next = router.buildLocation(opts)\n\n const matches = router.matchRoutes(next.pathname)\n\n const __preSearchFilters = matches\n .map((match) => match.options.preSearchFilters ?? [])\n .flat()\n .filter(Boolean)\n\n const __postSearchFilters = matches\n .map((match) => match.options.postSearchFilters ?? [])\n .flat()\n .filter(Boolean)\n\n return router.buildLocation({\n ...opts,\n __preSearchFilters,\n __postSearchFilters,\n })\n },\n\n cancelMatches: () => {\n ;[\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ].forEach((match) => {\n match.cancel()\n })\n },\n\n loadLocation: async (next?: Location) => {\n const id = Math.random()\n router.startedLoadingAt = id\n\n if (next) {\n // Ingest the new location\n router.location = next\n }\n\n // Clear out old actions\n router.removeActionQueue.forEach(({ action, actionState }) => {\n if (router.state.currentAction === actionState) {\n router.state.currentAction = undefined\n }\n if (action.current === actionState) {\n action.current = undefined\n }\n })\n router.removeActionQueue = []\n\n // Cancel any pending matches\n router.cancelMatches()\n\n // Match the routes\n const matches = router.matchRoutes(location.pathname, {\n strictParseParams: true,\n })\n\n router.state = {\n ...router.state,\n pending: {\n matches: matches,\n location: router.location,\n },\n status: 'loading',\n }\n\n router.notify()\n\n // Load the matches\n await router.loadMatches(matches, {\n withPending: true,\n })\n\n if (router.startedLoadingAt !== id) {\n // Ignore side-effects of match loading\n return router.navigationPromise\n }\n\n const previousMatches = router.state.matches\n\n const exiting: RouteMatch[] = [],\n staying: RouteMatch[] = []\n\n previousMatches.forEach((d) => {\n if (matches.find((dd) => dd.matchId === d.matchId)) {\n staying.push(d)\n } else {\n exiting.push(d)\n }\n })\n\n const now = Date.now()\n\n exiting.forEach((d) => {\n d.__.onExit?.({\n params: d.params,\n search: d.routeSearch,\n })\n // Clear idle error states when match leaves\n if (d.status === 'error' && !d.isFetching) {\n d.status = 'idle'\n d.error = undefined\n }\n const gc = Math.max(\n d.options.loaderGcMaxAge ?? router.options.defaultLoaderGcMaxAge ?? 0,\n d.options.loaderMaxAge ?? router.options.defaultLoaderMaxAge ?? 0,\n )\n if (gc > 0) {\n router.matchCache[d.matchId] = {\n gc: gc == Infinity ? Number.MAX_SAFE_INTEGER : now + gc,\n match: d,\n }\n }\n })\n\n staying.forEach((d) => {\n d.options.onTransition?.({\n params: d.params,\n search: d.routeSearch,\n })\n })\n\n const entering = matches.filter((d) => {\n return !previousMatches.find((dd) => dd.matchId === d.matchId)\n })\n\n entering.forEach((d) => {\n d.__.onExit = d.options.onMatch?.({\n params: d.params,\n search: d.search,\n })\n })\n\n if (matches.some((d) => d.status === 'loading')) {\n router.notify()\n await Promise.all(\n matches.map((d) => d.__.loaderPromise || Promise.resolve()),\n )\n }\n if (router.startedLoadingAt !== id) {\n // Ignore side-effects of match loading\n return\n }\n\n router.state = {\n ...router.state,\n location: router.location,\n matches,\n pending: undefined,\n status: 'idle',\n }\n\n router.notify()\n router.resolveNavigation()\n },\n\n cleanMatchCache: () => {\n const now = Date.now()\n\n Object.keys(router.matchCache).forEach((matchId) => {\n const entry = router.matchCache[matchId]!\n\n // Don't remove loading matches\n if (entry.match.status === 'loading') {\n return\n }\n\n // Do not remove successful matches that are still valid\n if (entry.gc > 0 && entry.gc > now) {\n return\n }\n\n // Everything else gets removed\n delete router.matchCache[matchId]\n })\n },\n\n loadRoute: async (\n navigateOpts: BuildNextOptions = router.location,\n loaderOpts: { maxAge: number },\n ) => {\n const next = router.buildNext(navigateOpts)\n const matches = router.matchRoutes(next.pathname, {\n strictParseParams: true,\n })\n await router.loadMatches(matches, {\n preload: true,\n maxAge: loaderOpts.maxAge,\n })\n return matches\n },\n\n matchRoutes: (pathname, opts) => {\n router.cleanMatchCache()\n\n const matches: RouteMatch[] = []\n\n if (!router.routeTree) {\n return matches\n }\n\n const existingMatches = [\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ]\n\n const recurse = async (routes: Route<any, any>[]): Promise<void> => {\n const parentMatch = last(matches)\n let params = parentMatch?.params ?? {}\n\n const filteredRoutes = router.options.filterRoutes?.(routes) ?? routes\n\n let foundRoutes: Route[] = []\n\n const findMatchInRoutes = (parentRoutes: Route[], routes: Route[]) => {\n routes.some((route) => {\n if (!route.routePath && route.childRoutes?.length) {\n return findMatchInRoutes(\n [...foundRoutes, route],\n route.childRoutes,\n )\n }\n\n const fuzzy = !!(\n route.routePath !== '/' || route.childRoutes?.length\n )\n\n const matchParams = matchPathname(pathname, {\n to: route.fullPath,\n fuzzy,\n caseSensitive:\n route.options.caseSensitive ?? router.options.caseSensitive,\n })\n\n if (matchParams) {\n let parsedParams\n\n try {\n parsedParams =\n route.options.parseParams?.(matchParams!) ?? matchParams\n } catch (err) {\n if (opts?.strictParseParams) {\n throw err\n }\n }\n\n params = {\n ...params,\n ...parsedParams,\n }\n }\n\n if (!!matchParams) {\n foundRoutes = [...parentRoutes, route]\n }\n\n return !!foundRoutes.length\n })\n\n return !!foundRoutes.length\n }\n\n findMatchInRoutes([], filteredRoutes)\n\n if (!foundRoutes.length) {\n return\n }\n\n foundRoutes.forEach((foundRoute) => {\n const interpolatedPath = interpolatePath(foundRoute.routePath, params)\n const matchId = interpolatePath(foundRoute.routeId, params, true)\n\n const match =\n existingMatches.find((d) => d.matchId === matchId) ||\n router.matchCache[matchId]?.match ||\n createRouteMatch(router, foundRoute, {\n matchId,\n params,\n pathname: joinPaths([pathname, interpolatedPath]),\n })\n\n matches.push(match)\n })\n\n const foundRoute = last(foundRoutes)!\n\n if (foundRoute.childRoutes?.length) {\n recurse(foundRoute.childRoutes)\n }\n }\n\n recurse([router.routeTree])\n\n cascadeLoaderData(matches)\n\n return matches\n },\n\n loadMatches: async (resolvedMatches, loaderOpts) => {\n const now = Date.now()\n\n const matchPromises = resolvedMatches.map(async (match) => {\n // Validate the match (loads search params etc)\n match.__.validate()\n\n // If the match doesn't have a loader, don't attempt to load it\n if (!match.hasLoaders()) {\n return\n }\n // If this is a preload, add it to the preload cache\n if (loaderOpts?.preload && loaderOpts?.maxAge > 0) {\n // If the match is currently active, don't preload it\n if (router.state.matches.find((d) => d.matchId === match.matchId)) {\n return\n }\n router.matchCache[match.matchId] = {\n gc: now + loaderOpts.maxAge, // TODO: Should this use the route's maxAge?\n match,\n }\n }\n\n // If the match is invalid, errored or idle, trigger it to load\n if (\n (match.status === 'success' && match.getIsInvalid()) ||\n match.status === 'error' ||\n match.status === 'idle'\n ) {\n match.load()\n }\n\n if (match.status === 'loading') {\n // If requested, start the pending timers\n if (loaderOpts?.withPending) match.__.startPending()\n\n // Wait for the first sign of activity from the match\n // This might be completion, error, or a pending state\n await match.__.loadPromise\n }\n })\n\n router.notify()\n\n await Promise.all(matchPromises)\n },\n\n invalidateRoute: (opts: MatchLocation) => {\n const next = router.buildNext(opts)\n const unloadedMatchIds = router\n .matchRoutes(next.pathname)\n .map((d) => d.matchId)\n ;[\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ].forEach((match) => {\n if (unloadedMatchIds.includes(match.matchId)) {\n match.invalidate()\n }\n })\n },\n\n reload: () =>\n router._navigate({\n fromCurrent: true,\n replace: true,\n search: true,\n }),\n\n resolvePath: (from: string, path: string) => {\n return resolvePath(router.basepath!, from, cleanPath(path))\n },\n\n matchRoute: (location, opts) => {\n // const location = router.buildNext(opts)\n\n location = {\n ...location,\n to: location.to\n ? router.resolvePath(location.from ?? '', location.to)\n : undefined,\n }\n\n const next = router.buildNext(location)\n\n if (opts?.pending) {\n if (!router.state.pending?.location) {\n return false\n }\n return !!matchPathname(router.state.pending.location.pathname, {\n ...opts,\n to: next.pathname,\n })\n }\n\n return !!matchPathname(router.state.location.pathname, {\n ...opts,\n to: next.pathname,\n })\n },\n\n _navigate: (location: BuildNextOptions & { replace?: boolean }) => {\n const next = router.buildNext(location)\n return router.commitLocation(next, location.replace)\n },\n\n navigate: async ({ from, to = '.', search, hash, replace, params }) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n const toString = String(to)\n const fromString = String(from)\n\n let isExternal\n\n try {\n new URL(`${toString}`)\n isExternal = true\n } catch (e) {}\n\n invariant(\n !isExternal,\n 'Attempting to navigate to external url with router.navigate!',\n )\n\n return router._navigate({\n from: fromString,\n to: toString,\n search,\n hash,\n replace,\n params,\n })\n },\n\n buildLink: ({\n from,\n to = '.',\n search,\n params,\n hash,\n target,\n replace,\n activeOptions,\n preload,\n preloadMaxAge: userPreloadMaxAge,\n preloadDelay: userPreloadDelay,\n disabled,\n }) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n\n try {\n new URL(`${to}`)\n return {\n type: 'external',\n href: to,\n }\n } catch (e) {}\n\n const nextOpts = {\n from,\n to,\n search,\n params,\n hash,\n replace,\n }\n\n const next = router.buildNext(nextOpts)\n\n preload = preload ?? router.options.defaultLinkPreload\n const preloadMaxAge =\n userPreloadMaxAge ??\n router.options.defaultLinkPreloadMaxAge ??\n router.options.defaultLoaderGcMaxAge ??\n 0\n const preloadDelay =\n userPreloadDelay ?? router.options.defaultLinkPreloadDelay ?? 0\n\n // Compare path/hash for matches\n const pathIsEqual = router.state.location.pathname === next.pathname\n const currentPathSplit = router.state.location.pathname.split('/')\n const nextPathSplit = next.pathname.split('/')\n const pathIsFuzzyEqual = nextPathSplit.every(\n (d, i) => d === currentPathSplit[i],\n )\n const hashIsEqual = router.state.location.hash === next.hash\n // Combine the matches based on user options\n const pathTest = activeOptions?.exact ? pathIsEqual : pathIsFuzzyEqual\n const hashTest = activeOptions?.includeHash ? hashIsEqual : true\n\n // The final \"active\" test\n const isActive = pathTest && hashTest\n\n // The click handler\n const handleClick = (e: MouseEvent) => {\n if (\n !disabled &&\n !isCtrlEvent(e) &&\n !e.defaultPrevented &&\n (!target || target === '_self') &&\n e.button === 0\n ) {\n e.preventDefault()\n if (pathIsEqual && !search && !hash) {\n router.invalidateRoute(nextOpts)\n }\n\n // All is well? Navigate!)\n router._navigate(nextOpts)\n }\n }\n\n // The click handler\n const handleFocus = (e: MouseEvent) => {\n if (preload && preloadMaxAge > 0) {\n router.loadRoute(nextOpts, { maxAge: preloadMaxAge })\n }\n }\n\n const handleEnter = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (preload && preloadMaxAge > 0) {\n if (target.preloadTimeout) {\n return\n }\n\n target.preloadTimeout = setTimeout(() => {\n target.preloadTimeout = null\n router.loadRoute(nextOpts, { maxAge: preloadMaxAge })\n }, preloadDelay)\n }\n }\n\n const handleLeave = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (target.preloadTimeout) {\n clearTimeout(target.preloadTimeout)\n target.preloadTimeout = null\n }\n }\n\n return {\n type: 'internal',\n next,\n handleFocus,\n handleClick,\n handleEnter,\n handleLeave,\n isActive,\n disabled,\n }\n },\n }\n\n router.location = router.parseLocation(history.location)\n router.state.location = router.location\n\n router.update(userOptions)\n\n // Allow frameworks to hook into the router creation\n router.options.createRouter?.(router)\n\n return router\n}\n\nfunction isCtrlEvent(e: MouseEvent) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n}\n"],"names":["isServer","Boolean","window","document","createElement","createDefaultHistory","createBrowserHistory","createMemoryHistory","createRouter","userOptions","history","originalOptions","_extends","defaultLoaderGcMaxAge","defaultLoaderMaxAge","defaultLinkPreloadDelay","stringifySearch","defaultStringifySearch","parseSearch","defaultParseSearch","router","options","listeners","removeActionQueue","basepath","routeTree","undefined","routesById","location","allRouteInfo","navigationPromise","Promise","resolve","resolveNavigation","matchCache","state","status","matches","actions","loaderData","lastUpdated","Date","now","isFetching","isPreloading","startedLoadingAt","subscribe","listener","push","filter","x","getRoute","id","notify","some","d","Object","values","match","find","dd","matchId","cascadeLoaderData","forEach","mount","next","buildLocation","to","search","hash","href","commitLocation","loadLocation","unsub","listen","event","parseLocation","addEventListener","onFocus","removeEventListener","update","opts","assign","routeConfig","cleanPath","buildRouteTree","rootRouteConfig","recurseRoutes","routeConfigs","parent","map","routeOptions","route","createRoute","existingRoute","routeId","process","env","NODE_ENV","console","warn","String","Error","children","childRoutes","length","routes","previousLocation","parsedSearch","pathname","searchStr","replaceEqualDeep","split","reverse","key","dest","fromPathname","fromCurrent","from","resolvePath","fromMatches","matchRoutes","strictParseParams","toMatches","prevParams","last","params","nextParams","functionalUpdate","stringifyParams","fn","interpolatePath","preFilteredSearch","__preSearchFilters","reduce","prev","destSearch","postFilteredSearch","__postSearchFilters","replace","Math","random","navigateTimeout","clearTimeout","nextAction","isSameUrl","previousNavigationResolve","buildNext","preSearchFilters","flat","postSearchFilters","cancelMatches","pending","cancel","action","actionState","currentAction","current","loadMatches","withPending","previousMatches","exiting","staying","__","onExit","routeSearch","error","gc","max","loaderGcMaxAge","loaderMaxAge","Infinity","Number","MAX_SAFE_INTEGER","onTransition","entering","onMatch","all","loaderPromise","cleanMatchCache","keys","entry","loadRoute","navigateOpts","loaderOpts","preload","maxAge","existingMatches","recurse","parentMatch","filteredRoutes","filterRoutes","foundRoutes","findMatchInRoutes","parentRoutes","routePath","fuzzy","matchParams","matchPathname","fullPath","caseSensitive","parsedParams","parseParams","err","foundRoute","interpolatedPath","createRouteMatch","joinPaths","resolvedMatches","matchPromises","validate","hasLoaders","getIsInvalid","load","startPending","loadPromise","invalidateRoute","unloadedMatchIds","includes","invalidate","reload","_navigate","path","matchRoute","navigate","toString","fromString","isExternal","URL","e","invariant","buildLink","target","activeOptions","preloadMaxAge","userPreloadMaxAge","preloadDelay","userPreloadDelay","disabled","type","nextOpts","defaultLinkPreload","defaultLinkPreloadMaxAge","pathIsEqual","currentPathSplit","nextPathSplit","pathIsFuzzyEqual","every","i","hashIsEqual","pathTest","exact","hashTest","includeHash","isActive","handleClick","isCtrlEvent","defaultPrevented","button","preventDefault","handleFocus","handleEnter","preloadTimeout","setTimeout","handleLeave","metaKey","altKey","ctrlKey","shiftKey"],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sources":["../../../../../src/router.ts"],"sourcesContent":["import {\n BrowserHistory,\n createBrowserHistory,\n createMemoryHistory,\n HashHistory,\n History,\n MemoryHistory,\n} from 'history'\nimport invariant from 'tiny-invariant'\nimport { GetFrameworkGeneric } from './frameworks'\n\nimport {\n LinkInfo,\n LinkOptions,\n NavigateOptionsAbsolute,\n ToOptions,\n ValidFromPath,\n} from './link'\nimport {\n cleanPath,\n interpolatePath,\n joinPaths,\n matchPathname,\n resolvePath,\n} from './path'\nimport { AnyRoute, cascadeLoaderData, createRoute, Route } from './route'\nimport {\n AnyRouteConfig,\n AnySearchSchema,\n RouteConfig,\n SearchFilter,\n} from './routeConfig'\nimport {\n AllRouteInfo,\n AnyAllRouteInfo,\n AnyRouteInfo,\n RouteInfo,\n RoutesById,\n} from './routeInfo'\nimport { createRouteMatch, RouteMatch } from './routeMatch'\nimport { defaultParseSearch, defaultStringifySearch } from './searchParams'\nimport {\n functionalUpdate,\n last,\n PickAsRequired,\n replaceEqualDeep,\n Timeout,\n Updater,\n} from './utils'\n\nexport interface LocationState {}\n\nexport interface Location<\n TSearchObj extends AnySearchSchema = {},\n TState extends LocationState = LocationState,\n> {\n href: string\n pathname: string\n search: TSearchObj\n searchStr: string\n state: TState\n hash: string\n key?: string\n}\n\nexport interface FromLocation {\n pathname: string\n search?: unknown\n key?: string\n hash?: string\n}\n\nexport type SearchSerializer = (searchObj: Record<string, any>) => string\nexport type SearchParser = (searchStr: string) => Record<string, any>\nexport type FilterRoutesFn = <TRoute extends Route<any, RouteInfo>>(\n routeConfigs: TRoute[],\n) => TRoute[]\n\nexport interface RouterOptions<TRouteConfig extends AnyRouteConfig> {\n history?: BrowserHistory | MemoryHistory | HashHistory\n stringifySearch?: SearchSerializer\n parseSearch?: SearchParser\n filterRoutes?: FilterRoutesFn\n defaultLinkPreload?: false | 'intent'\n defaultLinkPreloadMaxAge?: number\n defaultLinkPreloadDelay?: number\n useErrorBoundary?: boolean\n defaultElement?: GetFrameworkGeneric<'Element'>\n defaultErrorElement?: GetFrameworkGeneric<'Element'>\n defaultCatchElement?: GetFrameworkGeneric<'Element'>\n defaultPendingElement?: GetFrameworkGeneric<'Element'>\n defaultPendingMs?: number\n defaultPendingMinMs?: number\n defaultLoaderMaxAge?: number\n defaultLoaderGcMaxAge?: number\n caseSensitive?: boolean\n routeConfig?: TRouteConfig\n basepath?: string\n createRouter?: (router: Router<any, any>) => void\n createRoute?: (opts: { route: AnyRoute; router: Router<any, any> }) => void\n}\n\nexport interface Action<\n TPayload = unknown,\n TResponse = unknown,\n // TError = unknown,\n> {\n submit: (submission?: TPayload) => Promise<TResponse>\n current?: ActionState<TPayload, TResponse>\n latest?: ActionState<TPayload, TResponse>\n pending: ActionState<TPayload, TResponse>[]\n}\n\nexport interface ActionState<\n TPayload = unknown,\n TResponse = unknown,\n // TError = unknown,\n> {\n submittedAt: number\n status: 'idle' | 'pending' | 'success' | 'error'\n submission: TPayload\n data?: TResponse\n error?: unknown\n}\n\nexport interface RouterState {\n status: 'idle' | 'loading'\n location: Location\n matches: RouteMatch[]\n lastUpdated: number\n loaderData: unknown\n currentAction?: ActionState\n latestAction?: ActionState\n actions: Record<string, Action>\n pending?: PendingState\n isFetching: boolean\n isPreloading: boolean\n}\n\nexport interface PendingState {\n location: Location\n matches: RouteMatch[]\n}\n\ntype Listener = () => void\n\nexport type ListenerFn = () => void\n\nexport interface BuildNextOptions {\n to?: string | number | null\n params?: true | Updater<Record<string, any>>\n search?: true | Updater<unknown>\n hash?: true | Updater<string>\n key?: string\n from?: string\n fromCurrent?: boolean\n __preSearchFilters?: SearchFilter<any>[]\n __postSearchFilters?: SearchFilter<any>[]\n}\n\nexport type MatchCacheEntry = {\n gc: number\n match: RouteMatch\n}\n\nexport interface MatchLocation {\n to?: string | number | null\n fuzzy?: boolean\n caseSensitive?: boolean\n from?: string\n fromCurrent?: boolean\n}\n\nexport interface MatchRouteOptions {\n pending: boolean\n caseSensitive?: boolean\n}\n\ntype LinkCurrentTargetElement = {\n preloadTimeout?: null | ReturnType<typeof setTimeout>\n}\n\nexport interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n> {\n options: PickAsRequired<\n RouterOptions<TRouteConfig>,\n 'stringifySearch' | 'parseSearch'\n >\n // Computed in this.update()\n basepath: string\n // Internal:\n allRouteInfo: TAllRouteInfo\n listeners: Listener[]\n location: Location\n navigateTimeout?: Timeout\n nextAction?: 'push' | 'replace'\n state: RouterState\n routeTree: Route<TAllRouteInfo, RouteInfo>\n routesById: RoutesById<TAllRouteInfo>\n navigationPromise: Promise<void>\n removeActionQueue: { action: Action; actionState: ActionState }[]\n startedLoadingAt: number\n resolveNavigation: () => void\n subscribe: (listener: Listener) => () => void\n notify: () => void\n mount: () => () => void\n onFocus: () => void\n update: <TRouteConfig extends RouteConfig = RouteConfig>(\n opts?: RouterOptions<TRouteConfig>,\n ) => Router<TRouteConfig>\n buildRouteTree: (\n routeConfig: RouteConfig,\n ) => Route<TAllRouteInfo, AnyRouteInfo>\n parseLocation: (\n location: History['location'],\n previousLocation?: Location,\n ) => Location\n buildLocation: (dest: BuildNextOptions) => Location\n commitLocation: (next: Location, replace?: boolean) => Promise<void>\n buildNext: (opts: BuildNextOptions) => Location\n cancelMatches: () => void\n loadLocation: (next?: Location) => Promise<void>\n matchCache: Record<string, MatchCacheEntry>\n cleanMatchCache: () => void\n getRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n id: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n loadRoute: (\n navigateOpts: BuildNextOptions,\n loaderOpts: { maxAge: number },\n ) => Promise<RouteMatch[]>\n matchRoutes: (\n pathname: string,\n opts?: { strictParseParams?: boolean },\n ) => RouteMatch[]\n loadMatches: (\n resolvedMatches: RouteMatch[],\n loaderOpts?: { withPending?: boolean } & (\n | { preload: true; maxAge: number }\n | { preload?: false; maxAge?: never }\n ),\n ) => Promise<void>\n invalidateRoute: (opts: MatchLocation) => void\n reload: () => Promise<void>\n resolvePath: (from: string, path: string) => string\n _navigate: (\n location: BuildNextOptions & { replace?: boolean },\n ) => Promise<void>\n navigate: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n opts: NavigateOptionsAbsolute<TAllRouteInfo, TFrom, TTo>,\n ) => Promise<void>\n matchRoute: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n matchLocation: ToOptions<TAllRouteInfo, TFrom, TTo>,\n opts?: MatchRouteOptions,\n ) => boolean\n buildLink: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n opts: LinkOptions<TAllRouteInfo, TFrom, TTo>,\n ) => LinkInfo\n}\n\n// Detect if we're in the DOM\nconst isServer = Boolean(\n typeof window === 'undefined' || !window.document?.createElement,\n)\n\n// This is the default history object if none is defined\nconst createDefaultHistory = () =>\n !isServer ? createBrowserHistory() : createMemoryHistory()\n\nexport function createRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n>(\n userOptions?: RouterOptions<TRouteConfig>,\n): Router<TRouteConfig, TAllRouteInfo> {\n const history = userOptions?.history || createDefaultHistory()\n\n const originalOptions = {\n defaultLoaderGcMaxAge: 5 * 60 * 1000,\n defaultLoaderMaxAge: 0,\n defaultLinkPreloadDelay: 50,\n ...userOptions,\n stringifySearch: userOptions?.stringifySearch ?? defaultStringifySearch,\n parseSearch: userOptions?.parseSearch ?? defaultParseSearch,\n }\n\n let router: Router<TRouteConfig, TAllRouteInfo> = {\n options: originalOptions,\n listeners: [],\n removeActionQueue: [],\n // Resolved after construction\n basepath: '',\n routeTree: undefined!,\n routesById: {} as any,\n location: undefined!,\n allRouteInfo: undefined!,\n //\n navigationPromise: Promise.resolve(),\n resolveNavigation: () => {},\n matchCache: {},\n state: {\n status: 'idle',\n location: null!,\n matches: [],\n actions: {},\n loaderData: {} as any,\n lastUpdated: Date.now(),\n isFetching: false,\n isPreloading: false,\n },\n startedLoadingAt: Date.now(),\n subscribe: (listener: Listener): (() => void) => {\n router.listeners.push(listener as Listener)\n return () => {\n router.listeners = router.listeners.filter((x) => x !== listener)\n }\n },\n getRoute: (id) => {\n return router.routesById[id]\n },\n notify: (): void => {\n router.state = {\n ...router.state,\n isFetching:\n router.state.status === 'loading' ||\n router.state.matches.some((d) => d.isFetching),\n isPreloading: Object.values(router.matchCache).some(\n (d) =>\n d.match.isFetching &&\n !router.state.matches.find((dd) => dd.matchId === d.match.matchId),\n ),\n }\n\n cascadeLoaderData(router.state.matches)\n router.listeners.forEach((listener) => listener())\n },\n\n mount: () => {\n const next = router.buildLocation({\n to: '.',\n search: true,\n hash: true,\n })\n\n // If the current location isn't updated, trigger a navigation\n // to the current location. Otherwise, load the current location.\n if (next.href !== router.location.href) {\n router.commitLocation(next, true)\n } else {\n router.loadLocation()\n }\n\n const unsub = history.listen((event) => {\n router.loadLocation(\n router.parseLocation(event.location, router.location),\n )\n })\n\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n // Listen to visibillitychange and focus\n window.addEventListener('visibilitychange', router.onFocus, false)\n window.addEventListener('focus', router.onFocus, false)\n }\n\n return () => {\n unsub()\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', router.onFocus)\n window.removeEventListener('focus', router.onFocus)\n }\n },\n\n onFocus: () => {\n router.loadLocation()\n },\n\n update: (opts) => {\n Object.assign(router.options, opts)\n\n const { basepath, routeConfig } = router.options\n\n router.basepath = cleanPath(`/${basepath ?? ''}`)\n\n if (routeConfig) {\n router.routesById = {} as any\n router.routeTree = router.buildRouteTree(routeConfig)\n }\n\n return router as any\n },\n\n buildRouteTree: (rootRouteConfig: RouteConfig) => {\n const recurseRoutes = (\n routeConfigs: RouteConfig[],\n parent?: Route<TAllRouteInfo, any>,\n ): Route<TAllRouteInfo, any>[] => {\n return routeConfigs.map((routeConfig) => {\n const routeOptions = routeConfig.options\n const route = createRoute(routeConfig, routeOptions, parent, router)\n\n // {\n // pendingMs: routeOptions.pendingMs ?? router.defaultPendingMs,\n // pendingMinMs: routeOptions.pendingMinMs ?? router.defaultPendingMinMs,\n // }\n\n const existingRoute = (router.routesById as any)[route.routeId]\n\n if (existingRoute) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Duplicate routes found with id: ${String(route.routeId)}`,\n router.routesById,\n route,\n )\n }\n throw new Error()\n }\n\n ;(router.routesById as any)[route.routeId] = route\n\n const children = routeConfig.children as RouteConfig[]\n\n route.childRoutes = children?.length\n ? recurseRoutes(children, route)\n : undefined\n\n return route\n })\n }\n\n const routes = recurseRoutes([rootRouteConfig])\n\n return routes[0]!\n },\n\n parseLocation: (\n location: History['location'],\n previousLocation?: Location,\n ): Location => {\n const parsedSearch = router.options.parseSearch(location.search)\n\n return {\n pathname: location.pathname,\n searchStr: location.search,\n search: replaceEqualDeep(previousLocation?.search, parsedSearch),\n hash: location.hash.split('#').reverse()[0] ?? '',\n href: `${location.pathname}${location.search}${location.hash}`,\n state: location.state as LocationState,\n key: location.key,\n }\n },\n\n buildLocation: (dest: BuildNextOptions = {}): Location => {\n // const resolvedFrom: Location = {\n // ...router.location,\n const fromPathname = dest.fromCurrent\n ? router.location.pathname\n : dest.from ?? router.location.pathname\n\n let pathname = resolvePath(\n router.basepath ?? '/',\n fromPathname,\n `${dest.to ?? '.'}`,\n )\n\n const fromMatches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n const toMatches = router.matchRoutes(pathname)\n\n const prevParams = { ...last(fromMatches)?.params }\n\n let nextParams =\n (dest.params ?? true) === true\n ? prevParams\n : functionalUpdate(dest.params!, prevParams)\n\n if (nextParams) {\n toMatches\n .map((d) => d.options.stringifyParams)\n .filter(Boolean)\n .forEach((fn) => {\n Object.assign({}, nextParams!, fn!(nextParams!))\n })\n }\n\n pathname = interpolatePath(pathname, nextParams ?? {})\n\n // Pre filters first\n const preFilteredSearch = dest.__preSearchFilters?.length\n ? dest.__preSearchFilters.reduce(\n (prev, next) => next(prev),\n router.location.search,\n )\n : router.location.search\n\n // Then the link/navigate function\n const destSearch =\n dest.search === true\n ? preFilteredSearch // Preserve resolvedFrom true\n : dest.search\n ? functionalUpdate(dest.search, preFilteredSearch) ?? {} // Updater\n : dest.__preSearchFilters?.length\n ? preFilteredSearch // Preserve resolvedFrom filters\n : {}\n\n // Then post filters\n const postFilteredSearch = dest.__postSearchFilters?.length\n ? dest.__postSearchFilters.reduce(\n (prev, next) => next(prev),\n destSearch,\n )\n : destSearch\n\n const search = replaceEqualDeep(\n router.location.search,\n postFilteredSearch,\n )\n\n const searchStr = router.options.stringifySearch(search)\n let hash =\n dest.hash === true\n ? router.location.hash\n : functionalUpdate(dest.hash!, router.location.hash)\n hash = hash ? `#${hash}` : ''\n\n return {\n pathname,\n search,\n searchStr,\n state: router.location.state,\n hash,\n href: `${pathname}${searchStr}${hash}`,\n key: dest.key,\n }\n },\n\n commitLocation: (next: Location, replace?: boolean): Promise<void> => {\n const id = '' + Date.now() + Math.random()\n\n if (router.navigateTimeout) clearTimeout(router.navigateTimeout)\n\n let nextAction: 'push' | 'replace' = 'replace'\n\n if (!replace) {\n nextAction = 'push'\n }\n\n const isSameUrl =\n router.parseLocation(history.location).href === next.href\n\n if (isSameUrl && !next.key) {\n nextAction = 'replace'\n }\n\n if (nextAction === 'replace') {\n history.replace(\n {\n pathname: next.pathname,\n hash: next.hash,\n search: next.searchStr,\n },\n {\n id,\n },\n )\n } else {\n history.push(\n {\n pathname: next.pathname,\n hash: next.hash,\n search: next.searchStr,\n },\n {\n id,\n },\n )\n }\n\n router.navigationPromise = new Promise((resolve) => {\n const previousNavigationResolve = router.resolveNavigation\n\n router.resolveNavigation = () => {\n previousNavigationResolve()\n resolve()\n }\n })\n\n return router.navigationPromise\n },\n\n buildNext: (opts: BuildNextOptions) => {\n const next = router.buildLocation(opts)\n\n const matches = router.matchRoutes(next.pathname)\n\n const __preSearchFilters = matches\n .map((match) => match.options.preSearchFilters ?? [])\n .flat()\n .filter(Boolean)\n\n const __postSearchFilters = matches\n .map((match) => match.options.postSearchFilters ?? [])\n .flat()\n .filter(Boolean)\n\n return router.buildLocation({\n ...opts,\n __preSearchFilters,\n __postSearchFilters,\n })\n },\n\n cancelMatches: () => {\n ;[\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ].forEach((match) => {\n match.cancel()\n })\n },\n\n loadLocation: async (next?: Location) => {\n const id = Math.random()\n router.startedLoadingAt = id\n\n if (next) {\n // Ingest the new location\n router.location = next\n }\n\n // Clear out old actions\n router.removeActionQueue.forEach(({ action, actionState }) => {\n if (router.state.currentAction === actionState) {\n router.state.currentAction = undefined\n }\n if (action.current === actionState) {\n action.current = undefined\n }\n })\n router.removeActionQueue = []\n\n // Cancel any pending matches\n router.cancelMatches()\n\n // Match the routes\n const matches = router.matchRoutes(location.pathname, {\n strictParseParams: true,\n })\n\n router.state = {\n ...router.state,\n pending: {\n matches: matches,\n location: router.location,\n },\n status: 'loading',\n }\n\n router.notify()\n\n // Load the matches\n await router.loadMatches(matches, {\n withPending: true,\n })\n\n if (router.startedLoadingAt !== id) {\n // Ignore side-effects of match loading\n return router.navigationPromise\n }\n\n const previousMatches = router.state.matches\n\n const exiting: RouteMatch[] = [],\n staying: RouteMatch[] = []\n\n previousMatches.forEach((d) => {\n if (matches.find((dd) => dd.matchId === d.matchId)) {\n staying.push(d)\n } else {\n exiting.push(d)\n }\n })\n\n const now = Date.now()\n\n exiting.forEach((d) => {\n d.__.onExit?.({\n params: d.params,\n search: d.routeSearch,\n })\n // Clear idle error states when match leaves\n if (d.status === 'error' && !d.isFetching) {\n d.status = 'idle'\n d.error = undefined\n }\n const gc = Math.max(\n d.options.loaderGcMaxAge ?? router.options.defaultLoaderGcMaxAge ?? 0,\n d.options.loaderMaxAge ?? router.options.defaultLoaderMaxAge ?? 0,\n )\n if (gc > 0) {\n router.matchCache[d.matchId] = {\n gc: gc == Infinity ? Number.MAX_SAFE_INTEGER : now + gc,\n match: d,\n }\n }\n })\n\n staying.forEach((d) => {\n d.options.onTransition?.({\n params: d.params,\n search: d.routeSearch,\n })\n })\n\n const entering = matches.filter((d) => {\n return !previousMatches.find((dd) => dd.matchId === d.matchId)\n })\n\n entering.forEach((d) => {\n d.__.onExit = d.options.onMatch?.({\n params: d.params,\n search: d.search,\n })\n })\n\n if (matches.some((d) => d.status === 'loading')) {\n router.notify()\n await Promise.all(\n matches.map((d) => d.__.loaderPromise || Promise.resolve()),\n )\n }\n if (router.startedLoadingAt !== id) {\n // Ignore side-effects of match loading\n return\n }\n\n router.state = {\n ...router.state,\n location: router.location,\n matches,\n pending: undefined,\n status: 'idle',\n }\n\n router.notify()\n router.resolveNavigation()\n },\n\n cleanMatchCache: () => {\n const now = Date.now()\n\n Object.keys(router.matchCache).forEach((matchId) => {\n const entry = router.matchCache[matchId]!\n\n // Don't remove loading matches\n if (entry.match.status === 'loading') {\n return\n }\n\n // Do not remove successful matches that are still valid\n if (entry.gc > 0 && entry.gc > now) {\n return\n }\n\n // Everything else gets removed\n delete router.matchCache[matchId]\n })\n },\n\n loadRoute: async (\n navigateOpts: BuildNextOptions = router.location,\n loaderOpts: { maxAge: number },\n ) => {\n const next = router.buildNext(navigateOpts)\n const matches = router.matchRoutes(next.pathname, {\n strictParseParams: true,\n })\n await router.loadMatches(matches, {\n preload: true,\n maxAge: loaderOpts.maxAge,\n })\n return matches\n },\n\n matchRoutes: (pathname, opts) => {\n router.cleanMatchCache()\n\n const matches: RouteMatch[] = []\n\n if (!router.routeTree) {\n return matches\n }\n\n const existingMatches = [\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ]\n\n const recurse = async (routes: Route<any, any>[]): Promise<void> => {\n const parentMatch = last(matches)\n let params = parentMatch?.params ?? {}\n\n const filteredRoutes = router.options.filterRoutes?.(routes) ?? routes\n\n let foundRoutes: Route[] = []\n\n const findMatchInRoutes = (parentRoutes: Route[], routes: Route[]) => {\n routes.some((route) => {\n if (!route.routePath && route.childRoutes?.length) {\n return findMatchInRoutes(\n [...foundRoutes, route],\n route.childRoutes,\n )\n }\n\n const fuzzy = !!(\n route.routePath !== '/' || route.childRoutes?.length\n )\n\n const matchParams = matchPathname(pathname, {\n to: route.fullPath,\n fuzzy,\n caseSensitive:\n route.options.caseSensitive ?? router.options.caseSensitive,\n })\n\n if (matchParams) {\n let parsedParams\n\n try {\n parsedParams =\n route.options.parseParams?.(matchParams!) ?? matchParams\n } catch (err) {\n if (opts?.strictParseParams) {\n throw err\n }\n }\n\n params = {\n ...params,\n ...parsedParams,\n }\n }\n\n if (!!matchParams) {\n foundRoutes = [...parentRoutes, route]\n }\n\n return !!foundRoutes.length\n })\n\n return !!foundRoutes.length\n }\n\n findMatchInRoutes([], filteredRoutes)\n\n if (!foundRoutes.length) {\n return\n }\n\n foundRoutes.forEach((foundRoute) => {\n const interpolatedPath = interpolatePath(foundRoute.routePath, params)\n const matchId = interpolatePath(foundRoute.routeId, params, true)\n\n const match =\n existingMatches.find((d) => d.matchId === matchId) ||\n router.matchCache[matchId]?.match ||\n createRouteMatch(router, foundRoute, {\n matchId,\n params,\n pathname: joinPaths([pathname, interpolatedPath]),\n })\n\n matches.push(match)\n })\n\n const foundRoute = last(foundRoutes)!\n\n if (foundRoute.childRoutes?.length) {\n recurse(foundRoute.childRoutes)\n }\n }\n\n recurse([router.routeTree])\n\n cascadeLoaderData(matches)\n\n return matches\n },\n\n loadMatches: async (resolvedMatches, loaderOpts) => {\n const now = Date.now()\n\n const matchPromises = resolvedMatches.map(async (match) => {\n // Validate the match (loads search params etc)\n match.__.validate()\n\n // // If the match doesn't have a loader, don't attempt to load it\n // if (!match.hasLoaders()) {\n // return\n // }\n\n // If this is a preload, add it to the preload cache\n if (loaderOpts?.preload && loaderOpts?.maxAge > 0) {\n // If the match is currently active, don't preload it\n if (router.state.matches.find((d) => d.matchId === match.matchId)) {\n return\n }\n\n router.matchCache[match.matchId] = {\n gc: now + loaderOpts.maxAge, // TODO: Should this use the route's maxAge?\n match,\n }\n }\n\n // If the match is invalid, errored or idle, trigger it to load\n if (\n (match.status === 'success' && match.getIsInvalid()) ||\n match.status === 'error' ||\n match.status === 'idle'\n ) {\n match.load()\n }\n\n if (match.status === 'loading') {\n // If requested, start the pending timers\n if (loaderOpts?.withPending) match.__.startPending()\n\n // Wait for the first sign of activity from the match\n // This might be completion, error, or a pending state\n await match.__.loadPromise\n }\n })\n\n router.notify()\n\n await Promise.all(matchPromises)\n },\n\n invalidateRoute: (opts: MatchLocation) => {\n const next = router.buildNext(opts)\n const unloadedMatchIds = router\n .matchRoutes(next.pathname)\n .map((d) => d.matchId)\n ;[\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ].forEach((match) => {\n if (unloadedMatchIds.includes(match.matchId)) {\n match.invalidate()\n }\n })\n },\n\n reload: () =>\n router._navigate({\n fromCurrent: true,\n replace: true,\n search: true,\n }),\n\n resolvePath: (from: string, path: string) => {\n return resolvePath(router.basepath!, from, cleanPath(path))\n },\n\n matchRoute: (location, opts) => {\n // const location = router.buildNext(opts)\n\n location = {\n ...location,\n to: location.to\n ? router.resolvePath(location.from ?? '', location.to)\n : undefined,\n }\n\n const next = router.buildNext(location)\n\n if (opts?.pending) {\n if (!router.state.pending?.location) {\n return false\n }\n return !!matchPathname(router.state.pending.location.pathname, {\n ...opts,\n to: next.pathname,\n })\n }\n\n return !!matchPathname(router.state.location.pathname, {\n ...opts,\n to: next.pathname,\n })\n },\n\n _navigate: (location: BuildNextOptions & { replace?: boolean }) => {\n const next = router.buildNext(location)\n return router.commitLocation(next, location.replace)\n },\n\n navigate: async ({ from, to = '.', search, hash, replace, params }) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n const toString = String(to)\n const fromString = String(from)\n\n let isExternal\n\n try {\n new URL(`${toString}`)\n isExternal = true\n } catch (e) {}\n\n invariant(\n !isExternal,\n 'Attempting to navigate to external url with router.navigate!',\n )\n\n return router._navigate({\n from: fromString,\n to: toString,\n search,\n hash,\n replace,\n params,\n })\n },\n\n buildLink: ({\n from,\n to = '.',\n search,\n params,\n hash,\n target,\n replace,\n activeOptions,\n preload,\n preloadMaxAge: userPreloadMaxAge,\n preloadDelay: userPreloadDelay,\n disabled,\n }) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n\n try {\n new URL(`${to}`)\n return {\n type: 'external',\n href: to,\n }\n } catch (e) {}\n\n const nextOpts = {\n from,\n to,\n search,\n params,\n hash,\n replace,\n }\n\n const next = router.buildNext(nextOpts)\n\n preload = preload ?? router.options.defaultLinkPreload\n const preloadMaxAge =\n userPreloadMaxAge ??\n router.options.defaultLinkPreloadMaxAge ??\n router.options.defaultLoaderGcMaxAge ??\n 0\n const preloadDelay =\n userPreloadDelay ?? router.options.defaultLinkPreloadDelay ?? 0\n\n // Compare path/hash for matches\n const pathIsEqual = router.state.location.pathname === next.pathname\n const currentPathSplit = router.state.location.pathname.split('/')\n const nextPathSplit = next.pathname.split('/')\n const pathIsFuzzyEqual = nextPathSplit.every(\n (d, i) => d === currentPathSplit[i],\n )\n const hashIsEqual = router.state.location.hash === next.hash\n // Combine the matches based on user options\n const pathTest = activeOptions?.exact ? pathIsEqual : pathIsFuzzyEqual\n const hashTest = activeOptions?.includeHash ? hashIsEqual : true\n\n // The final \"active\" test\n const isActive = pathTest && hashTest\n\n // The click handler\n const handleClick = (e: MouseEvent) => {\n if (\n !disabled &&\n !isCtrlEvent(e) &&\n !e.defaultPrevented &&\n (!target || target === '_self') &&\n e.button === 0\n ) {\n e.preventDefault()\n if (pathIsEqual && !search && !hash) {\n router.invalidateRoute(nextOpts)\n }\n\n // All is well? Navigate!)\n router._navigate(nextOpts)\n }\n }\n\n // The click handler\n const handleFocus = (e: MouseEvent) => {\n if (preload && preloadMaxAge > 0) {\n router.loadRoute(nextOpts, { maxAge: preloadMaxAge })\n }\n }\n\n const handleEnter = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (preload && preloadMaxAge > 0) {\n if (target.preloadTimeout) {\n return\n }\n\n target.preloadTimeout = setTimeout(() => {\n target.preloadTimeout = null\n router.loadRoute(nextOpts, { maxAge: preloadMaxAge })\n }, preloadDelay)\n }\n }\n\n const handleLeave = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (target.preloadTimeout) {\n clearTimeout(target.preloadTimeout)\n target.preloadTimeout = null\n }\n }\n\n return {\n type: 'internal',\n next,\n handleFocus,\n handleClick,\n handleEnter,\n handleLeave,\n isActive,\n disabled,\n }\n },\n }\n\n router.location = router.parseLocation(history.location)\n router.state.location = router.location\n\n router.update(userOptions)\n\n // Allow frameworks to hook into the router creation\n router.options.createRouter?.(router)\n\n return router\n}\n\nfunction isCtrlEvent(e: MouseEvent) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n}\n"],"names":["isServer","Boolean","window","document","createElement","createDefaultHistory","createBrowserHistory","createMemoryHistory","createRouter","userOptions","history","originalOptions","_extends","defaultLoaderGcMaxAge","defaultLoaderMaxAge","defaultLinkPreloadDelay","stringifySearch","defaultStringifySearch","parseSearch","defaultParseSearch","router","options","listeners","removeActionQueue","basepath","routeTree","undefined","routesById","location","allRouteInfo","navigationPromise","Promise","resolve","resolveNavigation","matchCache","state","status","matches","actions","loaderData","lastUpdated","Date","now","isFetching","isPreloading","startedLoadingAt","subscribe","listener","push","filter","x","getRoute","id","notify","some","d","Object","values","match","find","dd","matchId","cascadeLoaderData","forEach","mount","next","buildLocation","to","search","hash","href","commitLocation","loadLocation","unsub","listen","event","parseLocation","addEventListener","onFocus","removeEventListener","update","opts","assign","routeConfig","cleanPath","buildRouteTree","rootRouteConfig","recurseRoutes","routeConfigs","parent","map","routeOptions","route","createRoute","existingRoute","routeId","process","env","NODE_ENV","console","warn","String","Error","children","childRoutes","length","routes","previousLocation","parsedSearch","pathname","searchStr","replaceEqualDeep","split","reverse","key","dest","fromPathname","fromCurrent","from","resolvePath","fromMatches","matchRoutes","strictParseParams","toMatches","prevParams","last","params","nextParams","functionalUpdate","stringifyParams","fn","interpolatePath","preFilteredSearch","__preSearchFilters","reduce","prev","destSearch","postFilteredSearch","__postSearchFilters","replace","Math","random","navigateTimeout","clearTimeout","nextAction","isSameUrl","previousNavigationResolve","buildNext","preSearchFilters","flat","postSearchFilters","cancelMatches","pending","cancel","action","actionState","currentAction","current","loadMatches","withPending","previousMatches","exiting","staying","__","onExit","routeSearch","error","gc","max","loaderGcMaxAge","loaderMaxAge","Infinity","Number","MAX_SAFE_INTEGER","onTransition","entering","onMatch","all","loaderPromise","cleanMatchCache","keys","entry","loadRoute","navigateOpts","loaderOpts","preload","maxAge","existingMatches","recurse","parentMatch","filteredRoutes","filterRoutes","foundRoutes","findMatchInRoutes","parentRoutes","routePath","fuzzy","matchParams","matchPathname","fullPath","caseSensitive","parsedParams","parseParams","err","foundRoute","interpolatedPath","createRouteMatch","joinPaths","resolvedMatches","matchPromises","validate","getIsInvalid","load","startPending","loadPromise","invalidateRoute","unloadedMatchIds","includes","invalidate","reload","_navigate","path","matchRoute","navigate","toString","fromString","isExternal","URL","e","invariant","buildLink","target","activeOptions","preloadMaxAge","userPreloadMaxAge","preloadDelay","userPreloadDelay","disabled","type","nextOpts","defaultLinkPreload","defaultLinkPreloadMaxAge","pathIsEqual","currentPathSplit","nextPathSplit","pathIsFuzzyEqual","every","i","hashIsEqual","pathTest","exact","hashTest","includeHash","isActive","handleClick","isCtrlEvent","defaultPrevented","button","preventDefault","handleFocus","handleEnter","preloadTimeout","setTimeout","handleLeave","metaKey","altKey","ctrlKey","shiftKey"],"mappings":"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"}
@@ -2160,12 +2160,11 @@ function createRouter(userOptions) {
2160
2160
  const now = Date.now();
2161
2161
  const matchPromises = resolvedMatches.map(async match => {
2162
2162
  // Validate the match (loads search params etc)
2163
- match.__.validate(); // If the match doesn't have a loader, don't attempt to load it
2164
-
2165
-
2166
- if (!match.hasLoaders()) {
2167
- return;
2168
- } // If this is a preload, add it to the preload cache
2163
+ match.__.validate(); // // If the match doesn't have a loader, don't attempt to load it
2164
+ // if (!match.hasLoaders()) {
2165
+ // return
2166
+ // }
2167
+ // If this is a preload, add it to the preload cache
2169
2168
 
2170
2169
 
2171
2170
  if (loaderOpts != null && loaderOpts.preload && (loaderOpts == null ? void 0 : loaderOpts.maxAge) > 0) {