@tanstack/router-core 0.0.1-beta.23 → 0.0.1-beta.24
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/route.js +1 -0
- package/build/cjs/packages/router-core/src/route.js.map +1 -1
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +128 -128
- package/build/types/index.d.ts +2 -1
- package/build/umd/index.development.js +1 -0
- 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/link.ts +3 -2
- package/src/route.ts +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sources":["../../../../../src/route.ts"],"sourcesContent":["import {\n CheckRelativePath,\n LinkInfo,\n LinkOptions,\n ResolveRelativePath,\n ToOptions,\n} from './link'\nimport { LoaderContext, RouteConfig, RouteOptions } from './routeConfig'\nimport {\n AnyAllRouteInfo,\n AnyRouteInfo,\n DefaultAllRouteInfo,\n RouteInfo,\n RouteInfoByPath,\n} from './routeInfo'\nimport {\n Action,\n ActionState,\n Loader,\n LoaderState,\n MatchRouteOptions,\n Router,\n} from './router'\nimport { NoInfer } from './utils'\n\nexport interface AnyRoute extends Route<any, any> {}\n\nexport interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n> {\n routeId: TRouteInfo['id']\n routeRouteId: TRouteInfo['routeId']\n routePath: TRouteInfo['path']\n fullPath: TRouteInfo['fullPath']\n parentRoute?: AnyRoute\n childRoutes?: AnyRoute[]\n options: RouteOptions\n router: Router<TAllRouteInfo['routeConfig'], TAllRouteInfo>\n buildLink: <TTo extends string = '.'>(\n options: Omit<\n LinkOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n 'from'\n >,\n ) => LinkInfo\n matchRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<TRouteInfo['id'], TTo>,\n >(\n matchLocation: CheckRelativePath<\n TAllRouteInfo,\n TRouteInfo['fullPath'],\n NoInfer<TTo>\n > &\n Omit<ToOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>, 'from'>,\n opts?: MatchRouteOptions,\n ) => RouteInfoByPath<TAllRouteInfo, TResolved>['allParams']\n navigate: <TTo extends string = '.'>(\n options: Omit<LinkOptions<TAllRouteInfo, TRouteInfo['id'], TTo>, 'from'>,\n ) => Promise<void>\n action: unknown extends TRouteInfo['actionResponse']\n ?\n | Action<TRouteInfo['actionPayload'], TRouteInfo['actionResponse']>\n | undefined\n : Action<TRouteInfo['actionPayload'], TRouteInfo['actionResponse']>\n loader: unknown extends TRouteInfo['routeLoaderData']\n ?\n | Action<\n LoaderContext<\n TRouteInfo['fullSearchSchema'],\n TRouteInfo['allParams']\n >,\n TRouteInfo['routeLoaderData']\n >\n | undefined\n : Loader<\n TRouteInfo['fullSearchSchema'],\n TRouteInfo['allParams'],\n TRouteInfo['routeLoaderData']\n >\n}\n\nexport function createRoute<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n>(\n routeConfig: RouteConfig,\n options: TRouteInfo['options'],\n parent: undefined | Route<TAllRouteInfo, any>,\n router: Router<TAllRouteInfo['routeConfig'], TAllRouteInfo>,\n): Route<TAllRouteInfo, TRouteInfo> {\n const { id, routeId, path: routePath, fullPath } = routeConfig\n\n const action =\n router.state.actions[id] ||\n (() => {\n router.state.actions[id] = {\n submissions: [],\n submit: async <T, U>(\n submission: T,\n actionOpts?: { invalidate?: boolean; multi?: boolean },\n ) => {\n if (!route) {\n return\n }\n\n const invalidate = actionOpts?.invalidate ?? true\n\n if (!actionOpts?.multi) {\n action.submissions = action.submissions.filter((d) => d.isMulti)\n }\n\n const actionState: ActionState<T, U> = {\n submittedAt: Date.now(),\n status: 'pending',\n submission,\n isMulti: !!actionOpts?.multi,\n }\n\n action.current = actionState\n action.latest = actionState\n action.submissions.push(actionState)\n\n router.notify()\n\n try {\n const res = await route.options.action?.(submission)\n actionState.data = res as U\n\n if (invalidate) {\n router.invalidateRoute({ to: '.', fromCurrent: true })\n await router.reload()\n }\n actionState.status = 'success'\n return res\n } catch (err) {\n console.error(err)\n actionState.error = err\n actionState.status = 'error'\n } finally {\n router.notify()\n }\n },\n }\n return router.state.actions[id]!\n })()\n\n const loader =\n router.state.loaders[id] ||\n (() => {\n router.state.loaders[id] = {\n pending: [],\n fetch: (async (loaderContext: LoaderContext<any, any>) => {\n if (!route) {\n return\n }\n\n const loaderState: LoaderState<any, any> = {\n loadedAt: Date.now(),\n loaderContext,\n }\n\n loader.current = loaderState\n loader.latest = loaderState\n loader.pending.push(loaderState)\n\n // router.state = {\n // ...router.state,\n // currentAction: loaderState,\n // latestAction: loaderState,\n // }\n\n router.notify()\n\n try {\n return await route.options.loader?.(loaderContext)\n } finally {\n loader.pending = loader.pending.filter((d) => d !== loaderState)\n // router.removeActionQueue.push({ loader, loaderState })\n router.notify()\n }\n }) as any,\n }\n return router.state.loaders[id]!\n })()\n\n let route: Route<TAllRouteInfo, TRouteInfo> = {\n routeId: id,\n routeRouteId: routeId,\n routePath,\n fullPath,\n options,\n router,\n childRoutes: undefined!,\n parentRoute: parent,\n action,\n loader: loader as any,\n\n buildLink: (options) => {\n return router.buildLink({\n ...options,\n from: fullPath,\n } as any) as any\n },\n\n navigate: (options) => {\n return router.navigate({\n ...options,\n from: fullPath,\n } as any) as any\n },\n\n matchRoute: (matchLocation, opts) => {\n return router.matchRoute(\n {\n ...matchLocation,\n from: fullPath,\n } as any,\n opts,\n )\n },\n }\n\n router.options.createRoute?.({ router, route })\n\n return route\n}\n"],"names":["createRoute","routeConfig","options","parent","router","id","routeId","path","routePath","fullPath","action","state","actions","submissions","submit","submission","actionOpts","route","invalidate","multi","filter","d","isMulti","actionState","submittedAt","Date","now","status","current","latest","push","notify","res","data","invalidateRoute","to","fromCurrent","reload","err","console","error","loader","loaders","pending","fetch","loaderContext","loaderState","loadedAt","routeRouteId","childRoutes","undefined","parentRoute","buildLink","_extends","from","navigate","matchRoute","matchLocation","opts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"route.js","sources":["../../../../../src/route.ts"],"sourcesContent":["import {\n CheckRelativePath,\n LinkInfo,\n LinkOptions,\n ResolveRelativePath,\n ToOptions,\n} from './link'\nimport { LoaderContext, RouteConfig, RouteOptions } from './routeConfig'\nimport {\n AnyAllRouteInfo,\n AnyRouteInfo,\n DefaultAllRouteInfo,\n RouteInfo,\n RouteInfoByPath,\n} from './routeInfo'\nimport {\n Action,\n ActionState,\n Loader,\n LoaderState,\n MatchRouteOptions,\n Router,\n} from './router'\nimport { NoInfer } from './utils'\n\nexport interface AnyRoute extends Route<any, any> {}\n\nexport interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n> {\n routeInfo: TRouteInfo\n routeId: TRouteInfo['id']\n routeRouteId: TRouteInfo['routeId']\n routePath: TRouteInfo['path']\n fullPath: TRouteInfo['fullPath']\n parentRoute?: AnyRoute\n childRoutes?: AnyRoute[]\n options: RouteOptions\n router: Router<TAllRouteInfo['routeConfig'], TAllRouteInfo>\n buildLink: <TTo extends string = '.'>(\n options: Omit<\n LinkOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n 'from'\n >,\n ) => LinkInfo\n matchRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<TRouteInfo['id'], TTo>,\n >(\n matchLocation: CheckRelativePath<\n TAllRouteInfo,\n TRouteInfo['fullPath'],\n NoInfer<TTo>\n > &\n Omit<ToOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>, 'from'>,\n opts?: MatchRouteOptions,\n ) => RouteInfoByPath<TAllRouteInfo, TResolved>['allParams']\n navigate: <TTo extends string = '.'>(\n options: Omit<\n LinkOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n 'from'\n >,\n ) => Promise<void>\n action: unknown extends TRouteInfo['actionResponse']\n ?\n | Action<TRouteInfo['actionPayload'], TRouteInfo['actionResponse']>\n | undefined\n : Action<TRouteInfo['actionPayload'], TRouteInfo['actionResponse']>\n loader: unknown extends TRouteInfo['routeLoaderData']\n ?\n | Action<\n LoaderContext<\n TRouteInfo['fullSearchSchema'],\n TRouteInfo['allParams']\n >,\n TRouteInfo['routeLoaderData']\n >\n | undefined\n : Loader<\n TRouteInfo['fullSearchSchema'],\n TRouteInfo['allParams'],\n TRouteInfo['routeLoaderData']\n >\n}\n\nexport function createRoute<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n>(\n routeConfig: RouteConfig,\n options: TRouteInfo['options'],\n parent: undefined | Route<TAllRouteInfo, any>,\n router: Router<TAllRouteInfo['routeConfig'], TAllRouteInfo>,\n): Route<TAllRouteInfo, TRouteInfo> {\n const { id, routeId, path: routePath, fullPath } = routeConfig\n\n const action =\n router.state.actions[id] ||\n (() => {\n router.state.actions[id] = {\n submissions: [],\n submit: async <T, U>(\n submission: T,\n actionOpts?: { invalidate?: boolean; multi?: boolean },\n ) => {\n if (!route) {\n return\n }\n\n const invalidate = actionOpts?.invalidate ?? true\n\n if (!actionOpts?.multi) {\n action.submissions = action.submissions.filter((d) => d.isMulti)\n }\n\n const actionState: ActionState<T, U> = {\n submittedAt: Date.now(),\n status: 'pending',\n submission,\n isMulti: !!actionOpts?.multi,\n }\n\n action.current = actionState\n action.latest = actionState\n action.submissions.push(actionState)\n\n router.notify()\n\n try {\n const res = await route.options.action?.(submission)\n actionState.data = res as U\n\n if (invalidate) {\n router.invalidateRoute({ to: '.', fromCurrent: true })\n await router.reload()\n }\n actionState.status = 'success'\n return res\n } catch (err) {\n console.error(err)\n actionState.error = err\n actionState.status = 'error'\n } finally {\n router.notify()\n }\n },\n }\n return router.state.actions[id]!\n })()\n\n const loader =\n router.state.loaders[id] ||\n (() => {\n router.state.loaders[id] = {\n pending: [],\n fetch: (async (loaderContext: LoaderContext<any, any>) => {\n if (!route) {\n return\n }\n\n const loaderState: LoaderState<any, any> = {\n loadedAt: Date.now(),\n loaderContext,\n }\n\n loader.current = loaderState\n loader.latest = loaderState\n loader.pending.push(loaderState)\n\n // router.state = {\n // ...router.state,\n // currentAction: loaderState,\n // latestAction: loaderState,\n // }\n\n router.notify()\n\n try {\n return await route.options.loader?.(loaderContext)\n } finally {\n loader.pending = loader.pending.filter((d) => d !== loaderState)\n // router.removeActionQueue.push({ loader, loaderState })\n router.notify()\n }\n }) as any,\n }\n return router.state.loaders[id]!\n })()\n\n let route: Route<TAllRouteInfo, TRouteInfo> = {\n routeInfo: undefined!,\n routeId: id,\n routeRouteId: routeId,\n routePath,\n fullPath,\n options,\n router,\n childRoutes: undefined!,\n parentRoute: parent,\n action,\n loader: loader as any,\n\n buildLink: (options) => {\n return router.buildLink({\n ...options,\n from: fullPath,\n } as any) as any\n },\n\n navigate: (options) => {\n return router.navigate({\n ...options,\n from: fullPath,\n } as any) as any\n },\n\n matchRoute: (matchLocation, opts) => {\n return router.matchRoute(\n {\n ...matchLocation,\n from: fullPath,\n } as any,\n opts,\n )\n },\n }\n\n router.options.createRoute?.({ router, route })\n\n return route\n}\n"],"names":["createRoute","routeConfig","options","parent","router","id","routeId","path","routePath","fullPath","action","state","actions","submissions","submit","submission","actionOpts","route","invalidate","multi","filter","d","isMulti","actionState","submittedAt","Date","now","status","current","latest","push","notify","res","data","invalidateRoute","to","fromCurrent","reload","err","console","error","loader","loaders","pending","fetch","loaderContext","loaderState","loadedAt","routeInfo","undefined","routeRouteId","childRoutes","parentRoute","buildLink","_extends","from","navigate","matchRoute","matchLocation","opts"],"mappings":"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"}
|