@tanstack/router-core 0.0.1-beta.16 → 0.0.1-beta.19
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.
- package/build/cjs/packages/router-core/src/routeConfig.js.map +1 -1
- package/build/cjs/packages/router-core/src/routeMatch.js +24 -35
- package/build/cjs/packages/router-core/src/routeMatch.js.map +1 -1
- package/build/cjs/packages/router-core/src/router.js +38 -1
- package/build/cjs/packages/router-core/src/router.js.map +1 -1
- package/build/esm/index.js +62 -36
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +130 -130
- package/build/types/index.d.ts +87 -81
- package/build/umd/index.development.js +62 -36
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/routeConfig.ts +1 -4
- package/src/routeInfo.ts +2 -2
- package/src/routeMatch.ts +24 -31
- package/src/router.ts +57 -7
|
@@ -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 React from 'react'\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, createRoute, Route } from './route'\nimport {\n AnyLoaderData,\n AnyPathParams,\n AnyRouteConfig,\n AnySearchSchema,\n LoaderContext,\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 pick,\n PickAsRequired,\n PickRequired,\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 defaultPreload?: false | 'intent'\n defaultPreloadMaxAge?: number\n defaultPreloadGcMaxAge?: number\n defaultPreloadDelay?: number\n useErrorBoundary?: boolean\n defaultComponent?: GetFrameworkGeneric<'Component'>\n defaultErrorComponent?: GetFrameworkGeneric<'Component'>\n defaultPendingComponent?: GetFrameworkGeneric<'Component'>\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 loadComponent?: (\n component: GetFrameworkGeneric<'Component'>,\n ) => Promise<GetFrameworkGeneric<'Component'>>\n // renderComponent?: (\n // component: GetFrameworkGeneric<'Component'>,\n // ) => GetFrameworkGeneric<'Element'>\n}\n\nexport interface Action<\n TPayload = unknown,\n TResponse = unknown,\n // TError = unknown,\n> {\n submit: (\n submission?: TPayload,\n actionOpts?: { invalidate?: boolean; multi?: boolean },\n ) => Promise<TResponse>\n current?: ActionState<TPayload, TResponse>\n latest?: ActionState<TPayload, TResponse>\n submissions: 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 isMulti: boolean\n data?: TResponse\n error?: unknown\n}\n\nexport interface Loader<\n TFullSearchSchema extends AnySearchSchema = {},\n TAllParams extends AnyPathParams = {},\n TRouteLoaderData = AnyLoaderData,\n> {\n fetch: keyof PickRequired<TFullSearchSchema> extends never\n ? keyof TAllParams extends never\n ? (loaderContext: { signal?: AbortSignal }) => Promise<TRouteLoaderData>\n : (loaderContext: {\n params: TAllParams\n search?: TFullSearchSchema\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n : keyof TAllParams extends never\n ? (loaderContext: {\n search: TFullSearchSchema\n params: TAllParams\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n : (loaderContext: {\n search: TFullSearchSchema\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n current?: LoaderState<TFullSearchSchema, TAllParams>\n latest?: LoaderState<TFullSearchSchema, TAllParams>\n pending: LoaderState<TFullSearchSchema, TAllParams>[]\n}\n\nexport interface LoaderState<\n TFullSearchSchema = unknown,\n TAllParams = unknown,\n> {\n loadedAt: number\n loaderContext: LoaderContext<TFullSearchSchema, TAllParams>\n}\n\nexport interface RouterState {\n status: 'idle' | 'loading'\n location: Location\n matches: RouteMatch[]\n lastUpdated: number\n actions: Record<string, Action>\n loaders: Record<string, Loader>\n pending?: PendingState\n isFetching: boolean\n isPreloading: boolean\n}\n\nexport interface PendingState {\n location: Location\n matches: RouteMatch[]\n}\n\ntype Listener = (router: Router<any, any>) => 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 state?: LocationState\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\ninterface DehydratedRouterState\n extends Pick<RouterState, 'status' | 'location' | 'lastUpdated'> {\n matches: DehydratedRouteMatch[]\n}\n\ninterface DehydratedRouteMatch\n extends Pick<\n RouteMatch<any, any>,\n | 'matchId'\n | 'status'\n | 'routeLoaderData'\n | 'loaderData'\n | 'isInvalid'\n | 'invalidAt'\n > {}\n\nexport interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n> {\n history: BrowserHistory | MemoryHistory | HashHistory\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 startedLoadingAt: number\n resolveNavigation: () => void\n subscribe: (listener: Listener) => () => void\n reset: () => void\n notify: () => void\n mount: () => () => void\n onFocus: () => void\n update: <TRouteConfig extends RouteConfig = RouteConfig>(\n opts?: RouterOptions<TRouteConfig>,\n ) => Router<TRouteConfig>\n\n buildNext: (opts: BuildNextOptions) => Location\n cancelMatches: () => void\n load: (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: (navigateOpts: BuildNextOptions) => Promise<RouteMatch[]>\n preloadRoute: (\n navigateOpts: BuildNextOptions,\n loaderOpts: { maxAge?: number; gcMaxAge?: number },\n ) => Promise<RouteMatch[]>\n matchRoutes: (\n pathname: string,\n opts?: { strictParseParams?: boolean },\n ) => RouteMatch[]\n loadMatches: (\n resolvedMatches: RouteMatch[],\n loaderOpts?:\n | { preload: true; maxAge: number; gcMaxAge: number }\n | { preload?: false; maxAge?: never; gcMaxAge?: never },\n ) => Promise<void>\n invalidateRoute: (opts: MatchLocation) => void\n reload: () => Promise<void>\n resolvePath: (from: string, path: string) => string\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 dehydrateState: () => DehydratedRouterState\n hydrateState: (state: DehydratedRouterState) => void\n __: {\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 navigate: (\n location: BuildNextOptions & { replace?: boolean },\n ) => Promise<void>\n }\n}\n\n// Detect if we're in the DOM\nconst isServer =\n typeof window === 'undefined' || !window.document?.createElement\n\n// This is the default history object if none is defined\nconst createDefaultHistory = () =>\n isServer ? createMemoryHistory() : createBrowserHistory()\n\nfunction getInitialRouterState(): RouterState {\n return {\n status: 'idle',\n location: null!,\n matches: [],\n actions: {},\n loaders: {},\n lastUpdated: Date.now(),\n isFetching: false,\n isPreloading: false,\n }\n}\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 defaultPreloadMaxAge: 2000,\n defaultPreloadDelay: 50,\n ...userOptions,\n stringifySearch: userOptions?.stringifySearch ?? defaultStringifySearch,\n parseSearch: userOptions?.parseSearch ?? defaultParseSearch,\n }\n\n let router: Router<TRouteConfig, TAllRouteInfo> = {\n history,\n options: originalOptions,\n listeners: [],\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: getInitialRouterState(),\n reset: () => {\n router.state = getInitialRouterState()\n router.notify()\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 const isFetching =\n router.state.status === 'loading' ||\n router.state.matches.some((d) => d.isFetching)\n\n const 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 if (\n router.state.isFetching !== isFetching ||\n router.state.isPreloading !== isPreloading\n ) {\n router.state = {\n ...router.state,\n isFetching,\n isPreloading,\n }\n }\n\n cascadeLoaderData(router.state.matches)\n router.listeners.forEach((listener) => listener(router))\n },\n\n dehydrateState: () => {\n return {\n ...pick(router.state, ['status', 'location', 'lastUpdated']),\n matches: router.state.matches.map((match) =>\n pick(match, [\n 'matchId',\n 'status',\n 'routeLoaderData',\n 'loaderData',\n 'isInvalid',\n 'invalidAt',\n ]),\n ),\n }\n },\n\n hydrateState: (dehydratedState) => {\n // Match the routes\n const matches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n matches.forEach((match, index) => {\n const dehydratedMatch = dehydratedState.matches[index]\n invariant(\n dehydratedMatch,\n 'Oh no! Dehydrated route matches did not match the active state of the router 😬',\n )\n Object.assign(match, dehydratedMatch)\n })\n\n matches.forEach((match) => match.__.validate())\n\n router.state = {\n ...router.state,\n ...dehydratedState,\n matches,\n }\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 }\n\n if (!router.state.matches.length) {\n router.load()\n }\n\n const unsub = router.history.listen((event) => {\n router.load(router.__.parseLocation(event.location, router.location))\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 if (!isServer && window.removeEventListener) {\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\n onFocus: () => {\n router.load()\n },\n\n update: (opts) => {\n const newHistory = opts?.history !== router.history\n if (!router.location || newHistory) {\n if (opts?.history) {\n router.history = opts.history\n }\n router.location = router.__.parseLocation(router.history.location)\n router.state.location = router.location\n }\n\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 cancelMatches: () => {\n ;[\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ].forEach((match) => {\n match.cancel()\n })\n },\n\n load: 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 // Cancel any pending matches\n router.cancelMatches()\n\n // Match the routes\n const matches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n if (typeof document !== 'undefined') {\n router.state = {\n ...router.state,\n pending: {\n matches: matches,\n location: router.location,\n },\n status: 'loading',\n }\n } else {\n router.state = {\n ...router.state,\n matches: matches,\n location: router.location,\n status: 'loading',\n }\n }\n\n router.notify()\n\n // Load the matches\n await router.loadMatches(matches)\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 entering = matches.filter((d) => {\n return !previousMatches.find((dd) => dd.matchId === d.matchId)\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\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 entering.forEach((d) => {\n d.__.onExit = d.options.onMatch?.({\n params: d.params,\n search: d.search,\n })\n delete router.matchCache[d.matchId]\n })\n\n if (router.startedLoadingAt !== id) {\n // Ignore side-effects of match loading\n return\n }\n\n matches.forEach((match) => {\n // Clear actions\n if (match.action) {\n match.action.current = undefined\n match.action.submissions = []\n }\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 (navigateOpts = router.location) => {\n const next = router.buildNext(navigateOpts)\n const matches = router.matchRoutes(next.pathname, {\n strictParseParams: true,\n })\n await router.loadMatches(matches)\n return matches\n },\n\n preloadRoute: async (navigateOpts = router.location, loaderOpts) => {\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:\n loaderOpts.maxAge ??\n router.options.defaultPreloadMaxAge ??\n router.options.defaultLoaderMaxAge ??\n 0,\n gcMaxAge:\n loaderOpts.gcMaxAge ??\n router.options.defaultPreloadGcMaxAge ??\n router.options.defaultLoaderGcMaxAge ??\n 0,\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 parentMatch,\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 matchPromises = resolvedMatches.map(async (match) => {\n // Validate the match (loads search params etc)\n match.__.validate()\n match.load(loaderOpts)\n\n if (match.__.loadPromise) {\n // Wait for the first sign of activity from the match\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: 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 preloadGcMaxAge: userPreloadGcMaxAge,\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.defaultPreload\n const preloadDelay =\n userPreloadDelay ?? router.options.defaultPreloadDelay ?? 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) {\n router.preloadRoute(nextOpts, {\n maxAge: userPreloadMaxAge,\n gcMaxAge: userPreloadGcMaxAge,\n })\n }\n }\n\n const handleEnter = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (preload) {\n if (target.preloadTimeout) {\n return\n }\n\n target.preloadTimeout = setTimeout(() => {\n target.preloadTimeout = null\n router.preloadRoute(nextOpts, {\n maxAge: userPreloadMaxAge,\n gcMaxAge: userPreloadGcMaxAge,\n })\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 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 __: {\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 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 navigate: (location: BuildNextOptions & { replace?: boolean }) => {\n const next = router.buildNext(location)\n return router.__.commitLocation(next, location.replace)\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 ...next.state,\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 }\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\nfunction cascadeLoaderData(matches: RouteMatch<any, any>[]) {\n matches.forEach((match, index) => {\n const parent = matches[index - 1]\n\n if (parent) {\n match.loaderData = replaceEqualDeep(match.loaderData, {\n ...parent.loaderData,\n ...match.routeLoaderData,\n })\n }\n })\n}\n"],"names":["isServer","window","document","createElement","createDefaultHistory","createMemoryHistory","createBrowserHistory","getInitialRouterState","status","location","matches","actions","loaders","lastUpdated","Date","now","isFetching","isPreloading","createRouter","userOptions","history","originalOptions","_extends","defaultLoaderGcMaxAge","defaultLoaderMaxAge","defaultPreloadMaxAge","defaultPreloadDelay","stringifySearch","defaultStringifySearch","parseSearch","defaultParseSearch","router","options","listeners","basepath","routeTree","undefined","routesById","allRouteInfo","navigationPromise","Promise","resolve","resolveNavigation","matchCache","state","reset","notify","startedLoadingAt","subscribe","listener","push","filter","x","getRoute","id","some","d","Object","values","match","find","dd","matchId","cascadeLoaderData","forEach","dehydrateState","pick","map","hydrateState","dehydratedState","matchRoutes","pathname","strictParseParams","index","dehydratedMatch","invariant","assign","__","validate","mount","next","buildLocation","to","search","hash","href","commitLocation","length","load","unsub","listen","event","parseLocation","addEventListener","onFocus","removeEventListener","update","opts","newHistory","routeConfig","cleanPath","buildRouteTree","cancelMatches","pending","cancel","Math","random","loadMatches","previousMatches","exiting","staying","entering","onExit","params","routeSearch","error","gc","max","loaderGcMaxAge","loaderMaxAge","Infinity","Number","MAX_SAFE_INTEGER","onTransition","onMatch","action","current","submissions","cleanMatchCache","keys","entry","loadRoute","navigateOpts","buildNext","preloadRoute","loaderOpts","preload","maxAge","gcMaxAge","defaultPreloadGcMaxAge","existingMatches","recurse","routes","parentMatch","last","filteredRoutes","filterRoutes","foundRoutes","findMatchInRoutes","parentRoutes","route","routePath","childRoutes","fuzzy","matchParams","matchPathname","fullPath","caseSensitive","parsedParams","parseParams","err","foundRoute","interpolatedPath","interpolatePath","routeId","createRouteMatch","joinPaths","resolvedMatches","matchPromises","loadPromise","all","invalidateRoute","unloadedMatchIds","includes","invalidate","reload","navigate","fromCurrent","replace","resolvePath","from","path","matchRoute","toString","String","fromString","isExternal","URL","e","buildLink","target","activeOptions","preloadMaxAge","userPreloadMaxAge","preloadGcMaxAge","userPreloadGcMaxAge","preloadDelay","userPreloadDelay","disabled","type","nextOpts","defaultPreload","pathIsEqual","currentPathSplit","split","nextPathSplit","pathIsFuzzyEqual","every","i","hashIsEqual","pathTest","exact","hashTest","includeHash","isActive","handleClick","isCtrlEvent","defaultPrevented","button","preventDefault","handleFocus","handleEnter","preloadTimeout","setTimeout","handleLeave","clearTimeout","__preSearchFilters","preSearchFilters","flat","Boolean","__postSearchFilters","postSearchFilters","rootRouteConfig","recurseRoutes","routeConfigs","parent","routeOptions","createRoute","existingRoute","process","env","NODE_ENV","console","warn","Error","children","previousLocation","parsedSearch","searchStr","replaceEqualDeep","reverse","key","dest","fromPathname","fromMatches","toMatches","prevParams","nextParams","functionalUpdate","stringifyParams","fn","preFilteredSearch","reduce","prev","destSearch","postFilteredSearch","navigateTimeout","nextAction","isSameUrl","previousNavigationResolve","metaKey","altKey","ctrlKey","shiftKey","loaderData","routeLoaderData"],"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, createRoute, Route } from './route'\nimport {\n AnyLoaderData,\n AnyPathParams,\n AnyRouteConfig,\n AnySearchSchema,\n LoaderContext,\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 pick,\n PickAsRequired,\n PickRequired,\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 defaultPreload?: false | 'intent'\n defaultPreloadMaxAge?: number\n defaultPreloadGcMaxAge?: number\n defaultPreloadDelay?: number\n defaultComponent?: GetFrameworkGeneric<'Component'>\n defaultErrorComponent?: GetFrameworkGeneric<'Component'>\n defaultPendingComponent?: GetFrameworkGeneric<'Component'>\n defaultLoaderMaxAge?: number\n defaultLoaderGcMaxAge?: number\n caseSensitive?: boolean\n routeConfig?: TRouteConfig\n basepath?: string\n useServerData?: boolean\n createRouter?: (router: Router<any, any>) => void\n createRoute?: (opts: { route: AnyRoute; router: Router<any, any> }) => void\n loadComponent?: (\n component: GetFrameworkGeneric<'Component'>,\n ) => Promise<GetFrameworkGeneric<'Component'>>\n // renderComponent?: (\n // component: GetFrameworkGeneric<'Component'>,\n // ) => GetFrameworkGeneric<'Element'>\n}\n\nexport interface Action<\n TPayload = unknown,\n TResponse = unknown,\n // TError = unknown,\n> {\n submit: (\n submission?: TPayload,\n actionOpts?: { invalidate?: boolean; multi?: boolean },\n ) => Promise<TResponse>\n current?: ActionState<TPayload, TResponse>\n latest?: ActionState<TPayload, TResponse>\n submissions: 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 isMulti: boolean\n data?: TResponse\n error?: unknown\n}\n\nexport interface Loader<\n TFullSearchSchema extends AnySearchSchema = {},\n TAllParams extends AnyPathParams = {},\n TRouteLoaderData = AnyLoaderData,\n> {\n fetch: keyof PickRequired<TFullSearchSchema> extends never\n ? keyof TAllParams extends never\n ? (loaderContext: { signal?: AbortSignal }) => Promise<TRouteLoaderData>\n : (loaderContext: {\n params: TAllParams\n search?: TFullSearchSchema\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n : keyof TAllParams extends never\n ? (loaderContext: {\n search: TFullSearchSchema\n params: TAllParams\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n : (loaderContext: {\n search: TFullSearchSchema\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n current?: LoaderState<TFullSearchSchema, TAllParams>\n latest?: LoaderState<TFullSearchSchema, TAllParams>\n pending: LoaderState<TFullSearchSchema, TAllParams>[]\n}\n\nexport interface LoaderState<\n TFullSearchSchema extends AnySearchSchema = {},\n TAllParams extends AnyPathParams = {},\n> {\n loadedAt: number\n loaderContext: LoaderContext<AnyLoaderData, TFullSearchSchema, TAllParams>\n}\n\nexport interface RouterState {\n status: 'idle' | 'loading'\n location: Location\n matches: RouteMatch[]\n lastUpdated: number\n actions: Record<string, Action>\n loaders: Record<string, Loader>\n pending?: PendingState\n isFetching: boolean\n isPreloading: boolean\n}\n\nexport interface PendingState {\n location: Location\n matches: RouteMatch[]\n}\n\ntype Listener = (router: Router<any, any>) => 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 state?: LocationState\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\ninterface DehydratedRouterState\n extends Pick<RouterState, 'status' | 'location' | 'lastUpdated'> {\n matches: DehydratedRouteMatch[]\n}\n\ninterface DehydratedRouteMatch\n extends Pick<\n RouteMatch<any, any>,\n | 'matchId'\n | 'status'\n | 'routeLoaderData'\n | 'loaderData'\n | 'isInvalid'\n | 'invalidAt'\n > {}\n\nexport interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n> {\n types: {\n // Super secret internal stuff\n RouteConfig: TRouteConfig\n AllRouteInfo: TAllRouteInfo\n }\n\n // Public API\n history: BrowserHistory | MemoryHistory | HashHistory\n options: PickAsRequired<\n RouterOptions<TRouteConfig>,\n 'stringifySearch' | 'parseSearch'\n >\n // Computed in this.update()\n basepath: string\n // Internal:\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 startedLoadingAt: number\n resolveNavigation: () => void\n subscribe: (listener: Listener) => () => void\n reset: () => void\n notify: () => void\n mount: () => () => void\n onFocus: () => void\n update: <TRouteConfig extends RouteConfig = RouteConfig>(\n opts?: RouterOptions<TRouteConfig>,\n ) => Router<TRouteConfig>\n\n buildNext: (opts: BuildNextOptions) => Location\n cancelMatches: () => void\n load: (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: (navigateOpts: BuildNextOptions) => Promise<RouteMatch[]>\n preloadRoute: (\n navigateOpts: BuildNextOptions,\n loaderOpts: { maxAge?: number; gcMaxAge?: number },\n ) => Promise<RouteMatch[]>\n matchRoutes: (\n pathname: string,\n opts?: { strictParseParams?: boolean },\n ) => RouteMatch[]\n loadMatches: (\n resolvedMatches: RouteMatch[],\n loaderOpts?:\n | { preload: true; maxAge: number; gcMaxAge: number }\n | { preload?: false; maxAge?: never; gcMaxAge?: never },\n ) => Promise<void>\n loadMatchData: (\n routeMatch: RouteMatch<any, any>,\n ) => Promise<Record<string, unknown>>\n invalidateRoute: (opts: MatchLocation) => void\n reload: () => Promise<void>\n resolvePath: (from: string, path: string) => string\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 dehydrateState: () => DehydratedRouterState\n hydrateState: (state: DehydratedRouterState) => void\n __: {\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 navigate: (\n location: BuildNextOptions & { replace?: boolean },\n ) => Promise<void>\n }\n}\n\n// Detect if we're in the DOM\nconst isServer =\n typeof window === 'undefined' || !window.document?.createElement\n\n// This is the default history object if none is defined\nconst createDefaultHistory = () =>\n isServer ? createMemoryHistory() : createBrowserHistory()\n\nfunction getInitialRouterState(): RouterState {\n return {\n status: 'idle',\n location: null!,\n matches: [],\n actions: {},\n loaders: {},\n lastUpdated: Date.now(),\n isFetching: false,\n isPreloading: false,\n }\n}\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 defaultPreloadMaxAge: 2000,\n defaultPreloadDelay: 50,\n ...userOptions,\n stringifySearch: userOptions?.stringifySearch ?? defaultStringifySearch,\n parseSearch: userOptions?.parseSearch ?? defaultParseSearch,\n }\n\n let router: Router<TRouteConfig, TAllRouteInfo> = {\n types: undefined!,\n\n // public api\n history,\n options: originalOptions,\n listeners: [],\n // Resolved after construction\n basepath: '',\n routeTree: undefined!,\n routesById: {} as any,\n location: undefined!,\n //\n navigationPromise: Promise.resolve(),\n resolveNavigation: () => {},\n matchCache: {},\n state: getInitialRouterState(),\n reset: () => {\n router.state = getInitialRouterState()\n router.notify()\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 const isFetching =\n router.state.status === 'loading' ||\n router.state.matches.some((d) => d.isFetching)\n\n const 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 if (\n router.state.isFetching !== isFetching ||\n router.state.isPreloading !== isPreloading\n ) {\n router.state = {\n ...router.state,\n isFetching,\n isPreloading,\n }\n }\n\n cascadeLoaderData(router.state.matches)\n router.listeners.forEach((listener) => listener(router))\n },\n\n dehydrateState: () => {\n return {\n ...pick(router.state, ['status', 'location', 'lastUpdated']),\n matches: router.state.matches.map((match) =>\n pick(match, [\n 'matchId',\n 'status',\n 'routeLoaderData',\n 'loaderData',\n 'isInvalid',\n 'invalidAt',\n ]),\n ),\n }\n },\n\n hydrateState: (dehydratedState) => {\n // Match the routes\n const matches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n matches.forEach((match, index) => {\n const dehydratedMatch = dehydratedState.matches[index]\n invariant(\n dehydratedMatch,\n 'Oh no! Dehydrated route matches did not match the active state of the router 😬',\n )\n Object.assign(match, dehydratedMatch)\n })\n\n matches.forEach((match) => match.__.validate())\n\n router.state = {\n ...router.state,\n ...dehydratedState,\n matches,\n }\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 }\n\n if (!router.state.matches.length) {\n router.load()\n }\n\n const unsub = router.history.listen((event) => {\n router.load(router.__.parseLocation(event.location, router.location))\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 if (!isServer && window.removeEventListener) {\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\n onFocus: () => {\n router.load()\n },\n\n update: (opts) => {\n const newHistory = opts?.history !== router.history\n if (!router.location || newHistory) {\n if (opts?.history) {\n router.history = opts.history\n }\n router.location = router.__.parseLocation(router.history.location)\n router.state.location = router.location\n }\n\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 cancelMatches: () => {\n ;[\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ].forEach((match) => {\n match.cancel()\n })\n },\n\n load: 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 // Cancel any pending matches\n router.cancelMatches()\n\n // Match the routes\n const matches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n if (typeof document !== 'undefined') {\n router.state = {\n ...router.state,\n pending: {\n matches: matches,\n location: router.location,\n },\n status: 'loading',\n }\n } else {\n router.state = {\n ...router.state,\n matches: matches,\n location: router.location,\n status: 'loading',\n }\n }\n\n router.notify()\n\n // Load the matches\n await router.loadMatches(matches)\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 entering = matches.filter((d) => {\n return !previousMatches.find((dd) => dd.matchId === d.matchId)\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\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 entering.forEach((d) => {\n d.__.onExit = d.options.onMatch?.({\n params: d.params,\n search: d.search,\n })\n delete router.matchCache[d.matchId]\n })\n\n if (router.startedLoadingAt !== id) {\n // Ignore side-effects of match loading\n return\n }\n\n matches.forEach((match) => {\n // Clear actions\n if (match.action) {\n match.action.current = undefined\n match.action.submissions = []\n }\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 (navigateOpts = router.location) => {\n const next = router.buildNext(navigateOpts)\n const matches = router.matchRoutes(next.pathname, {\n strictParseParams: true,\n })\n await router.loadMatches(matches)\n return matches\n },\n\n preloadRoute: async (navigateOpts = router.location, loaderOpts) => {\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:\n loaderOpts.maxAge ??\n router.options.defaultPreloadMaxAge ??\n router.options.defaultLoaderMaxAge ??\n 0,\n gcMaxAge:\n loaderOpts.gcMaxAge ??\n router.options.defaultPreloadGcMaxAge ??\n router.options.defaultLoaderGcMaxAge ??\n 0,\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 parentMatch,\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 matchPromises = resolvedMatches.map(async (match) => {\n // Validate the match (loads search params etc)\n match.__.validate()\n match.load(loaderOpts)\n\n const search = match.search as { __data?: any }\n\n if (search.__data && search.__data.matchId !== match.matchId) {\n return\n }\n\n if (match.__.loadPromise) {\n // Wait for the first sign of activity from the match\n await match.__.loadPromise\n }\n })\n\n router.notify()\n\n await Promise.all(matchPromises)\n },\n\n loadMatchData: async (routeMatch) => {\n if (isServer || !router.options.useServerData) {\n return (\n (await routeMatch.options.loader?.({\n // parentLoaderPromise: routeMatch.parentMatch?.__.dataPromise,\n params: routeMatch.params,\n search: routeMatch.routeSearch,\n signal: routeMatch.__.abortController.signal,\n })) ?? {}\n )\n } else {\n const next = router.buildNext({\n to: '.',\n search: (d: any) => ({\n ...(d ?? {}),\n __data: {\n matchId: routeMatch.matchId,\n },\n }),\n })\n\n const res = await fetch(next.href, {\n method: 'GET',\n // signal: routeMatch.__.abortController.signal,\n })\n\n if (res.ok) {\n return res.json()\n }\n\n throw new Error('Failed to fetch match data')\n }\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: 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 preloadGcMaxAge: userPreloadGcMaxAge,\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.defaultPreload\n const preloadDelay =\n userPreloadDelay ?? router.options.defaultPreloadDelay ?? 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) {\n router.preloadRoute(nextOpts, {\n maxAge: userPreloadMaxAge,\n gcMaxAge: userPreloadGcMaxAge,\n })\n }\n }\n\n const handleEnter = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (preload) {\n if (target.preloadTimeout) {\n return\n }\n\n target.preloadTimeout = setTimeout(() => {\n target.preloadTimeout = null\n router.preloadRoute(nextOpts, {\n maxAge: userPreloadMaxAge,\n gcMaxAge: userPreloadGcMaxAge,\n })\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 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 __: {\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 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 navigate: (location: BuildNextOptions & { replace?: boolean }) => {\n const next = router.buildNext(location)\n return router.__.commitLocation(next, location.replace)\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 ...next.state,\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 }\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\nfunction cascadeLoaderData(matches: RouteMatch<any, any>[]) {\n matches.forEach((match, index) => {\n const parent = matches[index - 1]\n\n if (parent) {\n match.loaderData = replaceEqualDeep(match.loaderData, {\n ...parent.loaderData,\n ...match.routeLoaderData,\n })\n }\n })\n}\n"],"names":["isServer","window","document","createElement","createDefaultHistory","createMemoryHistory","createBrowserHistory","getInitialRouterState","status","location","matches","actions","loaders","lastUpdated","Date","now","isFetching","isPreloading","createRouter","userOptions","history","originalOptions","_extends","defaultLoaderGcMaxAge","defaultLoaderMaxAge","defaultPreloadMaxAge","defaultPreloadDelay","stringifySearch","defaultStringifySearch","parseSearch","defaultParseSearch","router","types","undefined","options","listeners","basepath","routeTree","routesById","navigationPromise","Promise","resolve","resolveNavigation","matchCache","state","reset","notify","startedLoadingAt","subscribe","listener","push","filter","x","getRoute","id","some","d","Object","values","match","find","dd","matchId","cascadeLoaderData","forEach","dehydrateState","pick","map","hydrateState","dehydratedState","matchRoutes","pathname","strictParseParams","index","dehydratedMatch","invariant","assign","__","validate","mount","next","buildLocation","to","search","hash","href","commitLocation","length","load","unsub","listen","event","parseLocation","addEventListener","onFocus","removeEventListener","update","opts","newHistory","routeConfig","cleanPath","buildRouteTree","cancelMatches","pending","cancel","Math","random","loadMatches","previousMatches","exiting","staying","entering","onExit","params","routeSearch","error","gc","max","loaderGcMaxAge","loaderMaxAge","Infinity","Number","MAX_SAFE_INTEGER","onTransition","onMatch","action","current","submissions","cleanMatchCache","keys","entry","loadRoute","navigateOpts","buildNext","preloadRoute","loaderOpts","preload","maxAge","gcMaxAge","defaultPreloadGcMaxAge","existingMatches","recurse","routes","parentMatch","last","filteredRoutes","filterRoutes","foundRoutes","findMatchInRoutes","parentRoutes","route","routePath","childRoutes","fuzzy","matchParams","matchPathname","fullPath","caseSensitive","parsedParams","parseParams","err","foundRoute","interpolatedPath","interpolatePath","routeId","createRouteMatch","joinPaths","resolvedMatches","matchPromises","__data","loadPromise","all","loadMatchData","routeMatch","useServerData","loader","signal","abortController","res","fetch","method","ok","json","Error","invalidateRoute","unloadedMatchIds","includes","invalidate","reload","navigate","fromCurrent","replace","resolvePath","from","path","matchRoute","toString","String","fromString","isExternal","URL","e","buildLink","target","activeOptions","preloadMaxAge","userPreloadMaxAge","preloadGcMaxAge","userPreloadGcMaxAge","preloadDelay","userPreloadDelay","disabled","type","nextOpts","defaultPreload","pathIsEqual","currentPathSplit","split","nextPathSplit","pathIsFuzzyEqual","every","i","hashIsEqual","pathTest","exact","hashTest","includeHash","isActive","handleClick","isCtrlEvent","defaultPrevented","button","preventDefault","handleFocus","handleEnter","preloadTimeout","setTimeout","handleLeave","clearTimeout","__preSearchFilters","preSearchFilters","flat","Boolean","__postSearchFilters","postSearchFilters","rootRouteConfig","recurseRoutes","routeConfigs","parent","routeOptions","createRoute","existingRoute","process","env","NODE_ENV","console","warn","children","previousLocation","parsedSearch","searchStr","replaceEqualDeep","reverse","key","dest","fromPathname","fromMatches","toMatches","prevParams","nextParams","functionalUpdate","stringifyParams","fn","preFilteredSearch","reduce","prev","destSearch","postFilteredSearch","navigateTimeout","nextAction","isSameUrl","previousNavigationResolve","metaKey","altKey","ctrlKey","shiftKey","loaderData","routeLoaderData"],"mappings":"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"}
|
package/build/esm/index.js
CHANGED
|
@@ -1488,11 +1488,19 @@ function createRouteMatch(router, route, opts) {
|
|
|
1488
1488
|
}
|
|
1489
1489
|
},
|
|
1490
1490
|
fetch: async opts => {
|
|
1491
|
-
const
|
|
1492
|
-
routeMatch.__.latestId =
|
|
1491
|
+
const loadId = '' + Date.now() + Math.random();
|
|
1492
|
+
routeMatch.__.latestId = loadId;
|
|
1493
|
+
|
|
1494
|
+
const checkLatest = async () => {
|
|
1495
|
+
if (loadId !== routeMatch.__.latestId) {
|
|
1496
|
+
// warning(true, 'Data loader is out of date!')
|
|
1497
|
+
return new Promise(() => {});
|
|
1498
|
+
}
|
|
1499
|
+
}; // If the match was in an error state, set it
|
|
1493
1500
|
// to a loading state again. Otherwise, keep it
|
|
1494
1501
|
// as loading or resolved
|
|
1495
1502
|
|
|
1503
|
+
|
|
1496
1504
|
if (routeMatch.status === 'idle') {
|
|
1497
1505
|
routeMatch.status = 'loading';
|
|
1498
1506
|
} // We started loading the route, so it's no longer invalid
|
|
@@ -1524,19 +1532,8 @@ function createRouteMatch(router, route, opts) {
|
|
|
1524
1532
|
var _ref, _ref2, _opts$maxAge;
|
|
1525
1533
|
|
|
1526
1534
|
if (routeMatch.options.loader) {
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
const data = await routeMatch.options.loader({
|
|
1530
|
-
parentLoaderPromise: (_routeMatch$parentMat3 = routeMatch.parentMatch) == null ? void 0 : _routeMatch$parentMat3.__.dataPromise,
|
|
1531
|
-
params: routeMatch.params,
|
|
1532
|
-
search: routeMatch.routeSearch,
|
|
1533
|
-
signal: routeMatch.__.abortController.signal
|
|
1534
|
-
});
|
|
1535
|
-
|
|
1536
|
-
if (id !== routeMatch.__.latestId) {
|
|
1537
|
-
return routeMatch.__.loadPromise;
|
|
1538
|
-
}
|
|
1539
|
-
|
|
1535
|
+
const data = await router.loadMatchData(routeMatch);
|
|
1536
|
+
await checkLatest();
|
|
1540
1537
|
routeMatch.routeLoaderData = replaceEqualDeep(routeMatch.routeLoaderData, data);
|
|
1541
1538
|
}
|
|
1542
1539
|
|
|
@@ -1546,9 +1543,7 @@ function createRouteMatch(router, route, opts) {
|
|
|
1546
1543
|
routeMatch.invalidAt = routeMatch.updatedAt + ((_ref = (_ref2 = (_opts$maxAge = opts == null ? void 0 : opts.maxAge) != null ? _opts$maxAge : routeMatch.options.loaderMaxAge) != null ? _ref2 : router.options.defaultLoaderMaxAge) != null ? _ref : 0);
|
|
1547
1544
|
return routeMatch.routeLoaderData;
|
|
1548
1545
|
} catch (err) {
|
|
1549
|
-
|
|
1550
|
-
return routeMatch.__.loadPromise;
|
|
1551
|
-
}
|
|
1546
|
+
await checkLatest();
|
|
1552
1547
|
|
|
1553
1548
|
if (process.env.NODE_ENV !== 'production') {
|
|
1554
1549
|
console.error(err);
|
|
@@ -1561,29 +1556,23 @@ function createRouteMatch(router, route, opts) {
|
|
|
1561
1556
|
}
|
|
1562
1557
|
});
|
|
1563
1558
|
|
|
1564
|
-
|
|
1565
|
-
await
|
|
1566
|
-
|
|
1567
|
-
if (id !== routeMatch.__.latestId) {
|
|
1568
|
-
return routeMatch.__.loadPromise;
|
|
1569
|
-
}
|
|
1570
|
-
} finally {
|
|
1571
|
-
if (id !== routeMatch.__.latestId) {
|
|
1572
|
-
return routeMatch.__.loadPromise;
|
|
1573
|
-
}
|
|
1574
|
-
|
|
1559
|
+
const after = async () => {
|
|
1560
|
+
await checkLatest();
|
|
1575
1561
|
routeMatch.isFetching = false;
|
|
1562
|
+
delete routeMatch.__.loadPromise;
|
|
1576
1563
|
|
|
1577
1564
|
routeMatch.__.notify();
|
|
1565
|
+
};
|
|
1566
|
+
|
|
1567
|
+
try {
|
|
1568
|
+
await Promise.all([routeMatch.__.componentsPromise, routeMatch.__.dataPromise.catch(() => {})]);
|
|
1569
|
+
after();
|
|
1570
|
+
} catch (_unused) {
|
|
1571
|
+
after();
|
|
1578
1572
|
}
|
|
1579
1573
|
});
|
|
1580
1574
|
await routeMatch.__.loadPromise;
|
|
1581
|
-
|
|
1582
|
-
if (id !== routeMatch.__.latestId) {
|
|
1583
|
-
return routeMatch.__.loadPromise;
|
|
1584
|
-
}
|
|
1585
|
-
|
|
1586
|
-
delete routeMatch.__.loadPromise;
|
|
1575
|
+
await checkLatest();
|
|
1587
1576
|
}
|
|
1588
1577
|
});
|
|
1589
1578
|
|
|
@@ -1677,6 +1666,8 @@ function createRouter(userOptions) {
|
|
|
1677
1666
|
});
|
|
1678
1667
|
|
|
1679
1668
|
let router = {
|
|
1669
|
+
types: undefined,
|
|
1670
|
+
// public api
|
|
1680
1671
|
history,
|
|
1681
1672
|
options: originalOptions,
|
|
1682
1673
|
listeners: [],
|
|
@@ -1685,7 +1676,6 @@ function createRouter(userOptions) {
|
|
|
1685
1676
|
routeTree: undefined,
|
|
1686
1677
|
routesById: {},
|
|
1687
1678
|
location: undefined,
|
|
1688
|
-
allRouteInfo: undefined,
|
|
1689
1679
|
//
|
|
1690
1680
|
navigationPromise: Promise.resolve(),
|
|
1691
1681
|
resolveNavigation: () => {},
|
|
@@ -2068,6 +2058,11 @@ function createRouter(userOptions) {
|
|
|
2068
2058
|
match.__.validate();
|
|
2069
2059
|
|
|
2070
2060
|
match.load(loaderOpts);
|
|
2061
|
+
const search = match.search;
|
|
2062
|
+
|
|
2063
|
+
if (search.__data && search.__data.matchId !== match.matchId) {
|
|
2064
|
+
return;
|
|
2065
|
+
}
|
|
2071
2066
|
|
|
2072
2067
|
if (match.__.loadPromise) {
|
|
2073
2068
|
// Wait for the first sign of activity from the match
|
|
@@ -2077,6 +2072,37 @@ function createRouter(userOptions) {
|
|
|
2077
2072
|
router.notify();
|
|
2078
2073
|
await Promise.all(matchPromises);
|
|
2079
2074
|
},
|
|
2075
|
+
loadMatchData: async routeMatch => {
|
|
2076
|
+
if (isServer || !router.options.useServerData) {
|
|
2077
|
+
var _await$routeMatch$opt;
|
|
2078
|
+
|
|
2079
|
+
return (_await$routeMatch$opt = await (routeMatch.options.loader == null ? void 0 : routeMatch.options.loader({
|
|
2080
|
+
// parentLoaderPromise: routeMatch.parentMatch?.__.dataPromise,
|
|
2081
|
+
params: routeMatch.params,
|
|
2082
|
+
search: routeMatch.routeSearch,
|
|
2083
|
+
signal: routeMatch.__.abortController.signal
|
|
2084
|
+
}))) != null ? _await$routeMatch$opt : {};
|
|
2085
|
+
} else {
|
|
2086
|
+
const next = router.buildNext({
|
|
2087
|
+
to: '.',
|
|
2088
|
+
search: d => _extends({}, d != null ? d : {}, {
|
|
2089
|
+
__data: {
|
|
2090
|
+
matchId: routeMatch.matchId
|
|
2091
|
+
}
|
|
2092
|
+
})
|
|
2093
|
+
});
|
|
2094
|
+
const res = await fetch(next.href, {
|
|
2095
|
+
method: 'GET' // signal: routeMatch.__.abortController.signal,
|
|
2096
|
+
|
|
2097
|
+
});
|
|
2098
|
+
|
|
2099
|
+
if (res.ok) {
|
|
2100
|
+
return res.json();
|
|
2101
|
+
}
|
|
2102
|
+
|
|
2103
|
+
throw new Error('Failed to fetch match data');
|
|
2104
|
+
}
|
|
2105
|
+
},
|
|
2080
2106
|
invalidateRoute: opts => {
|
|
2081
2107
|
var _router$state$pending5, _router$state$pending6;
|
|
2082
2108
|
|