@tanstack/react-router 1.7.1 → 1.8.1
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/dist/cjs/CatchBoundary.cjs +106 -0
- package/dist/cjs/CatchBoundary.cjs.map +1 -0
- package/dist/cjs/Matches.cjs +278 -0
- package/dist/cjs/Matches.cjs.map +1 -0
- package/dist/cjs/Matches.d.cts +71 -0
- package/{build/cjs/RouterProvider.js → dist/cjs/RouterProvider.cjs} +55 -58
- package/dist/cjs/RouterProvider.cjs.map +1 -0
- package/dist/cjs/RouterProvider.d.cts +29 -0
- package/dist/cjs/awaited.cjs +51 -0
- package/dist/cjs/awaited.cjs.map +1 -0
- package/dist/cjs/defer.cjs +30 -0
- package/dist/cjs/defer.cjs.map +1 -0
- package/dist/cjs/fileRoute.cjs +19 -0
- package/dist/cjs/fileRoute.cjs.map +1 -0
- package/dist/cjs/history.d.cts +7 -0
- package/{build/cjs/index.js → dist/cjs/index.cjs} +39 -51
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/lazyRouteComponent.cjs +40 -0
- package/dist/cjs/lazyRouteComponent.cjs.map +1 -0
- package/dist/cjs/link.cjs +196 -0
- package/dist/cjs/link.cjs.map +1 -0
- package/dist/cjs/link.d.cts +85 -0
- package/{build/cjs/path.js → dist/cjs/path.cjs} +87 -95
- package/dist/cjs/path.cjs.map +1 -0
- package/dist/cjs/path.d.cts +24 -0
- package/dist/cjs/qss.cjs +45 -0
- package/dist/cjs/qss.cjs.map +1 -0
- package/dist/cjs/redirects.cjs +15 -0
- package/dist/cjs/redirects.cjs.map +1 -0
- package/dist/cjs/route.cjs +143 -0
- package/dist/cjs/route.cjs.map +1 -0
- package/dist/cjs/router.cjs +1089 -0
- package/dist/cjs/router.cjs.map +1 -0
- package/dist/cjs/routerContext.cjs +29 -0
- package/dist/cjs/routerContext.cjs.map +1 -0
- package/{build/cjs/scroll-restoration.js → dist/cjs/scroll-restoration.cjs} +58 -75
- package/dist/cjs/scroll-restoration.cjs.map +1 -0
- package/{build/cjs/searchParams.js → dist/cjs/searchParams.cjs} +18 -36
- package/dist/cjs/searchParams.cjs.map +1 -0
- package/dist/cjs/useBlocker.cjs +36 -0
- package/dist/cjs/useBlocker.cjs.map +1 -0
- package/dist/cjs/useNavigate.cjs +55 -0
- package/dist/cjs/useNavigate.cjs.map +1 -0
- package/dist/cjs/useParams.cjs +16 -0
- package/dist/cjs/useParams.cjs.map +1 -0
- package/dist/cjs/useRouteContext.cjs +11 -0
- package/dist/cjs/useRouteContext.cjs.map +1 -0
- package/dist/cjs/useRouter.cjs +33 -0
- package/dist/cjs/useRouter.cjs.map +1 -0
- package/dist/cjs/useRouterState.cjs +12 -0
- package/dist/cjs/useRouterState.cjs.map +1 -0
- package/dist/cjs/useSearch.cjs +13 -0
- package/dist/cjs/useSearch.cjs.map +1 -0
- package/{build/cjs/utils.js → dist/cjs/utils.cjs} +25 -116
- package/dist/cjs/utils.cjs.map +1 -0
- package/dist/cjs/utils.d.cts +50 -0
- package/dist/esm/CatchBoundary.d.ts +36 -0
- package/dist/esm/CatchBoundary.js +89 -0
- package/dist/esm/CatchBoundary.js.map +1 -0
- package/{build/types → dist/esm}/Matches.d.ts +3 -3
- package/dist/esm/Matches.js +261 -0
- package/dist/esm/Matches.js.map +1 -0
- package/{build/types → dist/esm}/RouterProvider.d.ts +3 -1
- package/dist/esm/RouterProvider.js +136 -0
- package/dist/esm/RouterProvider.js.map +1 -0
- package/dist/esm/awaited.d.ts +9 -0
- package/dist/esm/awaited.js +51 -0
- package/dist/esm/awaited.js.map +1 -0
- package/dist/esm/defer.d.ts +22 -0
- package/dist/esm/defer.js +30 -0
- package/{build/cjs → dist/esm}/defer.js.map +1 -1
- package/dist/esm/fileRoute.d.ts +21 -0
- package/dist/esm/fileRoute.js +19 -0
- package/dist/esm/fileRoute.js.map +1 -0
- package/{build/types → dist/esm}/history.d.ts +1 -1
- package/dist/esm/index.d.ts +30 -0
- package/dist/esm/index.js +118 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lazyRouteComponent.d.ts +2 -0
- package/dist/esm/lazyRouteComponent.js +23 -0
- package/{build/cjs → dist/esm}/lazyRouteComponent.js.map +1 -1
- package/{build/types → dist/esm}/link.d.ts +3 -1
- package/dist/esm/link.js +179 -0
- package/dist/esm/link.js.map +1 -0
- package/dist/esm/location.d.ts +12 -0
- package/{build/types → dist/esm}/path.d.ts +8 -1
- package/dist/esm/path.js +209 -0
- package/dist/esm/path.js.map +1 -0
- package/dist/esm/qss.d.ts +2 -0
- package/dist/esm/qss.js +45 -0
- package/dist/esm/qss.js.map +1 -0
- package/dist/esm/redirects.d.ts +11 -0
- package/dist/esm/redirects.js +15 -0
- package/{build/cjs → dist/esm}/redirects.js.map +1 -1
- package/dist/esm/route.d.ts +300 -0
- package/dist/esm/route.js +143 -0
- package/dist/esm/route.js.map +1 -0
- package/dist/esm/routeInfo.d.ts +31 -0
- package/dist/esm/router.d.ts +201 -0
- package/dist/esm/router.js +1089 -0
- package/dist/esm/router.js.map +1 -0
- package/dist/esm/routerContext.d.ts +3 -0
- package/dist/esm/routerContext.js +13 -0
- package/{build/cjs → dist/esm}/routerContext.js.map +1 -1
- package/dist/esm/scroll-restoration.d.ts +18 -0
- package/dist/esm/scroll-restoration.js +168 -0
- package/dist/esm/scroll-restoration.js.map +1 -0
- package/dist/esm/searchParams.d.ts +7 -0
- package/dist/esm/searchParams.js +63 -0
- package/{build/cjs → dist/esm}/searchParams.js.map +1 -1
- package/dist/esm/useBlocker.d.ts +9 -0
- package/dist/esm/useBlocker.js +19 -0
- package/{build/cjs → dist/esm}/useBlocker.js.map +1 -1
- package/dist/esm/useNavigate.d.ts +20 -0
- package/dist/esm/useNavigate.js +38 -0
- package/{build/cjs → dist/esm}/useNavigate.js.map +1 -1
- package/dist/esm/useParams.d.ts +7 -0
- package/dist/esm/useParams.js +16 -0
- package/{build/cjs → dist/esm}/useParams.js.map +1 -1
- package/dist/esm/useRouteContext.d.ts +7 -0
- package/dist/esm/useRouteContext.js +11 -0
- package/{build/cjs → dist/esm}/useRouteContext.js.map +1 -1
- package/dist/esm/useRouter.d.ts +5 -0
- package/dist/esm/useRouter.js +16 -0
- package/{build/cjs → dist/esm}/useRouter.js.map +1 -1
- package/dist/esm/useRouterState.d.ts +6 -0
- package/dist/esm/useRouterState.js +12 -0
- package/{build/cjs → dist/esm}/useRouterState.js.map +1 -1
- package/dist/esm/useSearch.d.ts +7 -0
- package/dist/esm/useSearch.js +13 -0
- package/dist/esm/useSearch.js.map +1 -0
- package/{build/types → dist/esm}/utils.d.ts +4 -0
- package/dist/esm/utils.js +137 -0
- package/dist/esm/utils.js.map +1 -0
- package/package.json +43 -22
- package/src/Matches.tsx +10 -6
- package/src/RouterProvider.tsx +3 -1
- package/src/fileRoute.ts +4 -5
- package/src/link.tsx +5 -4
- package/src/path.ts +16 -5
- package/src/route.ts +5 -6
- package/src/router.ts +25 -8
- package/src/useSearch.tsx +5 -2
- package/src/utils.ts +9 -0
- package/build/cjs/CatchBoundary.js +0 -128
- package/build/cjs/CatchBoundary.js.map +0 -1
- package/build/cjs/Matches.js +0 -260
- package/build/cjs/Matches.js.map +0 -1
- package/build/cjs/RouterProvider.js.map +0 -1
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -29
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/cjs/awaited.js +0 -60
- package/build/cjs/awaited.js.map +0 -1
- package/build/cjs/defer.js +0 -42
- package/build/cjs/fileRoute.js +0 -31
- package/build/cjs/fileRoute.js.map +0 -1
- package/build/cjs/index.js.map +0 -1
- package/build/cjs/lazyRouteComponent.js +0 -54
- package/build/cjs/link.js +0 -224
- package/build/cjs/link.js.map +0 -1
- package/build/cjs/path.js.map +0 -1
- package/build/cjs/qss.js +0 -63
- package/build/cjs/qss.js.map +0 -1
- package/build/cjs/redirects.js +0 -28
- package/build/cjs/route.js +0 -292
- package/build/cjs/route.js.map +0 -1
- package/build/cjs/router.js +0 -1116
- package/build/cjs/router.js.map +0 -1
- package/build/cjs/routerContext.js +0 -42
- package/build/cjs/scroll-restoration.js.map +0 -1
- package/build/cjs/useBlocker.js +0 -55
- package/build/cjs/useNavigate.js +0 -88
- package/build/cjs/useParams.js +0 -27
- package/build/cjs/useRouteContext.js +0 -23
- package/build/cjs/useRouter.js +0 -44
- package/build/cjs/useRouterState.js +0 -24
- package/build/cjs/useSearch.js +0 -25
- package/build/cjs/useSearch.js.map +0 -1
- package/build/cjs/utils.js.map +0 -1
- package/build/esm/index.js +0 -2874
- package/build/esm/index.js.map +0 -1
- package/build/stats-html.html +0 -4838
- package/build/stats-react.json +0 -1471
- package/build/umd/index.development.js +0 -3573
- package/build/umd/index.development.js.map +0 -1
- package/build/umd/index.production.js +0 -22
- package/build/umd/index.production.js.map +0 -1
- /package/{build/types/CatchBoundary.d.ts → dist/cjs/CatchBoundary.d.cts} +0 -0
- /package/{build/types/awaited.d.ts → dist/cjs/awaited.d.cts} +0 -0
- /package/{build/types/defer.d.ts → dist/cjs/defer.d.cts} +0 -0
- /package/{build/types/fileRoute.d.ts → dist/cjs/fileRoute.d.cts} +0 -0
- /package/{build/types/index.d.ts → dist/cjs/index.d.cts} +0 -0
- /package/{build/types/lazyRouteComponent.d.ts → dist/cjs/lazyRouteComponent.d.cts} +0 -0
- /package/{build/types/location.d.ts → dist/cjs/location.d.cts} +0 -0
- /package/{build/types/qss.d.ts → dist/cjs/qss.d.cts} +0 -0
- /package/{build/types/redirects.d.ts → dist/cjs/redirects.d.cts} +0 -0
- /package/{build/types/route.d.ts → dist/cjs/route.d.cts} +0 -0
- /package/{build/types/routeInfo.d.ts → dist/cjs/routeInfo.d.cts} +0 -0
- /package/{build/types/router.d.ts → dist/cjs/router.d.cts} +0 -0
- /package/{build/types/routerContext.d.ts → dist/cjs/routerContext.d.cts} +0 -0
- /package/{build/types/scroll-restoration.d.ts → dist/cjs/scroll-restoration.d.cts} +0 -0
- /package/{build/types/searchParams.d.ts → dist/cjs/searchParams.d.cts} +0 -0
- /package/{build/types/useBlocker.d.ts → dist/cjs/useBlocker.d.cts} +0 -0
- /package/{build/types/useNavigate.d.ts → dist/cjs/useNavigate.d.cts} +0 -0
- /package/{build/types/useParams.d.ts → dist/cjs/useParams.d.cts} +0 -0
- /package/{build/types/useRouteContext.d.ts → dist/cjs/useRouteContext.d.cts} +0 -0
- /package/{build/types/useRouter.d.ts → dist/cjs/useRouter.d.cts} +0 -0
- /package/{build/types/useRouterState.d.ts → dist/cjs/useRouterState.d.cts} +0 -0
- /package/{build/types/useSearch.d.ts → dist/cjs/useSearch.d.cts} +0 -0
|
@@ -1,63 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
'use strict';
|
|
12
|
-
|
|
13
|
-
var React = require('react');
|
|
14
|
-
var Matches = require('./Matches.js');
|
|
15
|
-
var utils = require('./utils.js');
|
|
16
|
-
var useRouter = require('./useRouter.js');
|
|
17
|
-
var useRouterState = require('./useRouterState.js');
|
|
18
|
-
var routerContext = require('./routerContext.js');
|
|
19
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const Matches = require("./Matches.cjs");
|
|
6
|
+
const utils = require("./utils.cjs");
|
|
7
|
+
const useRouter = require("./useRouter.cjs");
|
|
8
|
+
const useRouterState = require("./useRouterState.cjs");
|
|
9
|
+
const routerContext = require("./routerContext.cjs");
|
|
20
10
|
function _interopNamespaceDefault(e) {
|
|
21
|
-
|
|
11
|
+
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
22
12
|
if (e) {
|
|
23
|
-
|
|
24
|
-
if (k !==
|
|
25
|
-
|
|
13
|
+
for (const k in e) {
|
|
14
|
+
if (k !== "default") {
|
|
15
|
+
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
26
16
|
Object.defineProperty(n, k, d.get ? d : {
|
|
27
17
|
enumerable: true,
|
|
28
|
-
get:
|
|
18
|
+
get: () => e[k]
|
|
29
19
|
});
|
|
30
20
|
}
|
|
31
|
-
}
|
|
21
|
+
}
|
|
32
22
|
}
|
|
33
23
|
n.default = e;
|
|
34
24
|
return Object.freeze(n);
|
|
35
25
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
...rest
|
|
45
|
-
}) {
|
|
46
|
-
// Allow the router to update options on the router instance
|
|
26
|
+
const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
|
|
27
|
+
const useTransition = React__namespace.useTransition || (() => [
|
|
28
|
+
false,
|
|
29
|
+
(cb) => {
|
|
30
|
+
cb();
|
|
31
|
+
}
|
|
32
|
+
]);
|
|
33
|
+
function RouterProvider({ router, ...rest }) {
|
|
47
34
|
router.update({
|
|
48
35
|
...router.options,
|
|
49
36
|
...rest,
|
|
50
37
|
context: {
|
|
51
38
|
...router.options.context,
|
|
52
|
-
...rest
|
|
39
|
+
...rest == null ? void 0 : rest.context
|
|
53
40
|
}
|
|
54
41
|
});
|
|
55
|
-
const matches = router.options.InnerWrap ?
|
|
56
|
-
const provider =
|
|
57
|
-
|
|
58
|
-
|
|
42
|
+
const matches = router.options.InnerWrap ? /* @__PURE__ */ jsxRuntime.jsx(router.options.InnerWrap, { children: /* @__PURE__ */ jsxRuntime.jsx(Matches.Matches, {}) }) : /* @__PURE__ */ jsxRuntime.jsx(Matches.Matches, {});
|
|
43
|
+
const provider = /* @__PURE__ */ jsxRuntime.jsxs(routerContext.routerContext.Provider, { value: router, children: [
|
|
44
|
+
matches,
|
|
45
|
+
/* @__PURE__ */ jsxRuntime.jsx(Transitioner, {})
|
|
46
|
+
] });
|
|
59
47
|
if (router.options.Wrap) {
|
|
60
|
-
return
|
|
48
|
+
return /* @__PURE__ */ jsxRuntime.jsx(router.options.Wrap, { children: provider });
|
|
61
49
|
}
|
|
62
50
|
return provider;
|
|
63
51
|
}
|
|
@@ -65,20 +53,20 @@ function Transitioner() {
|
|
|
65
53
|
const mountLoadCount = React__namespace.useRef(0);
|
|
66
54
|
const router = useRouter.useRouter();
|
|
67
55
|
const routerState = useRouterState.useRouterState({
|
|
68
|
-
select: s => utils.pick(s, [
|
|
56
|
+
select: (s) => utils.pick(s, ["isLoading", "location", "resolvedLocation", "isTransitioning"])
|
|
69
57
|
});
|
|
70
58
|
const [isTransitioning, startReactTransition] = useTransition();
|
|
71
59
|
router.startReactTransition = startReactTransition;
|
|
72
60
|
React__namespace.useEffect(() => {
|
|
73
61
|
if (isTransitioning) {
|
|
74
|
-
router.__store.setState(s => ({
|
|
62
|
+
router.__store.setState((s) => ({
|
|
75
63
|
...s,
|
|
76
64
|
isTransitioning
|
|
77
65
|
}));
|
|
78
66
|
}
|
|
79
67
|
}, [isTransitioning]);
|
|
80
68
|
const tryLoad = () => {
|
|
81
|
-
const apply = cb => {
|
|
69
|
+
const apply = (cb) => {
|
|
82
70
|
if (!routerState.isTransitioning) {
|
|
83
71
|
startReactTransition(() => cb());
|
|
84
72
|
} else {
|
|
@@ -107,38 +95,44 @@ function Transitioner() {
|
|
|
107
95
|
state: true
|
|
108
96
|
});
|
|
109
97
|
if (routerState.location.href !== nextLocation.href) {
|
|
110
|
-
router.commitLocation({
|
|
111
|
-
...nextLocation,
|
|
112
|
-
replace: true
|
|
113
|
-
});
|
|
98
|
+
router.commitLocation({ ...nextLocation, replace: true });
|
|
114
99
|
}
|
|
115
100
|
return () => {
|
|
116
101
|
unsub();
|
|
117
102
|
};
|
|
118
103
|
}, [router.history]);
|
|
119
104
|
utils.useLayoutEffect(() => {
|
|
105
|
+
var _a;
|
|
120
106
|
if (React__namespace.useTransition ? routerState.isTransitioning && !isTransitioning : !routerState.isLoading && routerState.resolvedLocation !== routerState.location) {
|
|
121
107
|
router.emit({
|
|
122
|
-
type:
|
|
108
|
+
type: "onResolved",
|
|
123
109
|
fromLocation: routerState.resolvedLocation,
|
|
124
110
|
toLocation: routerState.location,
|
|
125
|
-
pathChanged: routerState.location.href !== routerState.resolvedLocation
|
|
111
|
+
pathChanged: routerState.location.href !== ((_a = routerState.resolvedLocation) == null ? void 0 : _a.href)
|
|
126
112
|
});
|
|
127
113
|
if (document.querySelector) {
|
|
128
|
-
if (routerState.location.hash !==
|
|
129
|
-
const el = document.getElementById(
|
|
114
|
+
if (routerState.location.hash !== "") {
|
|
115
|
+
const el = document.getElementById(
|
|
116
|
+
routerState.location.hash
|
|
117
|
+
);
|
|
130
118
|
if (el) {
|
|
131
119
|
el.scrollIntoView();
|
|
132
120
|
}
|
|
133
121
|
}
|
|
134
122
|
}
|
|
135
|
-
router.__store.setState(s => ({
|
|
123
|
+
router.__store.setState((s) => ({
|
|
136
124
|
...s,
|
|
137
125
|
isTransitioning: false,
|
|
138
126
|
resolvedLocation: s.location
|
|
139
127
|
}));
|
|
140
128
|
}
|
|
141
|
-
}, [
|
|
129
|
+
}, [
|
|
130
|
+
routerState.isTransitioning,
|
|
131
|
+
isTransitioning,
|
|
132
|
+
routerState.isLoading,
|
|
133
|
+
routerState.resolvedLocation,
|
|
134
|
+
routerState.location
|
|
135
|
+
]);
|
|
142
136
|
utils.useLayoutEffect(() => {
|
|
143
137
|
if (!window.__TSR_DEHYDRATED__ && !mountLoadCount.current) {
|
|
144
138
|
mountLoadCount.current++;
|
|
@@ -148,9 +142,12 @@ function Transitioner() {
|
|
|
148
142
|
return null;
|
|
149
143
|
}
|
|
150
144
|
function getRouteMatch(state, id) {
|
|
151
|
-
return [
|
|
145
|
+
return [
|
|
146
|
+
...state.cachedMatches,
|
|
147
|
+
...state.pendingMatches ?? [],
|
|
148
|
+
...state.matches
|
|
149
|
+
].find((d) => d.id === id);
|
|
152
150
|
}
|
|
153
|
-
|
|
154
151
|
exports.RouterProvider = RouterProvider;
|
|
155
152
|
exports.getRouteMatch = getRouteMatch;
|
|
156
|
-
//# sourceMappingURL=RouterProvider.
|
|
153
|
+
//# sourceMappingURL=RouterProvider.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouterProvider.cjs","sources":["../../src/RouterProvider.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Matches } from './Matches'\nimport { NavigateOptions, ToOptions } from './link'\nimport { ParsedLocation } from './location'\nimport { AnyRoute } from './route'\nimport { RoutePaths } from './routeInfo'\nimport { RegisteredRouter, Router, RouterOptions, RouterState } from './router'\nimport { pick, useLayoutEffect } from './utils'\n\nimport { RouteMatch } from './Matches'\nimport { useRouter } from './useRouter'\nimport { useRouterState } from './useRouterState'\nimport { routerContext } from './routerContext'\n\nconst useTransition =\n React.useTransition ||\n (() => [\n false,\n (cb) => {\n cb()\n },\n ])\n\nexport interface CommitLocationOptions {\n replace?: boolean\n resetScroll?: boolean\n startTransition?: boolean\n}\n\nexport interface MatchLocation {\n to?: string | number | null\n fuzzy?: boolean\n caseSensitive?: boolean\n from?: string\n}\n\nexport type NavigateFn<TRouteTree extends AnyRoute> = <\n TFrom extends RoutePaths<TRouteTree> | string = string,\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> | string = TFrom,\n TMaskTo extends string = '',\n>(\n opts: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>,\n) => Promise<void>\n\nexport type BuildLocationFn<TRouteTree extends AnyRoute> = (\n opts: ToOptions<TRouteTree> & {\n leaveParams?: boolean\n },\n) => ParsedLocation\n\nexport type InjectedHtmlEntry = string | (() => Promise<string> | string)\n\nexport function RouterProvider<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TDehydrated extends Record<string, any> = Record<string, any>,\n>({ router, ...rest }: RouterProps<TRouteTree, TDehydrated>) {\n // Allow the router to update options on the router instance\n router.update({\n ...router.options,\n ...rest,\n context: {\n ...router.options.context,\n ...rest?.context,\n },\n } as any)\n\n const matches = router.options.InnerWrap ? (\n <router.options.InnerWrap>\n <Matches />\n </router.options.InnerWrap>\n ) : (\n <Matches />\n )\n\n const provider = (\n <routerContext.Provider value={router}>\n {matches}\n <Transitioner />\n </routerContext.Provider>\n )\n\n if (router.options.Wrap) {\n return <router.options.Wrap>{provider}</router.options.Wrap>\n }\n\n return provider\n}\n\nfunction Transitioner() {\n const mountLoadCount = React.useRef(0)\n const router = useRouter()\n const routerState = useRouterState({\n select: (s) =>\n pick(s, ['isLoading', 'location', 'resolvedLocation', 'isTransitioning']),\n })\n\n const [isTransitioning, startReactTransition] = useTransition()\n\n router.startReactTransition = startReactTransition\n\n React.useEffect(() => {\n if (isTransitioning) {\n router.__store.setState((s) => ({\n ...s,\n isTransitioning,\n }))\n }\n }, [isTransitioning])\n\n const tryLoad = () => {\n const apply = (cb: () => void) => {\n if (!routerState.isTransitioning) {\n startReactTransition(() => cb())\n } else {\n cb()\n }\n }\n\n apply(() => {\n try {\n router.load()\n } catch (err) {\n console.error(err)\n }\n })\n }\n\n useLayoutEffect(() => {\n const unsub = router.history.subscribe(() => {\n router.latestLocation = router.parseLocation(router.latestLocation)\n if (routerState.location !== router.latestLocation) {\n tryLoad()\n }\n })\n\n const nextLocation = router.buildLocation({\n search: true,\n params: true,\n hash: true,\n state: true,\n })\n\n if (routerState.location.href !== nextLocation.href) {\n router.commitLocation({ ...nextLocation, replace: true })\n }\n\n return () => {\n unsub()\n }\n }, [router.history])\n\n useLayoutEffect(() => {\n if (\n (React.useTransition as any)\n ? routerState.isTransitioning && !isTransitioning\n : true &&\n !routerState.isLoading &&\n routerState.resolvedLocation !== routerState.location\n ) {\n router.emit({\n type: 'onResolved',\n fromLocation: routerState.resolvedLocation,\n toLocation: routerState.location,\n pathChanged:\n routerState.location!.href !== routerState.resolvedLocation?.href,\n })\n\n if ((document as any).querySelector) {\n if (routerState.location.hash !== '') {\n const el = document.getElementById(\n routerState.location.hash,\n ) as HTMLElement | null\n if (el) {\n el.scrollIntoView()\n }\n }\n }\n\n router.__store.setState((s) => ({\n ...s,\n isTransitioning: false,\n resolvedLocation: s.location,\n }))\n }\n }, [\n routerState.isTransitioning,\n isTransitioning,\n routerState.isLoading,\n routerState.resolvedLocation,\n routerState.location,\n ])\n\n useLayoutEffect(() => {\n if (!window.__TSR_DEHYDRATED__ && !mountLoadCount.current) {\n mountLoadCount.current++\n tryLoad()\n }\n }, [])\n\n return null\n}\n\nexport function getRouteMatch<TRouteTree extends AnyRoute>(\n state: RouterState<TRouteTree>,\n id: string,\n): undefined | RouteMatch<TRouteTree> {\n return [\n ...state.cachedMatches,\n ...(state.pendingMatches ?? []),\n ...state.matches,\n ].find((d) => d.id === id)\n}\n\nexport type RouterProps<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TDehydrated extends Record<string, any> = Record<string, any>,\n> = Omit<RouterOptions<TRouteTree, TDehydrated>, 'context'> & {\n router: Router<TRouteTree>\n context?: Partial<RouterOptions<TRouteTree, TDehydrated>['context']>\n}\n"],"names":["React","jsx","Matches","jsxs","routerContext","useRouter","useRouterState","pick","useLayoutEffect"],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { NavigateOptions, ToOptions } from './link';
|
|
3
|
+
import { ParsedLocation } from './location';
|
|
4
|
+
import { AnyRoute } from './route';
|
|
5
|
+
import { RoutePaths } from './routeInfo';
|
|
6
|
+
import { RegisteredRouter, Router, RouterOptions, RouterState } from './router';
|
|
7
|
+
import { RouteMatch } from './Matches';
|
|
8
|
+
export interface CommitLocationOptions {
|
|
9
|
+
replace?: boolean;
|
|
10
|
+
resetScroll?: boolean;
|
|
11
|
+
startTransition?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface MatchLocation {
|
|
14
|
+
to?: string | number | null;
|
|
15
|
+
fuzzy?: boolean;
|
|
16
|
+
caseSensitive?: boolean;
|
|
17
|
+
from?: string;
|
|
18
|
+
}
|
|
19
|
+
export type NavigateFn<TRouteTree extends AnyRoute> = <TFrom extends RoutePaths<TRouteTree> | string = string, TTo extends string = '', TMaskFrom extends RoutePaths<TRouteTree> | string = TFrom, TMaskTo extends string = ''>(opts: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>;
|
|
20
|
+
export type BuildLocationFn<TRouteTree extends AnyRoute> = (opts: ToOptions<TRouteTree> & {
|
|
21
|
+
leaveParams?: boolean;
|
|
22
|
+
}) => ParsedLocation;
|
|
23
|
+
export type InjectedHtmlEntry = string | (() => Promise<string> | string);
|
|
24
|
+
export declare function RouterProvider<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TDehydrated extends Record<string, any> = Record<string, any>>({ router, ...rest }: RouterProps<TRouteTree, TDehydrated>): React.JSX.Element;
|
|
25
|
+
export declare function getRouteMatch<TRouteTree extends AnyRoute>(state: RouterState<TRouteTree>, id: string): undefined | RouteMatch<TRouteTree>;
|
|
26
|
+
export type RouterProps<TRouteTree extends AnyRoute = RegisteredRouter['routeTree'], TDehydrated extends Record<string, any> = Record<string, any>> = Omit<RouterOptions<TRouteTree, TDehydrated>, 'context'> & {
|
|
27
|
+
router: Router<TRouteTree>;
|
|
28
|
+
context?: Partial<RouterOptions<TRouteTree, TDehydrated>['context']>;
|
|
29
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const warning = require("tiny-warning");
|
|
4
|
+
const Matches = require("./Matches.cjs");
|
|
5
|
+
const useRouter = require("./useRouter.cjs");
|
|
6
|
+
const defer = require("./defer.cjs");
|
|
7
|
+
const router = require("./router.cjs");
|
|
8
|
+
function useAwaited({ promise }) {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
const router$1 = useRouter.useRouter();
|
|
11
|
+
let state = promise.__deferredState;
|
|
12
|
+
const key = `__TSR__DEFERRED__${state.uid}`;
|
|
13
|
+
if (defer.isDehydratedDeferred(promise)) {
|
|
14
|
+
state = router$1.hydrateData(key);
|
|
15
|
+
if (!state)
|
|
16
|
+
throw new Error("Could not find dehydrated data");
|
|
17
|
+
promise = Promise.resolve(state.data);
|
|
18
|
+
promise.__deferredState = state;
|
|
19
|
+
}
|
|
20
|
+
if (state.status === "pending") {
|
|
21
|
+
throw promise;
|
|
22
|
+
}
|
|
23
|
+
if (state.status === "error") {
|
|
24
|
+
if (typeof document !== "undefined") {
|
|
25
|
+
if (Matches.isServerSideError(state.error)) {
|
|
26
|
+
throw (((_a = router$1.options.errorSerializer) == null ? void 0 : _a.deserialize) ?? Matches.defaultDeserializeError)(state.error.data);
|
|
27
|
+
} else {
|
|
28
|
+
warning(
|
|
29
|
+
false,
|
|
30
|
+
"Encountered a server-side error that doesn't fit the expected shape"
|
|
31
|
+
);
|
|
32
|
+
throw state.error;
|
|
33
|
+
}
|
|
34
|
+
} else {
|
|
35
|
+
router$1.dehydrateData(key, state);
|
|
36
|
+
throw {
|
|
37
|
+
data: (((_b = router$1.options.errorSerializer) == null ? void 0 : _b.serialize) ?? router.defaultSerializeError)(state.error),
|
|
38
|
+
__isServerError: true
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
router$1.dehydrateData(key, state);
|
|
43
|
+
return [state.data];
|
|
44
|
+
}
|
|
45
|
+
function Await(props) {
|
|
46
|
+
const awaited = useAwaited(props);
|
|
47
|
+
return props.children(...awaited);
|
|
48
|
+
}
|
|
49
|
+
exports.Await = Await;
|
|
50
|
+
exports.useAwaited = useAwaited;
|
|
51
|
+
//# sourceMappingURL=awaited.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awaited.cjs","sources":["../../src/awaited.tsx"],"sourcesContent":["import warning from 'tiny-warning'\nimport { defaultDeserializeError, isServerSideError } from './Matches'\nimport { useRouter } from './useRouter'\nimport { DeferredPromise, isDehydratedDeferred } from './defer'\nimport { defaultSerializeError } from './router'\n\nexport type AwaitOptions<T> = {\n promise: DeferredPromise<T>\n}\n\nexport function useAwaited<T>({ promise }: AwaitOptions<T>): [T] {\n const router = useRouter()\n\n let state = promise.__deferredState\n const key = `__TSR__DEFERRED__${state.uid}`\n\n if (isDehydratedDeferred(promise)) {\n state = router.hydrateData(key)!\n if (!state) throw new Error('Could not find dehydrated data')\n promise = Promise.resolve(state.data) as DeferredPromise<any>\n promise.__deferredState = state\n }\n\n if (state.status === 'pending') {\n throw promise\n }\n\n if (state.status === 'error') {\n if (typeof document !== 'undefined') {\n if (isServerSideError(state.error)) {\n throw (\n router.options.errorSerializer?.deserialize ?? defaultDeserializeError\n )(state.error.data as any)\n } else {\n warning(\n false,\n \"Encountered a server-side error that doesn't fit the expected shape\",\n )\n throw state.error\n }\n } else {\n router.dehydrateData(key, state)\n throw {\n data: (\n router.options.errorSerializer?.serialize ?? defaultSerializeError\n )(state.error),\n __isServerError: true,\n }\n }\n }\n\n router.dehydrateData(key, state)\n\n return [state.data]\n}\n\nexport function Await<T>(\n props: AwaitOptions<T> & {\n children: (result: T) => JSX.Element\n },\n) {\n const awaited = useAwaited(props)\n return props.children(...awaited)\n}\n"],"names":["router","useRouter","isDehydratedDeferred","isServerSideError","defaultDeserializeError","defaultSerializeError"],"mappings":";;;;;;;AAUgB,SAAA,WAAc,EAAE,WAAiC;;AAC/D,QAAMA,WAASC,UAAAA;AAEf,MAAI,QAAQ,QAAQ;AACd,QAAA,MAAM,oBAAoB,MAAM,GAAG;AAErC,MAAAC,MAAAA,qBAAqB,OAAO,GAAG;AACzB,YAAAF,SAAO,YAAY,GAAG;AAC9B,QAAI,CAAC;AAAa,YAAA,IAAI,MAAM,gCAAgC;AAClD,cAAA,QAAQ,QAAQ,MAAM,IAAI;AACpC,YAAQ,kBAAkB;AAAA,EAC5B;AAEI,MAAA,MAAM,WAAW,WAAW;AACxB,UAAA;AAAA,EACR;AAEI,MAAA,MAAM,WAAW,SAAS;AACxB,QAAA,OAAO,aAAa,aAAa;AAC/B,UAAAG,QAAA,kBAAkB,MAAM,KAAK,GAAG;AAClC,iBACEH,cAAO,QAAQ,oBAAfA,mBAAgC,gBAAeI,QAAAA,yBAC/C,MAAM,MAAM,IAAW;AAAA,MAAA,OACpB;AACL;AAAA,UACE;AAAA,UACA;AAAA,QAAA;AAEF,cAAM,MAAM;AAAA,MACd;AAAA,IAAA,OACK;AACEJ,eAAA,cAAc,KAAK,KAAK;AACzB,YAAA;AAAA,QACJ,SACEA,cAAO,QAAQ,oBAAfA,mBAAgC,cAAaK,OAAA,uBAC7C,MAAM,KAAK;AAAA,QACb,iBAAiB;AAAA,MAAA;AAAA,IAErB;AAAA,EACF;AAEOL,WAAA,cAAc,KAAK,KAAK;AAExB,SAAA,CAAC,MAAM,IAAI;AACpB;AAEO,SAAS,MACd,OAGA;AACM,QAAA,UAAU,WAAW,KAAK;AACzB,SAAA,MAAM,SAAS,GAAG,OAAO;AAClC;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const router = require("./router.cjs");
|
|
4
|
+
function defer(_promise, options) {
|
|
5
|
+
const promise = _promise;
|
|
6
|
+
if (!promise.__deferredState) {
|
|
7
|
+
promise.__deferredState = {
|
|
8
|
+
uid: Math.random().toString(36).slice(2),
|
|
9
|
+
status: "pending"
|
|
10
|
+
};
|
|
11
|
+
const state = promise.__deferredState;
|
|
12
|
+
promise.then((data) => {
|
|
13
|
+
state.status = "success";
|
|
14
|
+
state.data = data;
|
|
15
|
+
}).catch((error) => {
|
|
16
|
+
state.status = "error";
|
|
17
|
+
state.error = {
|
|
18
|
+
data: ((options == null ? void 0 : options.serializeError) ?? router.defaultSerializeError)(error),
|
|
19
|
+
__isServerError: true
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return promise;
|
|
24
|
+
}
|
|
25
|
+
function isDehydratedDeferred(obj) {
|
|
26
|
+
return typeof obj === "object" && obj !== null && !(obj instanceof Promise) && !obj.then && "__deferredState" in obj;
|
|
27
|
+
}
|
|
28
|
+
exports.defer = defer;
|
|
29
|
+
exports.isDehydratedDeferred = isDehydratedDeferred;
|
|
30
|
+
//# sourceMappingURL=defer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defer.cjs","sources":["../../src/defer.ts"],"sourcesContent":["import { defaultSerializeError } from './router'\n\nexport type DeferredPromiseState<T> = { uid: string } & (\n | {\n status: 'pending'\n data?: T\n error?: unknown\n }\n | {\n status: 'success'\n data: T\n }\n | {\n status: 'error'\n data?: T\n error: unknown\n }\n)\n\nexport type DeferredPromise<T> = Promise<T> & {\n __deferredState: DeferredPromiseState<T>\n}\n\nexport function defer<T>(\n _promise: Promise<T>,\n options?: {\n serializeError?: typeof defaultSerializeError\n },\n) {\n const promise = _promise as DeferredPromise<T>\n\n if (!promise.__deferredState) {\n promise.__deferredState = {\n uid: Math.random().toString(36).slice(2),\n status: 'pending',\n }\n\n const state = promise.__deferredState\n\n promise\n .then((data) => {\n state.status = 'success' as any\n state.data = data\n })\n .catch((error) => {\n state.status = 'error' as any\n state.error = {\n data: (options?.serializeError ?? defaultSerializeError)(error),\n __isServerError: true,\n }\n })\n }\n\n return promise\n}\n\nexport function isDehydratedDeferred(obj: any): boolean {\n return (\n typeof obj === 'object' &&\n obj !== null &&\n !(obj instanceof Promise) &&\n !obj.then &&\n '__deferredState' in obj\n )\n}\n"],"names":["defaultSerializeError"],"mappings":";;;AAuBgB,SAAA,MACd,UACA,SAGA;AACA,QAAM,UAAU;AAEZ,MAAA,CAAC,QAAQ,iBAAiB;AAC5B,YAAQ,kBAAkB;AAAA,MACxB,KAAK,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC;AAAA,MACvC,QAAQ;AAAA,IAAA;AAGV,UAAM,QAAQ,QAAQ;AAGnB,YAAA,KAAK,CAAC,SAAS;AACd,YAAM,SAAS;AACf,YAAM,OAAO;AAAA,IAAA,CACd,EACA,MAAM,CAAC,UAAU;AAChB,YAAM,SAAS;AACf,YAAM,QAAQ;AAAA,QACZ,QAAO,mCAAS,mBAAkBA,OAAAA,uBAAuB,KAAK;AAAA,QAC9D,iBAAiB;AAAA,MAAA;AAAA,IACnB,CACD;AAAA,EACL;AAEO,SAAA;AACT;AAEO,SAAS,qBAAqB,KAAmB;AAEpD,SAAA,OAAO,QAAQ,YACf,QAAQ,QACR,EAAE,eAAe,YACjB,CAAC,IAAI,QACL,qBAAqB;AAEzB;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const route = require("./route.cjs");
|
|
4
|
+
class FileRoute {
|
|
5
|
+
constructor(path) {
|
|
6
|
+
this.path = path;
|
|
7
|
+
this.createRoute = (options) => {
|
|
8
|
+
const route$1 = new route.Route(options);
|
|
9
|
+
route$1.isRoot = false;
|
|
10
|
+
return route$1;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function FileRouteLoader(_path) {
|
|
15
|
+
return (loaderFn) => loaderFn;
|
|
16
|
+
}
|
|
17
|
+
exports.FileRoute = FileRoute;
|
|
18
|
+
exports.FileRouteLoader = FileRouteLoader;
|
|
19
|
+
//# sourceMappingURL=fileRoute.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileRoute.cjs","sources":["../../src/fileRoute.ts"],"sourcesContent":["import { NoInfer } from '@tanstack/react-store'\nimport { ParsePathParams } from './link'\nimport {\n AnyRoute,\n ResolveFullPath,\n ResolveFullSearchSchema,\n MergeFromFromParent,\n RouteContext,\n AnyContext,\n RouteOptions,\n UpdatableRouteOptions,\n Route,\n RootRouteId,\n TrimPathLeft,\n RouteConstraints,\n ResolveFullSearchSchemaInput,\n SearchSchemaInput,\n LoaderFnContext,\n RouteLoaderFn,\n} from './route'\nimport { Assign, Expand, IsAny } from './utils'\n\nexport interface FileRoutesByPath {\n // '/': {\n // parentRoute: typeof rootRoute\n // }\n}\n\ntype Replace<\n S extends string,\n From extends string,\n To extends string,\n> = S extends `${infer Start}${From}${infer Rest}`\n ? `${Start}${To}${Replace<Rest, From, To>}`\n : S\n\nexport type TrimLeft<\n T extends string,\n S extends string,\n> = T extends `${S}${infer U}` ? U : T\n\nexport type TrimRight<\n T extends string,\n S extends string,\n> = T extends `${infer U}${S}` ? U : T\n\nexport type Trim<T extends string, S extends string> = TrimLeft<\n TrimRight<T, S>,\n S\n>\n\nexport type RemoveUnderScores<T extends string> = Replace<\n Replace<TrimRight<TrimLeft<T, '/_'>, '_'>, '_/', '/'>,\n '/_',\n '/'\n>\n\ntype ReplaceFirstOccurrence<\n T extends string,\n Search extends string,\n Replacement extends string,\n> = T extends `${infer Prefix}${Search}${infer Suffix}`\n ? `${Prefix}${Replacement}${Suffix}`\n : T\n\nexport type ResolveFilePath<\n TParentRoute extends AnyRoute,\n TFilePath extends string,\n> = TParentRoute['id'] extends RootRouteId\n ? TrimPathLeft<TFilePath>\n : ReplaceFirstOccurrence<\n TrimPathLeft<TFilePath>,\n TrimPathLeft<TParentRoute['types']['customId']>,\n ''\n >\n\nexport type FileRoutePath<\n TParentRoute extends AnyRoute,\n TFilePath extends string,\n> = ResolveFilePath<TParentRoute, TFilePath> extends `_${infer _}`\n ? ''\n : ResolveFilePath<TParentRoute, TFilePath> extends `/_${infer _}`\n ? ''\n : ResolveFilePath<TParentRoute, TFilePath>\n\nexport class FileRoute<\n TFilePath extends keyof FileRoutesByPath,\n TParentRoute extends AnyRoute = FileRoutesByPath[TFilePath]['parentRoute'],\n TId extends RouteConstraints['TId'] = TFilePath,\n TPath extends RouteConstraints['TPath'] = FileRoutePath<\n TParentRoute,\n TFilePath\n >,\n TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n RemoveUnderScores<TPath>\n >,\n> {\n constructor(public path: TFilePath) {}\n\n createRoute = <\n TSearchSchemaInput extends RouteConstraints['TSearchSchema'] = {},\n TSearchSchema extends RouteConstraints['TSearchSchema'] = {},\n TSearchSchemaUsed extends Record<\n string,\n any\n > = TSearchSchemaInput extends SearchSchemaInput\n ? Omit<TSearchSchemaInput, keyof SearchSchemaInput>\n : TSearchSchema,\n TFullSearchSchemaInput extends\n RouteConstraints['TFullSearchSchema'] = ResolveFullSearchSchemaInput<\n TParentRoute,\n TSearchSchemaUsed\n >,\n TFullSearchSchema extends\n RouteConstraints['TFullSearchSchema'] = ResolveFullSearchSchema<\n TParentRoute,\n TSearchSchema\n >,\n TParams extends RouteConstraints['TParams'] = Expand<\n Record<ParsePathParams<TPath>, string>\n >,\n TAllParams extends RouteConstraints['TAllParams'] = MergeFromFromParent<\n TParentRoute['types']['allParams'],\n TParams\n >,\n TRouteContextReturn extends\n RouteConstraints['TRouteContext'] = RouteContext,\n TRouteContext extends RouteConstraints['TRouteContext'] = [\n TRouteContextReturn,\n ] extends [never]\n ? RouteContext\n : TRouteContextReturn,\n TAllContext extends Expand<\n Assign<IsAny<TParentRoute['types']['allContext'], {}>, TRouteContext>\n > = Expand<\n Assign<IsAny<TParentRoute['types']['allContext'], {}>, TRouteContext>\n >,\n TRouterContext extends RouteConstraints['TRouterContext'] = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderData extends any = unknown,\n TChildren extends RouteConstraints['TChildren'] = unknown,\n TRouteTree extends RouteConstraints['TRouteTree'] = AnyRoute,\n >(\n options?: Omit<\n RouteOptions<\n TParentRoute,\n string,\n TPath,\n TSearchSchemaInput,\n TSearchSchema,\n TSearchSchemaUsed,\n TFullSearchSchemaInput,\n TFullSearchSchema,\n TParams,\n TAllParams,\n TRouteContextReturn,\n TRouteContext,\n TRouterContext,\n TAllContext,\n TLoaderDeps,\n TLoaderData\n >,\n 'getParentRoute' | 'path' | 'id'\n > &\n UpdatableRouteOptions<TFullSearchSchema>,\n ): Route<\n TParentRoute,\n TPath,\n TFullPath,\n TFilePath,\n TId,\n TSearchSchemaInput,\n TSearchSchema,\n TSearchSchemaUsed,\n TFullSearchSchemaInput,\n TFullSearchSchema,\n TParams,\n TAllParams,\n TRouteContextReturn,\n TRouteContext,\n TAllContext,\n TRouterContext,\n TLoaderDeps,\n TLoaderData,\n TChildren,\n TRouteTree\n > => {\n const route = new Route(options as any)\n ;(route as any).isRoot = false\n return route as any\n }\n}\n\nexport function FileRouteLoader<\n TFilePath extends keyof FileRoutesByPath,\n TRoute extends FileRoutesByPath[TFilePath]['preLoaderRoute'],\n>(\n _path: TFilePath,\n): <TLoaderData extends any>(\n loaderFn: RouteLoaderFn<\n TRoute['types']['allParams'],\n TRoute['types']['loaderDeps'],\n TRoute['types']['allContext'],\n TRoute['types']['routeContext'],\n TLoaderData\n >,\n) => RouteLoaderFn<\n TRoute['types']['allParams'],\n TRoute['types']['loaderDeps'],\n TRoute['types']['allContext'],\n TRoute['types']['routeContext'],\n NoInfer<TLoaderData>\n> {\n return (loaderFn) => loaderFn\n}\n"],"names":["route","Route"],"mappings":";;;AAqFO,MAAM,UAYX;AAAA,EACA,YAAmB,MAAiB;AAAjB,SAAA,OAAA;AAEnB,SAAA,cAAc,CA4CZ,YA2CG;AACG,YAAAA,UAAQ,IAAIC,YAAM,OAAc;AACpCD,cAAc,SAAS;AAClB,aAAAA;AAAAA,IAAA;AAAA,EA5F4B;AA8FvC;AAEO,SAAS,gBAId,OAeA;AACA,SAAO,CAAC,aAAa;AACvB;;;"}
|
|
@@ -1,45 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var searchParams = require('./searchParams.js');
|
|
31
|
-
var useBlocker = require('./useBlocker.js');
|
|
32
|
-
var useNavigate = require('./useNavigate.js');
|
|
33
|
-
var useParams = require('./useParams.js');
|
|
34
|
-
var useSearch = require('./useSearch.js');
|
|
35
|
-
var routerContext = require('./routerContext.js');
|
|
36
|
-
var useRouteContext = require('./useRouteContext.js');
|
|
37
|
-
var useRouter = require('./useRouter.js');
|
|
38
|
-
var useRouterState = require('./useRouterState.js');
|
|
39
|
-
var utils = require('./utils.js');
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const history = require("@tanstack/history");
|
|
4
|
+
const invariant = require("tiny-invariant");
|
|
5
|
+
const warning = require("tiny-warning");
|
|
6
|
+
const awaited = require("./awaited.cjs");
|
|
7
|
+
const defer = require("./defer.cjs");
|
|
8
|
+
const CatchBoundary = require("./CatchBoundary.cjs");
|
|
9
|
+
const fileRoute = require("./fileRoute.cjs");
|
|
10
|
+
const lazyRouteComponent = require("./lazyRouteComponent.cjs");
|
|
11
|
+
const link = require("./link.cjs");
|
|
12
|
+
const Matches = require("./Matches.cjs");
|
|
13
|
+
const path = require("./path.cjs");
|
|
14
|
+
const qss = require("./qss.cjs");
|
|
15
|
+
const redirects = require("./redirects.cjs");
|
|
16
|
+
const route = require("./route.cjs");
|
|
17
|
+
const router = require("./router.cjs");
|
|
18
|
+
const RouterProvider = require("./RouterProvider.cjs");
|
|
19
|
+
const scrollRestoration = require("./scroll-restoration.cjs");
|
|
20
|
+
const searchParams = require("./searchParams.cjs");
|
|
21
|
+
const useBlocker = require("./useBlocker.cjs");
|
|
22
|
+
const useNavigate = require("./useNavigate.cjs");
|
|
23
|
+
const useParams = require("./useParams.cjs");
|
|
24
|
+
const useSearch = require("./useSearch.cjs");
|
|
25
|
+
const routerContext = require("./routerContext.cjs");
|
|
26
|
+
const useRouteContext = require("./useRouteContext.cjs");
|
|
27
|
+
const useRouter = require("./useRouter.cjs");
|
|
28
|
+
const useRouterState = require("./useRouterState.cjs");
|
|
29
|
+
const utils = require("./utils.cjs");
|
|
43
30
|
exports.invariant = invariant;
|
|
44
31
|
exports.warning = warning;
|
|
45
32
|
exports.Await = awaited.Await;
|
|
@@ -112,9 +99,9 @@ exports.Navigate = useNavigate.Navigate;
|
|
|
112
99
|
exports.useNavigate = useNavigate.useNavigate;
|
|
113
100
|
exports.useParams = useParams.useParams;
|
|
114
101
|
exports.useSearch = useSearch.useSearch;
|
|
115
|
-
Object.defineProperty(exports,
|
|
116
|
-
|
|
117
|
-
|
|
102
|
+
Object.defineProperty(exports, "routerContext", {
|
|
103
|
+
enumerable: true,
|
|
104
|
+
get: () => routerContext.routerContext
|
|
118
105
|
});
|
|
119
106
|
exports.useRouteContext = useRouteContext.useRouteContext;
|
|
120
107
|
exports.useRouter = useRouter.useRouter;
|
|
@@ -131,10 +118,11 @@ exports.replaceEqualDeep = utils.replaceEqualDeep;
|
|
|
131
118
|
exports.shallow = utils.shallow;
|
|
132
119
|
exports.useLayoutEffect = utils.useLayoutEffect;
|
|
133
120
|
exports.useStableCallback = utils.useStableCallback;
|
|
134
|
-
Object.keys(history).forEach(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
121
|
+
Object.keys(history).forEach((k) => {
|
|
122
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k))
|
|
123
|
+
Object.defineProperty(exports, k, {
|
|
124
|
+
enumerable: true,
|
|
125
|
+
get: () => history[k]
|
|
126
|
+
});
|
|
139
127
|
});
|
|
140
|
-
//# sourceMappingURL=index.
|
|
128
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const React = require("react");
|
|
4
|
+
function _interopNamespaceDefault(e) {
|
|
5
|
+
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
6
|
+
if (e) {
|
|
7
|
+
for (const k in e) {
|
|
8
|
+
if (k !== "default") {
|
|
9
|
+
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
10
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: () => e[k]
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
n.default = e;
|
|
18
|
+
return Object.freeze(n);
|
|
19
|
+
}
|
|
20
|
+
const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
|
|
21
|
+
function lazyRouteComponent(importer, exportName) {
|
|
22
|
+
let loadPromise;
|
|
23
|
+
const load = () => {
|
|
24
|
+
if (!loadPromise) {
|
|
25
|
+
loadPromise = importer();
|
|
26
|
+
}
|
|
27
|
+
return loadPromise;
|
|
28
|
+
};
|
|
29
|
+
const lazyComp = React__namespace.lazy(async () => {
|
|
30
|
+
const moduleExports = await load();
|
|
31
|
+
const comp = moduleExports[exportName ?? "default"];
|
|
32
|
+
return {
|
|
33
|
+
default: comp
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
lazyComp.preload = load;
|
|
37
|
+
return lazyComp;
|
|
38
|
+
}
|
|
39
|
+
exports.lazyRouteComponent = lazyRouteComponent;
|
|
40
|
+
//# sourceMappingURL=lazyRouteComponent.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazyRouteComponent.cjs","sources":["../../src/lazyRouteComponent.tsx"],"sourcesContent":["import * as React from 'react'\nimport { AsyncRouteComponent } from './route'\n\nexport function lazyRouteComponent<\n T extends Record<string, any>,\n TKey extends keyof T = 'default',\n>(\n importer: () => Promise<T>,\n exportName?: TKey,\n): T[TKey] extends (props: infer TProps) => any\n ? AsyncRouteComponent<TProps>\n : never {\n let loadPromise: Promise<any>\n\n const load = () => {\n if (!loadPromise) {\n loadPromise = importer()\n }\n\n return loadPromise\n }\n\n const lazyComp = React.lazy(async () => {\n const moduleExports = await load()\n const comp = moduleExports[exportName ?? 'default']\n return {\n default: comp,\n }\n })\n ;(lazyComp as any).preload = load\n\n return lazyComp as any\n}\n"],"names":["React"],"mappings":";;;;;;;;;;;;;;;;;;;;AAGgB,SAAA,mBAId,UACA,YAGQ;AACJ,MAAA;AAEJ,QAAM,OAAO,MAAM;AACjB,QAAI,CAAC,aAAa;AAChB,oBAAc,SAAS;AAAA,IACzB;AAEO,WAAA;AAAA,EAAA;AAGH,QAAA,WAAWA,iBAAM,KAAK,YAAY;AAChC,UAAA,gBAAgB,MAAM;AACtB,UAAA,OAAO,cAAc,cAAc,SAAS;AAC3C,WAAA;AAAA,MACL,SAAS;AAAA,IAAA;AAAA,EACX,CACD;AACC,WAAiB,UAAU;AAEtB,SAAA;AACT;;"}
|