one 1.2.21 → 1.2.22-1765155190908
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/cli/build.cjs +11 -2
- package/dist/cjs/cli/build.js +10 -2
- package/dist/cjs/cli/build.js.map +1 -1
- package/dist/cjs/cli/build.native.js +44 -19
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.cjs +20 -4
- package/dist/cjs/cli/buildPage.js +21 -7
- package/dist/cjs/cli/buildPage.js.map +1 -1
- package/dist/cjs/cli/buildPage.native.js +38 -6
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/createApp.cjs +23 -16
- package/dist/cjs/createApp.js +73 -67
- package/dist/cjs/createApp.js.map +2 -2
- package/dist/cjs/fork/useLinking.cjs +2 -2
- package/dist/cjs/fork/useLinking.js +2 -2
- package/dist/cjs/fork/useLinking.js.map +1 -1
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +2 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/router/router.cjs +14 -11
- package/dist/cjs/router/router.js +18 -15
- package/dist/cjs/router/router.js.map +1 -1
- package/dist/cjs/router/router.native.js +15 -12
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/router/useViteRoutes.cjs +57 -17
- package/dist/cjs/router/useViteRoutes.js +55 -17
- package/dist/cjs/router/useViteRoutes.js.map +2 -2
- package/dist/cjs/router/useViteRoutes.native.js +76 -0
- package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
- package/dist/cjs/useLoader.cjs +39 -40
- package/dist/cjs/useLoader.js +10 -7
- package/dist/cjs/useLoader.js.map +1 -1
- package/dist/cjs/useLoader.native.js +54 -54
- package/dist/cjs/useLoader.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +12 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js +12 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +12 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/esm/cli/build.js +10 -2
- package/dist/esm/cli/build.js.map +1 -1
- package/dist/esm/cli/build.mjs +11 -2
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +44 -19
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli/buildPage.js +21 -7
- package/dist/esm/cli/buildPage.js.map +1 -1
- package/dist/esm/cli/buildPage.mjs +20 -4
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +38 -6
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/createApp.js +73 -66
- package/dist/esm/createApp.js.map +2 -2
- package/dist/esm/createApp.mjs +23 -16
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/fork/useLinking.js +2 -2
- package/dist/esm/fork/useLinking.js.map +1 -1
- package/dist/esm/fork/useLinking.mjs +2 -2
- package/dist/esm/fork/useLinking.mjs.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/router/router.js +18 -14
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs +14 -12
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +15 -13
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/router/useViteRoutes.js +55 -17
- package/dist/esm/router/useViteRoutes.js.map +1 -1
- package/dist/esm/router/useViteRoutes.mjs +54 -18
- package/dist/esm/router/useViteRoutes.mjs.map +1 -1
- package/dist/esm/router/useViteRoutes.native.js +73 -1
- package/dist/esm/router/useViteRoutes.native.js.map +1 -1
- package/dist/esm/useLoader.js +10 -8
- package/dist/esm/useLoader.js.map +1 -1
- package/dist/esm/useLoader.mjs +40 -41
- package/dist/esm/useLoader.mjs.map +1 -1
- package/dist/esm/useLoader.native.js +55 -55
- package/dist/esm/useLoader.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.js +12 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +12 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +12 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/package.json +10 -10
- package/src/cli/build.ts +26 -1
- package/src/cli/buildPage.ts +28 -5
- package/src/createApp.tsx +29 -21
- package/src/fork/useLinking.ts +10 -1
- package/src/index.ts +1 -0
- package/src/router/router.ts +33 -20
- package/src/router/useViteRoutes.tsx +127 -17
- package/src/types.ts +1 -0
- package/src/useLoader.ts +20 -12
- package/src/vite/plugins/virtualEntryPlugin.ts +12 -1
- package/src/vite/types.ts +2 -0
- package/types/cli/build.d.ts.map +1 -1
- package/types/cli/buildPage.d.ts +1 -1
- package/types/cli/buildPage.d.ts.map +1 -1
- package/types/createApp.d.ts.map +1 -1
- package/types/fork/useLinking.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/router/router.d.ts +3 -2
- package/types/router/router.d.ts.map +1 -1
- package/types/router/useViteRoutes.d.ts +11 -0
- package/types/router/useViteRoutes.d.ts.map +1 -1
- package/types/types.d.ts +1 -0
- package/types/types.d.ts.map +1 -1
- package/types/useLoader.d.ts.map +1 -1
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
- package/types/vite/types.d.ts +1 -0
- package/types/vite/types.d.ts.map +1 -1
|
@@ -2,6 +2,54 @@ let lastVersion = 0, context;
|
|
|
2
2
|
function useViteRoutes(routes, routerRoot, options, version) {
|
|
3
3
|
return version && version > lastVersion && (context = null, lastVersion = version), context || loadRoutes(routes, routerRoot, options), context;
|
|
4
4
|
}
|
|
5
|
+
let preloadedModules = {};
|
|
6
|
+
function registerPreloadedRoute(key, module) {
|
|
7
|
+
preloadedModules[key] = module;
|
|
8
|
+
}
|
|
9
|
+
function getPreloadedModule(key) {
|
|
10
|
+
return preloadedModules[key];
|
|
11
|
+
}
|
|
12
|
+
function getPreloadedModuleKeys() {
|
|
13
|
+
return Object.keys(preloadedModules);
|
|
14
|
+
}
|
|
15
|
+
function matchDynamicRoute(routePattern, actualPath) {
|
|
16
|
+
const routeSegments = routePattern.split("/"), pathSegments = actualPath.split("/");
|
|
17
|
+
if (routeSegments.some((s) => s.startsWith("[..."))) {
|
|
18
|
+
const catchAllIdx = routeSegments.findIndex((s) => s.startsWith("[..."));
|
|
19
|
+
for (let i = 0; i < catchAllIdx; i++)
|
|
20
|
+
if (routeSegments[i] && !routeSegments[i].startsWith("[") && routeSegments[i] !== pathSegments[i])
|
|
21
|
+
return !1;
|
|
22
|
+
return pathSegments.length >= catchAllIdx;
|
|
23
|
+
}
|
|
24
|
+
if (routeSegments.length !== pathSegments.length) return !1;
|
|
25
|
+
for (let i = 0; i < routeSegments.length; i++) {
|
|
26
|
+
const routeSeg = routeSegments[i], pathSeg = pathSegments[i];
|
|
27
|
+
if (!(routeSeg.startsWith("[") && routeSeg.endsWith("]")) && routeSeg !== pathSeg)
|
|
28
|
+
return !1;
|
|
29
|
+
}
|
|
30
|
+
return !0;
|
|
31
|
+
}
|
|
32
|
+
async function preloadRouteModules(href) {
|
|
33
|
+
const globbed = globalThis.__importMetaGlobbed;
|
|
34
|
+
if (!globbed) return;
|
|
35
|
+
const normalizedHref = href === "/" ? "" : href.replace(/^\//, "").replace(/\/$/, ""), promises = [];
|
|
36
|
+
for (const key of Object.keys(globbed)) {
|
|
37
|
+
let routePath = key.replace(/^\/[^/]+\//, "");
|
|
38
|
+
routePath = routePath.replace(/\([^)]+\)\//g, ""), routePath = routePath.replace(/\/_layout\.tsx$/, "").replace(/\/index(\+[a-z]+)?\.tsx$/, "").replace(/(\+[a-z]+)?\.tsx$/, ""), routePath = routePath.replace(/^\//, "");
|
|
39
|
+
const isStaticMatch = routePath === normalizedHref || // exact match
|
|
40
|
+
routePath.startsWith(normalizedHref + "/") || // child route
|
|
41
|
+
normalizedHref.startsWith(routePath + "/") || // parent layout
|
|
42
|
+
routePath === "" || // root layout
|
|
43
|
+
normalizedHref !== "" && routePath === normalizedHref.split("/")[0], isDynamicMatch = routePath.includes("[") && matchDynamicRoute(routePath, normalizedHref);
|
|
44
|
+
(isStaticMatch || isDynamicMatch) && typeof globbed[key] == "function" && promises.push(
|
|
45
|
+
globbed[key]().then((mod) => {
|
|
46
|
+
preloadedModules[key] = mod;
|
|
47
|
+
}).catch(() => {
|
|
48
|
+
})
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
await Promise.all(promises);
|
|
52
|
+
}
|
|
5
53
|
function loadRoutes(paths, routerRoot, options) {
|
|
6
54
|
return context || (globalThis.__importMetaGlobbed = paths, context = globbedRoutesToRouteContext(paths, routerRoot, options), context);
|
|
7
55
|
}
|
|
@@ -19,6 +67,9 @@ function globbedRoutesToRouteContext(paths, routerRoot, options) {
|
|
|
19
67
|
function resolve(id) {
|
|
20
68
|
if (clearTimeout(clears[id]), loadedRoutes[id])
|
|
21
69
|
return loadedRoutes[id];
|
|
70
|
+
const preloadKey = id.replace("./", `/${routerRoot}/`), preloaded = getPreloadedModule(preloadKey);
|
|
71
|
+
if (preloaded)
|
|
72
|
+
return loadedRoutes[id] = preloaded, preloaded;
|
|
22
73
|
if (typeof routesSync[id] != "function")
|
|
23
74
|
return routesSync[id];
|
|
24
75
|
throw promises[id] || (promises[id] = routesSync[id]().then((val) => (loadedRoutes[id] = val, delete promises[id], clears[id] = setTimeout(() => {
|
|
@@ -26,31 +77,18 @@ function globbedRoutesToRouteContext(paths, routerRoot, options) {
|
|
|
26
77
|
}, 500), val)).catch((err) => {
|
|
27
78
|
console.error("Error loading route", id, err, new Error().stack), loadedRoutes[id] = {
|
|
28
79
|
default: () => null
|
|
29
|
-
// <View
|
|
30
|
-
// style={{
|
|
31
|
-
// position: 'absolute',
|
|
32
|
-
// top: 0,
|
|
33
|
-
// left: 0,
|
|
34
|
-
// right: 0,
|
|
35
|
-
// bottom: 0,
|
|
36
|
-
// alignItems: 'center',
|
|
37
|
-
// justifyContent: 'center',
|
|
38
|
-
// backgroundColor: '#000',
|
|
39
|
-
// gap: 20,
|
|
40
|
-
// }}
|
|
41
|
-
// >
|
|
42
|
-
// <Text style={{ fontSize: 24, color: '#fff' }}>Error loading route</Text>
|
|
43
|
-
// <Text style={{ fontSize: 16, color: '#fff' }}>{id}</Text>
|
|
44
|
-
// <Text style={{ fontSize: 18, color: '#fff', maxWidth: 800 }}>{`${err}`}</Text>
|
|
45
|
-
// </View>
|
|
46
80
|
}, delete promises[id];
|
|
47
81
|
}), process.env.NODE_ENV === "development" && (promises[id].stack = new Error().stack)), promises[id];
|
|
48
82
|
}
|
|
49
83
|
return resolve.keys = () => moduleKeys, resolve.id = "", resolve.resolve = (id) => id, resolve;
|
|
50
84
|
}
|
|
51
85
|
export {
|
|
86
|
+
getPreloadedModule,
|
|
87
|
+
getPreloadedModuleKeys,
|
|
52
88
|
globbedRoutesToRouteContext,
|
|
53
89
|
loadRoutes,
|
|
90
|
+
preloadRouteModules,
|
|
91
|
+
registerPreloadedRoute,
|
|
54
92
|
useViteRoutes
|
|
55
93
|
};
|
|
56
94
|
//# sourceMappingURL=useViteRoutes.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/router/useViteRoutes.tsx"],
|
|
4
|
-
"mappings": "AAKA,IAAI,cAAc,GACd;AAGG,SAAS,cACd,QACA,YACA,SACA,SACA;AACA,SAAI,WAAW,UAAU,gBAEvB,UAAU,MACV,cAAc,UAGX,WACH,WAAW,QAAQ,YAAY,OAAO,GAGjC;AACT;AAEO,SAAS,WACd,OACA,YACA,SACA;AACA,SAAI,YACJ,WAAW,sBAAyB,OACpC,UAAU,4BAA4B,OAAO,YAAY,OAAO,GACzD;AACT;AAEO,SAAS,4BACd,OACA,YACA,SACkB;AAElB,QAAM,aAAa,CAAC,GACd,WAAW,CAAC,GACZ,eAAe,CAAC,GAChB,SAAS,CAAC;AAEhB,SAAO,KAAK,KAAK,EAAE,QAAQ,CAAC,SAAS;AACnC,QAAI,CAAC,MAAM,IAAI,GAAG;AAChB,cAAQ,MAAM,gCAAgC,IAAI,EAAE;AACpD;AAAA,IACF;AACA,UAAM,oBAAoB,MAAM,IAAI,GAC9B,sBAAsB,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,GAE1D,eAAe,oBAAoB,MAAM,CAAC,EAAE,QAAQ,cAAc,EAAE;AAC1E,IAAI,SAAS,aAAa,YAAY,MAAM,SAC1C,QAAQ,KAAK,aAAa,YAAY,EAAE,GAExC,aAAa,mBAAmB,IAAI,MAC3B,QAGT,WAAW,mBAAmB,IAAI;AAAA,EAEtC,CAAC;AAED,QAAM,aAAa,OAAO,KAAK,UAAU;AAEzC,WAAS,QAAQ,IAAY;AAG3B,QAFA,aAAa,OAAO,EAAE,CAAC,GAEnB,aAAa,EAAE;AACjB,aAAO,aAAa,EAAE;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,6 +3,56 @@ let lastVersion = 0,
|
|
|
3
3
|
function useViteRoutes(routes, routerRoot, options, version) {
|
|
4
4
|
return version && version > lastVersion && (context = null, lastVersion = version), context || loadRoutes(routes, routerRoot, options), context;
|
|
5
5
|
}
|
|
6
|
+
let preloadedModules = {};
|
|
7
|
+
function registerPreloadedRoute(key, module) {
|
|
8
|
+
preloadedModules[key] = module;
|
|
9
|
+
}
|
|
10
|
+
function getPreloadedModule(key) {
|
|
11
|
+
return preloadedModules[key];
|
|
12
|
+
}
|
|
13
|
+
function getPreloadedModuleKeys() {
|
|
14
|
+
return Object.keys(preloadedModules);
|
|
15
|
+
}
|
|
16
|
+
function matchDynamicRoute(routePattern, actualPath) {
|
|
17
|
+
const routeSegments = routePattern.split("/"),
|
|
18
|
+
pathSegments = actualPath.split("/");
|
|
19
|
+
if (routeSegments.some(s => s.startsWith("[..."))) {
|
|
20
|
+
const catchAllIdx = routeSegments.findIndex(s => s.startsWith("[..."));
|
|
21
|
+
for (let i = 0; i < catchAllIdx; i++) if (routeSegments[i] && !routeSegments[i].startsWith("[") && routeSegments[i] !== pathSegments[i]) return !1;
|
|
22
|
+
return pathSegments.length >= catchAllIdx;
|
|
23
|
+
}
|
|
24
|
+
if (routeSegments.length !== pathSegments.length) return !1;
|
|
25
|
+
for (let i = 0; i < routeSegments.length; i++) {
|
|
26
|
+
const routeSeg = routeSegments[i],
|
|
27
|
+
pathSeg = pathSegments[i];
|
|
28
|
+
if (!(routeSeg.startsWith("[") && routeSeg.endsWith("]")) && routeSeg !== pathSeg) return !1;
|
|
29
|
+
}
|
|
30
|
+
return !0;
|
|
31
|
+
}
|
|
32
|
+
async function preloadRouteModules(href) {
|
|
33
|
+
const globbed = globalThis.__importMetaGlobbed;
|
|
34
|
+
if (!globbed) return;
|
|
35
|
+
const normalizedHref = href === "/" ? "" : href.replace(/^\//, "").replace(/\/$/, ""),
|
|
36
|
+
promises = [];
|
|
37
|
+
for (const key of Object.keys(globbed)) {
|
|
38
|
+
let routePath = key.replace(/^\/[^/]+\//, "");
|
|
39
|
+
routePath = routePath.replace(/\([^)]+\)\//g, ""), routePath = routePath.replace(/\/_layout\.tsx$/, "").replace(/\/index(\+[a-z]+)?\.tsx$/, "").replace(/(\+[a-z]+)?\.tsx$/, ""), routePath = routePath.replace(/^\//, "");
|
|
40
|
+
const isStaticMatch = routePath === normalizedHref ||
|
|
41
|
+
// exact match
|
|
42
|
+
routePath.startsWith(normalizedHref + "/") ||
|
|
43
|
+
// child route
|
|
44
|
+
normalizedHref.startsWith(routePath + "/") ||
|
|
45
|
+
// parent layout
|
|
46
|
+
routePath === "" ||
|
|
47
|
+
// root layout
|
|
48
|
+
normalizedHref !== "" && routePath === normalizedHref.split("/")[0],
|
|
49
|
+
isDynamicMatch = routePath.includes("[") && matchDynamicRoute(routePath, normalizedHref);
|
|
50
|
+
(isStaticMatch || isDynamicMatch) && typeof globbed[key] == "function" && promises.push(globbed[key]().then(mod => {
|
|
51
|
+
preloadedModules[key] = mod;
|
|
52
|
+
}).catch(() => {}));
|
|
53
|
+
}
|
|
54
|
+
await Promise.all(promises);
|
|
55
|
+
}
|
|
6
56
|
function loadRoutes(paths, routerRoot, options) {
|
|
7
57
|
return context || (globalThis.__importMetaGlobbed = paths, context = globbedRoutesToRouteContext(paths, routerRoot, options), context);
|
|
8
58
|
}
|
|
@@ -24,33 +74,19 @@ function globbedRoutesToRouteContext(paths, routerRoot, options) {
|
|
|
24
74
|
const moduleKeys = Object.keys(routesSync);
|
|
25
75
|
function resolve(id) {
|
|
26
76
|
if (clearTimeout(clears[id]), loadedRoutes[id]) return loadedRoutes[id];
|
|
77
|
+
const preloadKey = id.replace("./", `/${routerRoot}/`),
|
|
78
|
+
preloaded = getPreloadedModule(preloadKey);
|
|
79
|
+
if (preloaded) return loadedRoutes[id] = preloaded, preloaded;
|
|
27
80
|
if (typeof routesSync[id] != "function") return routesSync[id];
|
|
28
81
|
throw promises[id] || (promises[id] = routesSync[id]().then(val => (loadedRoutes[id] = val, delete promises[id], clears[id] = setTimeout(() => {
|
|
29
82
|
delete loadedRoutes[id];
|
|
30
83
|
}, 500), val)).catch(err => {
|
|
31
84
|
console.error("Error loading route", id, err, new Error().stack), loadedRoutes[id] = {
|
|
32
85
|
default: () => null
|
|
33
|
-
// <View
|
|
34
|
-
// style={{
|
|
35
|
-
// position: 'absolute',
|
|
36
|
-
// top: 0,
|
|
37
|
-
// left: 0,
|
|
38
|
-
// right: 0,
|
|
39
|
-
// bottom: 0,
|
|
40
|
-
// alignItems: 'center',
|
|
41
|
-
// justifyContent: 'center',
|
|
42
|
-
// backgroundColor: '#000',
|
|
43
|
-
// gap: 20,
|
|
44
|
-
// }}
|
|
45
|
-
// >
|
|
46
|
-
// <Text style={{ fontSize: 24, color: '#fff' }}>Error loading route</Text>
|
|
47
|
-
// <Text style={{ fontSize: 16, color: '#fff' }}>{id}</Text>
|
|
48
|
-
// <Text style={{ fontSize: 18, color: '#fff', maxWidth: 800 }}>{`${err}`}</Text>
|
|
49
|
-
// </View>
|
|
50
86
|
}, delete promises[id];
|
|
51
87
|
}), process.env.NODE_ENV === "development" && (promises[id].stack = new Error().stack)), promises[id];
|
|
52
88
|
}
|
|
53
89
|
return resolve.keys = () => moduleKeys, resolve.id = "", resolve.resolve = id => id, resolve;
|
|
54
90
|
}
|
|
55
|
-
export { globbedRoutesToRouteContext, loadRoutes, useViteRoutes };
|
|
91
|
+
export { getPreloadedModule, getPreloadedModuleKeys, globbedRoutesToRouteContext, loadRoutes, preloadRouteModules, registerPreloadedRoute, useViteRoutes };
|
|
56
92
|
//# sourceMappingURL=useViteRoutes.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["lastVersion","context","useViteRoutes","routes","routerRoot","options","version","loadRoutes","
|
|
1
|
+
{"version":3,"names":["lastVersion","context","useViteRoutes","routes","routerRoot","options","version","loadRoutes","preloadedModules","registerPreloadedRoute","key","module","getPreloadedModule","getPreloadedModuleKeys","Object","keys","matchDynamicRoute","routePattern","actualPath","routeSegments","split","pathSegments","some","s","startsWith","catchAllIdx","findIndex","i","length","routeSeg","pathSeg","endsWith","preloadRouteModules","href","globbed","globalThis","__importMetaGlobbed","normalizedHref","replace","promises","routePath","isStaticMatch","isDynamicMatch","includes","push","then","mod","catch","Promise","all","paths","globbedRoutesToRouteContext","routesSync","loadedRoutes","clears","forEach","path","console","error","loadRouteFunction","pathWithoutRelative","originalPath","slice","routeModes","info","moduleKeys","resolve","id","clearTimeout","preloadKey","preloaded","val","setTimeout","err","Error","stack","default","process","env","NODE_ENV"],"sources":["../../../src/router/useViteRoutes.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,75 @@ var lastVersion = 0,
|
|
|
3
3
|
function useViteRoutes(routes, routerRoot, options, version) {
|
|
4
4
|
return version && version > lastVersion && (context = null, lastVersion = version), context || loadRoutes(routes, routerRoot, options), context;
|
|
5
5
|
}
|
|
6
|
+
var preloadedModules = {};
|
|
7
|
+
function registerPreloadedRoute(key, module) {
|
|
8
|
+
preloadedModules[key] = module;
|
|
9
|
+
}
|
|
10
|
+
function getPreloadedModule(key) {
|
|
11
|
+
return preloadedModules[key];
|
|
12
|
+
}
|
|
13
|
+
function getPreloadedModuleKeys() {
|
|
14
|
+
return Object.keys(preloadedModules);
|
|
15
|
+
}
|
|
16
|
+
function matchDynamicRoute(routePattern, actualPath) {
|
|
17
|
+
var routeSegments = routePattern.split("/"),
|
|
18
|
+
pathSegments = actualPath.split("/"),
|
|
19
|
+
hasCatchAll = routeSegments.some(function (s) {
|
|
20
|
+
return s.startsWith("[...");
|
|
21
|
+
});
|
|
22
|
+
if (hasCatchAll) {
|
|
23
|
+
for (var catchAllIdx = routeSegments.findIndex(function (s) {
|
|
24
|
+
return s.startsWith("[...");
|
|
25
|
+
}), i = 0; i < catchAllIdx; i++) if (routeSegments[i] && !routeSegments[i].startsWith("[") && routeSegments[i] !== pathSegments[i]) return !1;
|
|
26
|
+
return pathSegments.length >= catchAllIdx;
|
|
27
|
+
}
|
|
28
|
+
if (routeSegments.length !== pathSegments.length) return !1;
|
|
29
|
+
for (var i1 = 0; i1 < routeSegments.length; i1++) {
|
|
30
|
+
var routeSeg = routeSegments[i1],
|
|
31
|
+
pathSeg = pathSegments[i1];
|
|
32
|
+
if (!(routeSeg.startsWith("[") && routeSeg.endsWith("]")) && routeSeg !== pathSeg) return !1;
|
|
33
|
+
}
|
|
34
|
+
return !0;
|
|
35
|
+
}
|
|
36
|
+
async function preloadRouteModules(href) {
|
|
37
|
+
var globbed = globalThis.__importMetaGlobbed;
|
|
38
|
+
if (globbed) {
|
|
39
|
+
var normalizedHref = href === "/" ? "" : href.replace(/^\//, "").replace(/\/$/, ""),
|
|
40
|
+
promises = [],
|
|
41
|
+
_iteratorNormalCompletion = !0,
|
|
42
|
+
_didIteratorError = !1,
|
|
43
|
+
_iteratorError = void 0;
|
|
44
|
+
try {
|
|
45
|
+
for (var _loop = function () {
|
|
46
|
+
var key = _step.value,
|
|
47
|
+
routePath = key.replace(/^\/[^/]+\//, "");
|
|
48
|
+
routePath = routePath.replace(/\([^)]+\)\//g, ""), routePath = routePath.replace(/\/_layout\.tsx$/, "").replace(/\/index(\+[a-z]+)?\.tsx$/, "").replace(/(\+[a-z]+)?\.tsx$/, ""), routePath = routePath.replace(/^\//, "");
|
|
49
|
+
var isStaticMatch = routePath === normalizedHref ||
|
|
50
|
+
// exact match
|
|
51
|
+
routePath.startsWith(normalizedHref + "/") ||
|
|
52
|
+
// child route
|
|
53
|
+
normalizedHref.startsWith(routePath + "/") ||
|
|
54
|
+
// parent layout
|
|
55
|
+
routePath === "" ||
|
|
56
|
+
// root layout
|
|
57
|
+
normalizedHref !== "" && routePath === normalizedHref.split("/")[0],
|
|
58
|
+
isDynamicMatch = routePath.includes("[") && matchDynamicRoute(routePath, normalizedHref);
|
|
59
|
+
(isStaticMatch || isDynamicMatch) && typeof globbed[key] == "function" && promises.push(globbed[key]().then(function (mod) {
|
|
60
|
+
preloadedModules[key] = mod;
|
|
61
|
+
}).catch(function () {}));
|
|
62
|
+
}, _iterator = Object.keys(globbed)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) _loop();
|
|
63
|
+
} catch (err) {
|
|
64
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
65
|
+
} finally {
|
|
66
|
+
try {
|
|
67
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
68
|
+
} finally {
|
|
69
|
+
if (_didIteratorError) throw _iteratorError;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
await Promise.all(promises);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
6
75
|
function loadRoutes(paths, routerRoot, options) {
|
|
7
76
|
return context || (globalThis.__importMetaGlobbed = paths, context = globbedRoutesToRouteContext(paths, routerRoot, options), context);
|
|
8
77
|
}
|
|
@@ -27,6 +96,9 @@ function globbedRoutesToRouteContext(paths, routerRoot, options) {
|
|
|
27
96
|
var moduleKeys = Object.keys(routesSync);
|
|
28
97
|
function resolve(id) {
|
|
29
98
|
if (clearTimeout(clears[id]), loadedRoutes[id]) return loadedRoutes[id];
|
|
99
|
+
var preloadKey = id.replace("./", `/${routerRoot}/`),
|
|
100
|
+
preloaded = getPreloadedModule(preloadKey);
|
|
101
|
+
if (preloaded) return loadedRoutes[id] = preloaded, preloaded;
|
|
30
102
|
if (typeof routesSync[id] != "function") return routesSync[id];
|
|
31
103
|
throw promises[id] || (promises[id] = routesSync[id]().then(function (val) {
|
|
32
104
|
return loadedRoutes[id] = val, delete promises[id], clears[id] = setTimeout(function () {
|
|
@@ -46,5 +118,5 @@ function globbedRoutesToRouteContext(paths, routerRoot, options) {
|
|
|
46
118
|
return id;
|
|
47
119
|
}, resolve;
|
|
48
120
|
}
|
|
49
|
-
export { globbedRoutesToRouteContext, loadRoutes, useViteRoutes };
|
|
121
|
+
export { getPreloadedModule, getPreloadedModuleKeys, globbedRoutesToRouteContext, loadRoutes, preloadRouteModules, registerPreloadedRoute, useViteRoutes };
|
|
50
122
|
//# sourceMappingURL=useViteRoutes.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["lastVersion","context","useViteRoutes","routes","routerRoot","options","version","loadRoutes","
|
|
1
|
+
{"version":3,"names":["lastVersion","context","useViteRoutes","routes","routerRoot","options","version","loadRoutes","preloadedModules","registerPreloadedRoute","key","module","getPreloadedModule","getPreloadedModuleKeys","Object","keys","matchDynamicRoute","routePattern","actualPath","routeSegments","split","pathSegments","hasCatchAll","some","s","startsWith","catchAllIdx","findIndex","i","length","i1","routeSeg","pathSeg","endsWith","preloadRouteModules","href","globbed","globalThis","__importMetaGlobbed","normalizedHref","replace","promises","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","_step","value","routePath","isStaticMatch","isDynamicMatch","includes","push","then","mod","catch","_iterator","Symbol","iterator","next","done","err","return","Promise","all","paths","globbedRoutesToRouteContext","routesSync","loadedRoutes","clears","forEach","path","_options_routeModes","console","error","loadRouteFunction","pathWithoutRelative","originalPath","slice","routeModes","info","moduleKeys","resolve","id","clearTimeout"],"sources":["../../../src/router/useViteRoutes.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/useLoader.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { useCallback, useSyncExternalStore } from "react";
|
|
2
2
|
import { useParams, usePathname } from "./hooks";
|
|
3
|
-
import {
|
|
4
|
-
import { preloadingLoader } from "./router/router";
|
|
3
|
+
import { preloadedLoaderData, preloadingLoader } from "./router/router";
|
|
5
4
|
import { getLoaderPath } from "./utils/cleanUrl";
|
|
6
5
|
import { dynamicImport } from "./utils/dynamicImport";
|
|
7
6
|
import { weakKey } from "./utils/weakKey";
|
|
@@ -45,7 +44,7 @@ async function refetchLoader(pathname2) {
|
|
|
45
44
|
}
|
|
46
45
|
}
|
|
47
46
|
function useLoaderState(loader) {
|
|
48
|
-
const { loaderProps: loaderPropsFromServerContext, loaderData: loaderDataFromServerContext } = useServerContext() || {}, params = useParams(), pathname = usePathname(), currentPath =
|
|
47
|
+
const { loaderProps: loaderPropsFromServerContext, loaderData: loaderDataFromServerContext } = useServerContext() || {}, params = useParams(), pathname = usePathname(), currentPath = pathname.replace(/\/index$/, "").replace(/\/$/, "") || "/";
|
|
49
48
|
if (typeof window > "u" && loader)
|
|
50
49
|
return { data: useAsyncFn(
|
|
51
50
|
loader,
|
|
@@ -55,7 +54,7 @@ function useLoaderState(loader) {
|
|
|
55
54
|
}
|
|
56
55
|
), refetch: async () => {
|
|
57
56
|
}, state: "idle" };
|
|
58
|
-
const
|
|
57
|
+
const serverContextPath = loaderPropsFromServerContext?.path, preloadedData = serverContextPath === currentPath ? loaderDataFromServerContext : void 0, loaderStateEntry = useSyncExternalStore(
|
|
59
58
|
subscribe,
|
|
60
59
|
() => getLoaderState(currentPath, preloadedData),
|
|
61
60
|
() => getLoaderState(currentPath, preloadedData)
|
|
@@ -65,11 +64,13 @@ function useLoaderState(loader) {
|
|
|
65
64
|
refetch,
|
|
66
65
|
state: loaderStateEntry.state
|
|
67
66
|
};
|
|
68
|
-
if (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce && loader)
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
if (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce && loader) {
|
|
68
|
+
const resolvedPreloadData = preloadedLoaderData[currentPath];
|
|
69
|
+
if (resolvedPreloadData !== void 0)
|
|
70
|
+
delete preloadedLoaderData[currentPath], delete preloadingLoader[currentPath], loaderStateEntry.data = resolvedPreloadData, loaderStateEntry.hasLoadedOnce = !0;
|
|
71
|
+
else if (preloadingLoader[currentPath]) {
|
|
71
72
|
const promise2 = preloadingLoader[currentPath].then((val) => {
|
|
72
|
-
delete preloadingLoader[currentPath], updateState(currentPath, {
|
|
73
|
+
delete preloadingLoader[currentPath], delete preloadedLoaderData[currentPath], updateState(currentPath, {
|
|
73
74
|
data: val,
|
|
74
75
|
hasLoadedOnce: !0,
|
|
75
76
|
promise: void 0
|
|
@@ -99,6 +100,7 @@ function useLoaderState(loader) {
|
|
|
99
100
|
}, promise = loadData();
|
|
100
101
|
loaderStateEntry.promise = promise;
|
|
101
102
|
}
|
|
103
|
+
}
|
|
102
104
|
if (loader) {
|
|
103
105
|
if (loaderStateEntry.error && !loaderStateEntry.hasLoadedOnce)
|
|
104
106
|
throw loaderStateEntry.error;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useLoader.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,aAAa,4BAA4B;AAClD,SAAS,WAAW,mBAAmB;AACvC,SAAS,
|
|
4
|
+
"mappings": "AAAA,SAAS,aAAa,4BAA4B;AAClD,SAAS,WAAW,mBAAmB;AACvC,SAAS,qBAAqB,wBAAwB;AACtD,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,eAAe;AACxB,SAAS,wBAAwB;AAWjC,MAAM,cAAgD,CAAC,GACjD,cAAc,oBAAI,IAAgB;AAExC,SAAS,YAAY,MAAc,SAAoC;AACrE,cAAY,IAAI,IAAI,EAAE,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GACvD,YAAY,QAAQ,CAAC,aAAa;AAChC,aAAS;AAAA,EACX,CAAC;AACH;AAEA,SAAS,UAAU,UAAsB;AACvC,qBAAY,IAAI,QAAQ,GACjB,MAAM,YAAY,OAAO,QAAQ;AAC1C;AAEA,SAAS,eAAe,MAAcA,gBAAuC;AAC3E,SAAK,YAAY,IAAI,MACnB,YAAY,IAAI,IAAI;AAAA,IAClB,MAAMA;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IACT,OAAO;AAAA,IACP,eAAe,CAAC,CAACA;AAAA,EACnB,IAEK,YAAY,IAAI;AACzB;AAEA,eAAsB,cAAcC,WAAiC;AACnE,cAAYA,WAAU;AAAA,IACpB,OAAO;AAAA,IACP,OAAO;AAAA,EACT,CAAC;AAED,MAAI;AACF,UAAM,YAAY,GAAG,KAAK,IAAI,CAAC,IACzBC,eAAc,cAAcD,WAAU,IAAM,SAAS,GAGrDE,UAAS,OADA,MAAM,cAAcD,YAAW,GAClB,OAAO;AAEnC,gBAAYD,WAAU;AAAA,MACpB,MAAME;AAAA,MACN,OAAO;AAAA,MACP,WAAW,KAAK,IAAI;AAAA,MACpB,eAAe;AAAA,IACjB,CAAC;AAAA,EACH,SAAS,KAAK;AACZ,sBAAYF,WAAU;AAAA,MACpB,OAAO;AAAA,MACP,OAAO;AAAA,IACT,CAAC,GACK;AAAA,EACR;AACF;AAEO,SAAS,eAId,QAOI;AACJ,QAAM,EAAE,aAAa,8BAA8B,YAAY,4BAA4B,IACzF,iBAAiB,KAAK,CAAC,GAEnB,SAAS,UAAU,GACnB,WAAW,YAAY,GAGvB,cAAc,SAAS,QAAQ,YAAY,EAAE,EAAE,QAAQ,OAAO,EAAE,KAAK;AAG3E,MAAI,OAAO,SAAW,OAAe;AAQnC,WAAO,EAAE,MAPU;AAAA,MACjB;AAAA,MACA,gCAAgC;AAAA,QAC9B,MAAM;AAAA,QACN;AAAA,MACF;AAAA,IACF,GAC2B,SAAS,YAAY;AAAA,IAAC,GAAG,OAAO,OAAO;AAIpE,QAAM,oBAAoB,8BAA8B,MAClD,gBAAgB,sBAAsB,cAAc,8BAA8B,QAElF,mBAAmB;AAAA,IACvB;AAAA,IACA,MAAM,eAAe,aAAa,aAAa;AAAA,IAC/C,MAAM,eAAe,aAAa,aAAa;AAAA,EACjD,GAEM,UAAU,YAAY,MAAM,cAAc,WAAW,GAAG,CAAC,WAAW,CAAC;AAG3E,MAAI,CAAC;AACH,WAAO;AAAA,MACL;AAAA,MACA,OAAO,iBAAiB;AAAA,IAC1B;AAIF,MACE,CAAC,iBAAiB,QAClB,CAAC,iBAAiB,WAClB,CAAC,iBAAiB,iBAClB,QACA;AAEA,UAAM,sBAAsB,oBAAoB,WAAW;AAC3D,QAAI,wBAAwB;AAE1B,aAAO,oBAAoB,WAAW,GACtC,OAAO,iBAAiB,WAAW,GACnC,iBAAiB,OAAO,qBACxB,iBAAiB,gBAAgB;AAAA,aACxB,iBAAiB,WAAW,GAAG;AAGxC,YAAMG,WADiB,iBAAiB,WAAW,EAEhD,KAAK,CAAC,QAAa;AAClB,eAAO,iBAAiB,WAAW,GACnC,OAAO,oBAAoB,WAAW,GACtC,YAAY,aAAa;AAAA,UACvB,MAAM;AAAA,UACN,eAAe;AAAA,UACf,SAAS;AAAA,QACX,CAAC;AAAA,MACH,CAAC,EACA,MAAM,CAAC,QAAa;AACnB,gBAAQ,MAAM,0BAA0B,GAAG,GAC3C,OAAO,iBAAiB,WAAW,GACnC,YAAY,aAAa;AAAA,UACvB,OAAO;AAAA,UACP,SAAS;AAAA,QACX,CAAC;AAAA,MACH,CAAC;AAEH,uBAAiB,UAAUA;AAAA,IAC7B,OAAO;AAEL,YAAM,WAAW,YAAY;AAC3B,YAAI;AAmCF,gBAAM,cAAc,cAAc,aAAa,EAAI,GAC7C,SAAS,MAAM,cAAc,WAAW,GACxC,SAAS,MAAM,OAAO,OAAO;AACnC,sBAAY,aAAa;AAAA,YACvB,MAAM;AAAA,YACN,eAAe;AAAA,YACf,SAAS;AAAA,UACX,CAAC;AAAA,QACH,SAAS,KAAK;AACZ,sBAAY,aAAa;AAAA,YACvB,OAAO;AAAA,YACP,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,MACF,GAEM,UAAU,SAAS;AACzB,uBAAiB,UAAU;AAAA,IAC7B;AAAA,EACF;AAGA,MAAI,QAAQ;AAEV,QAAI,iBAAiB,SAAS,CAAC,iBAAiB;AAC9C,YAAM,iBAAiB;AAIzB,QACE,iBAAiB,SAAS,UAC1B,iBAAiB,WACjB,CAAC,iBAAiB;AAElB,YAAM,iBAAiB;AAGzB,WAAO;AAAA,MACL,MAAM,iBAAiB;AAAA,MACvB;AAAA,MACA,OAAO,iBAAiB;AAAA,IAC1B;AAAA,EACF;AACE,WAAO;AAAA,MACL;AAAA,MACA,OAAO,iBAAiB;AAAA,IAC1B;AAEJ;AAEO,SAAS,UAGdC,SAA8E;AAC9E,QAAM,EAAE,MAAAC,MAAK,IAAI,eAAeD,OAAM;AACtC,SAAOC;AACT;AAEA,MAAM,UAAU,oBAAI,IAAI,GAClB,UAAU,oBAAI,IAAI;AAExB,SAAS,WAAW,KAAU,OAAa;AACzC,QAAM,OAAO,MAAM,QAAQ,GAAG,IAAI,MAAM,KAAK,UAAU,KAAK;AAE5D,MAAI,OACE,CAAC,QAAQ,IAAI,GAAG,GAAG;AACrB,YAAQ,IAAI,KAAK,EAAI;AAErB,QAAI,OAAO,IAAI,KAAK;AACpB,IAAI,gBAAgB,YAClB,OAAO,KACJ,KAAK,CAAC,UAAU;AACf,cAAQ,IAAI,KAAK,KAAK;AAAA,IACxB,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,cAAQ,MAAM,0BAA0B,GAAG,GAC3C,QAAQ,IAAI,KAAK,MAAS;AAAA,IAC5B,CAAC,IAEL,QAAQ,IAAI,KAAK,IAAI;AAAA,EACvB;AAGF,QAAM,UAAU,QAAQ,IAAI,GAAG;AAE/B,MAAI,mBAAmB;AACrB,UAAM;AAGR,SAAO;AACT;",
|
|
5
5
|
"names": ["preloadedData", "pathname", "loaderJSUrl", "result", "promise", "loader", "data"]
|
|
6
6
|
}
|
package/dist/esm/useLoader.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { useCallback, useSyncExternalStore } from "react";
|
|
2
2
|
import { useParams, usePathname } from "./hooks.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { preloadingLoader } from "./router/router.mjs";
|
|
3
|
+
import { preloadedLoaderData, preloadingLoader } from "./router/router.mjs";
|
|
5
4
|
import { getLoaderPath } from "./utils/cleanUrl.mjs";
|
|
6
5
|
import { dynamicImport } from "./utils/dynamicImport.mjs";
|
|
7
6
|
import { weakKey } from "./utils/weakKey.mjs";
|
|
@@ -57,10 +56,7 @@ function useLoaderState(loader) {
|
|
|
57
56
|
} = useServerContext() || {},
|
|
58
57
|
params = useParams(),
|
|
59
58
|
pathname = usePathname(),
|
|
60
|
-
currentPath =
|
|
61
|
-
pathname,
|
|
62
|
-
params
|
|
63
|
-
}).replace(/index$/, "");
|
|
59
|
+
currentPath = pathname.replace(/\/index$/, "").replace(/\/$/, "") || "/";
|
|
64
60
|
if (typeof window > "u" && loader) return {
|
|
65
61
|
data: useAsyncFn(loader, loaderPropsFromServerContext || {
|
|
66
62
|
path: pathname,
|
|
@@ -69,48 +65,51 @@ function useLoaderState(loader) {
|
|
|
69
65
|
refetch: async () => {},
|
|
70
66
|
state: "idle"
|
|
71
67
|
};
|
|
72
|
-
const
|
|
68
|
+
const serverContextPath = loaderPropsFromServerContext?.path,
|
|
69
|
+
preloadedData = serverContextPath === currentPath ? loaderDataFromServerContext : void 0,
|
|
73
70
|
loaderStateEntry = useSyncExternalStore(subscribe, () => getLoaderState(currentPath, preloadedData), () => getLoaderState(currentPath, preloadedData)),
|
|
74
71
|
refetch = useCallback(() => refetchLoader(currentPath), [currentPath]);
|
|
75
72
|
if (!loader) return {
|
|
76
73
|
refetch,
|
|
77
74
|
state: loaderStateEntry.state
|
|
78
75
|
};
|
|
79
|
-
if (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce && loader)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
error
|
|
90
|
-
|
|
76
|
+
if (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce && loader) {
|
|
77
|
+
const resolvedPreloadData = preloadedLoaderData[currentPath];
|
|
78
|
+
if (resolvedPreloadData !== void 0) delete preloadedLoaderData[currentPath], delete preloadingLoader[currentPath], loaderStateEntry.data = resolvedPreloadData, loaderStateEntry.hasLoadedOnce = !0;else if (preloadingLoader[currentPath]) {
|
|
79
|
+
const promise2 = preloadingLoader[currentPath].then(val => {
|
|
80
|
+
delete preloadingLoader[currentPath], delete preloadedLoaderData[currentPath], updateState(currentPath, {
|
|
81
|
+
data: val,
|
|
82
|
+
hasLoadedOnce: !0,
|
|
83
|
+
promise: void 0
|
|
84
|
+
});
|
|
85
|
+
}).catch(err => {
|
|
86
|
+
console.error("Error running loader()", err), delete preloadingLoader[currentPath], updateState(currentPath, {
|
|
87
|
+
error: err,
|
|
88
|
+
promise: void 0
|
|
89
|
+
});
|
|
91
90
|
});
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
})
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
promise =
|
|
113
|
-
|
|
91
|
+
loaderStateEntry.promise = promise2;
|
|
92
|
+
} else {
|
|
93
|
+
const loadData = async () => {
|
|
94
|
+
try {
|
|
95
|
+
const loaderJSUrl = getLoaderPath(currentPath, !0),
|
|
96
|
+
module = await dynamicImport(loaderJSUrl),
|
|
97
|
+
result = await module.loader();
|
|
98
|
+
updateState(currentPath, {
|
|
99
|
+
data: result,
|
|
100
|
+
hasLoadedOnce: !0,
|
|
101
|
+
promise: void 0
|
|
102
|
+
});
|
|
103
|
+
} catch (err) {
|
|
104
|
+
updateState(currentPath, {
|
|
105
|
+
error: err,
|
|
106
|
+
promise: void 0
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
promise = loadData();
|
|
111
|
+
loaderStateEntry.promise = promise;
|
|
112
|
+
}
|
|
114
113
|
}
|
|
115
114
|
if (loader) {
|
|
116
115
|
if (loaderStateEntry.error && !loaderStateEntry.hasLoadedOnce) throw loaderStateEntry.error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useSyncExternalStore","useParams","usePathname","
|
|
1
|
+
{"version":3,"names":["useCallback","useSyncExternalStore","useParams","usePathname","preloadedLoaderData","preloadingLoader","getLoaderPath","dynamicImport","weakKey","useServerContext","loaderState","subscribers","Set","updateState","path","updates","forEach","callback","subscribe","add","delete","getLoaderState","preloadedData2","data","error","promise","state","hasLoadedOnce","refetchLoader","pathname2","cacheBust","Date","now","loaderJSUrl2","result2","loader","timestamp","err","useLoaderState","loaderProps","loaderPropsFromServerContext","loaderData","loaderDataFromServerContext","params","pathname","currentPath","replace","window","useAsyncFn","refetch","serverContextPath","preloadedData","loaderStateEntry","resolvedPreloadData","promise2","then","val","catch","console","loadData","loaderJSUrl","module","result","useLoader","loader2","data2","results","Map","started","props","key","JSON","stringify","get","set","next","Promise","final","current"],"sources":["../../src/useLoader.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|