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
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { useCallback, useSyncExternalStore } from "react";
|
|
2
2
|
import { useParams, usePathname } from "./hooks.native.js";
|
|
3
|
-
import {
|
|
4
|
-
import { preloadingLoader } from "./router/router.native.js";
|
|
3
|
+
import { preloadedLoaderData, preloadingLoader } from "./router/router.native.js";
|
|
5
4
|
import { getLoaderPath } from "./utils/cleanUrl.native.js";
|
|
6
5
|
import { dynamicImport } from "./utils/dynamicImport.native.js";
|
|
7
6
|
import { weakKey } from "./utils/weakKey.native.js";
|
|
@@ -63,10 +62,7 @@ function useLoaderState(loader) {
|
|
|
63
62
|
} = useServerContext() || {},
|
|
64
63
|
params = useParams(),
|
|
65
64
|
pathname = usePathname(),
|
|
66
|
-
currentPath =
|
|
67
|
-
pathname,
|
|
68
|
-
params
|
|
69
|
-
}).replace(/index$/, "");
|
|
65
|
+
currentPath = pathname.replace(/\/index$/, "").replace(/\/$/, "") || "/";
|
|
70
66
|
if (typeof window > "u" && loader) {
|
|
71
67
|
var serverData = useAsyncFn(loader, loaderPropsFromServerContext || {
|
|
72
68
|
path: pathname,
|
|
@@ -78,7 +74,8 @@ function useLoaderState(loader) {
|
|
|
78
74
|
state: "idle"
|
|
79
75
|
};
|
|
80
76
|
}
|
|
81
|
-
var
|
|
77
|
+
var serverContextPath = loaderPropsFromServerContext?.path,
|
|
78
|
+
preloadedData = serverContextPath === currentPath ? loaderDataFromServerContext : void 0,
|
|
82
79
|
loaderStateEntry = useSyncExternalStore(subscribe, function () {
|
|
83
80
|
return getLoaderState(currentPath, preloadedData);
|
|
84
81
|
}, function () {
|
|
@@ -91,63 +88,66 @@ function useLoaderState(loader) {
|
|
|
91
88
|
refetch,
|
|
92
89
|
state: loaderStateEntry.state
|
|
93
90
|
};
|
|
94
|
-
if (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce && loader)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
nativeLoaderJSUrl = `${loaderJSUrl}?platform=ios`;
|
|
91
|
+
if (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce && loader) {
|
|
92
|
+
var resolvedPreloadData = preloadedLoaderData[currentPath];
|
|
93
|
+
if (resolvedPreloadData !== void 0) delete preloadedLoaderData[currentPath], delete preloadingLoader[currentPath], loaderStateEntry.data = resolvedPreloadData, loaderStateEntry.hasLoadedOnce = !0;else if (preloadingLoader[currentPath]) {
|
|
94
|
+
var preloadPromise = preloadingLoader[currentPath],
|
|
95
|
+
promise = preloadPromise.then(function (val) {
|
|
96
|
+
delete preloadingLoader[currentPath], delete preloadedLoaderData[currentPath], updateState(currentPath, {
|
|
97
|
+
data: val,
|
|
98
|
+
hasLoadedOnce: !0,
|
|
99
|
+
promise: void 0
|
|
100
|
+
});
|
|
101
|
+
}).catch(function (err) {
|
|
102
|
+
console.error("Error running loader()", err), delete preloadingLoader[currentPath], updateState(currentPath, {
|
|
103
|
+
error: err,
|
|
104
|
+
promise: void 0
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
loaderStateEntry.promise = promise;
|
|
108
|
+
} else {
|
|
109
|
+
var loadData = async function () {
|
|
114
110
|
try {
|
|
115
|
-
var
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
111
|
+
var loaderJSUrl = getLoaderPath(currentPath, !0),
|
|
112
|
+
nativeLoaderJSUrl = `${loaderJSUrl}?platform=ios`;
|
|
113
|
+
try {
|
|
114
|
+
var loaderJsCodeResp = await fetch(nativeLoaderJSUrl);
|
|
115
|
+
if (!loaderJsCodeResp.ok) throw new Error(`Response not ok: ${loaderJsCodeResp.status}`);
|
|
116
|
+
var loaderJsCode = await loaderJsCodeResp.text(),
|
|
117
|
+
result = eval(`() => { var exports = {}; ${loaderJsCode}; return exports; }`)();
|
|
118
|
+
if (typeof result.loader != "function") throw new Error("Loader code isn't exporting a `loader` function");
|
|
119
|
+
var data = await result.loader();
|
|
120
|
+
updateState(currentPath, {
|
|
121
|
+
data,
|
|
122
|
+
hasLoadedOnce: !0,
|
|
123
|
+
promise: void 0
|
|
124
|
+
});
|
|
125
|
+
return;
|
|
126
|
+
} catch (e) {
|
|
127
|
+
updateState(currentPath, {
|
|
128
|
+
data: {},
|
|
129
|
+
promise: void 0
|
|
130
|
+
});
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
var loaderJSUrl = getLoaderPath(currentPath, !0),
|
|
134
|
+
module = await dynamicImport(loaderJSUrl),
|
|
135
|
+
result = await module.loader();
|
|
121
136
|
updateState(currentPath, {
|
|
122
|
-
data,
|
|
137
|
+
data: result,
|
|
123
138
|
hasLoadedOnce: !0,
|
|
124
139
|
promise: void 0
|
|
125
140
|
});
|
|
126
|
-
|
|
127
|
-
} catch (e) {
|
|
141
|
+
} catch (err) {
|
|
128
142
|
updateState(currentPath, {
|
|
129
|
-
|
|
143
|
+
error: err,
|
|
130
144
|
promise: void 0
|
|
131
145
|
});
|
|
132
|
-
return;
|
|
133
146
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
data: result,
|
|
139
|
-
hasLoadedOnce: !0,
|
|
140
|
-
promise: void 0
|
|
141
|
-
});
|
|
142
|
-
} catch (err) {
|
|
143
|
-
updateState(currentPath, {
|
|
144
|
-
error: err,
|
|
145
|
-
promise: void 0
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
promise = loadData();
|
|
150
|
-
loaderStateEntry.promise = promise;
|
|
147
|
+
},
|
|
148
|
+
promise = loadData();
|
|
149
|
+
loaderStateEntry.promise = promise;
|
|
150
|
+
}
|
|
151
151
|
}
|
|
152
152
|
if (loader) {
|
|
153
153
|
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","_instanceof","left","right","Symbol","hasInstance","loaderState","subscribers","Set","updateState","path","updates","forEach","callback","subscribe","add","delete","getLoaderState","preloadedData2","data","error","promise","state","hasLoadedOnce","refetchLoader","pathname2","cacheBust","Date","now","loaderJSUrl2","module2","result2","loader","timestamp","err","useLoaderState","loaderProps","loaderPropsFromServerContext","loaderData","loaderDataFromServerContext","params","pathname","currentPath","replace","window","serverData","useAsyncFn","refetch","serverContextPath","preloadedData","loaderStateEntry","resolvedPreloadData","preloadPromise","then","val","catch","console","loadData","loaderJSUrl","nativeLoaderJSUrl","loaderJsCodeResp","fetch","ok","Error","status","loaderJsCode","text","result","eval","e","module"],"sources":["../../src/useLoader.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -43,7 +43,18 @@ function createVirtualEntry(options) {
|
|
|
43
43
|
return `
|
|
44
44
|
${isNativeEnvironment(this.environment) ? "" : getSetupFileImport(this.environment.name)}
|
|
45
45
|
|
|
46
|
-
import { createApp } from 'one'
|
|
46
|
+
import { createApp, registerPreloadedRoute as _registerPreloadedRoute } from 'one'
|
|
47
|
+
|
|
48
|
+
// Export registerPreloadedRoute so preload files can import it from this bundle
|
|
49
|
+
// Named export that wraps the original function
|
|
50
|
+
export function registerPreloadedRoute(key, module) {
|
|
51
|
+
return _registerPreloadedRoute(key, module)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Also expose on window for debugging and to prevent tree-shaking
|
|
55
|
+
if (typeof window !== 'undefined') {
|
|
56
|
+
window.__oneRegisterPreloadedRoute = registerPreloadedRoute
|
|
57
|
+
}
|
|
47
58
|
|
|
48
59
|
// globbing ${JSON.stringify(routeGlobs)}
|
|
49
60
|
export default createApp({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/vite/plugins/virtualEntryPlugin.ts"],
|
|
4
|
-
"mappings": "AACA,SAAS,2BAA2B;AACpC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,mBAAmB,iBAAiC;AAQ3D,QAAM,SAPY;AAAA,IAChB,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS;AAAA,EACX,EAEyB,eAAe;AACxC,SAAK,SAEE;AAAA,kBACS,MAAM;AAAA,0CACkB,MAAM;AAAA;AAAA,IAJ1B;AAOtB;AAEO,SAAS,mBAAmB,SAMxB;AACT,QAAM,aAAa;AAAA,IACjB,IAAI,QAAQ,IAAI,IAAI,kBAAkB;AAAA,IACtC,GAAI,QAAQ,QAAQ,mBAAmB,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,OAAO,EAAE,KAAK,CAAC;AAAA,EAC9F,GACM,gBAAgB,IAAI,QAAQ,IAAI,IAAI,sBAAsB;AAEhE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IAET,UAAU,IAAI;AACZ,UAAI,OAAO;AACT,eAAO;AAET,UAAI,OAAO;AACT,eAAO;AAAA,IAEX;AAAA,IAEA,KAAK,IAAI;AACP,UAAI,OAAO;AAIT,eAAO;AAAA,EAHa,oBAAoB,KAAK,WAAW,IACpD,KACA,mBAAmB,KAAK,YAAY,IAAI,CAEvC;AAAA;AAAA;AAAA;AAAA,
|
|
4
|
+
"mappings": "AACA,SAAS,2BAA2B;AACpC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,mBAAmB,iBAAiC;AAQ3D,QAAM,SAPY;AAAA,IAChB,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS;AAAA,EACX,EAEyB,eAAe;AACxC,SAAK,SAEE;AAAA,kBACS,MAAM;AAAA,0CACkB,MAAM;AAAA;AAAA,IAJ1B;AAOtB;AAEO,SAAS,mBAAmB,SAMxB;AACT,QAAM,aAAa;AAAA,IACjB,IAAI,QAAQ,IAAI,IAAI,kBAAkB;AAAA,IACtC,GAAI,QAAQ,QAAQ,mBAAmB,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,OAAO,EAAE,KAAK,CAAC;AAAA,EAC9F,GACM,gBAAgB,IAAI,QAAQ,IAAI,IAAI,sBAAsB;AAEhE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IAET,UAAU,IAAI;AACZ,UAAI,OAAO;AACT,eAAO;AAET,UAAI,OAAO;AACT,eAAO;AAAA,IAEX;AAAA,IAEA,KAAK,IAAI;AACP,UAAI,OAAO;AAIT,eAAO;AAAA,EAHa,oBAAoB,KAAK,WAAW,IACpD,KACA,mBAAmB,KAAK,YAAY,IAAI,CAEvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAeC,KAAK,UAAU,UAAU,CAAC;AAAA;AAAA,6BAEX,KAAK,UAAU,CAAC,GAAG,YAAY,GAAG,kCAAkC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAAA,gBACtG,KAAK,UAAU,QAAQ,IAAI,CAAC;AAAA,WACjC,KAAK,UAAU,QAAQ,KAAK,CAAC;AAAA;AAAA;AAKlC,UAAI,OAAO;AAIT,eAAO;AAAA,EAHa,oBAAoB,KAAK,WAAW,IACpD,KACA,mBAAmB,KAAK,YAAY,IAAI,CAEvC;AAAA;AAAA;AAAA;AAAA,cAIC,KAAK,UAAU,UAAU,CAAC;AAAA;AAAA,6BAEX,KAAK,UAAU,CAAC,GAAG,YAAY,GAAG,qCAAqC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,aAAa,EAAE,CAAC,CAAC;AAAA,gBAC9H,KAAK,UAAU,QAAQ,IAAI,CAAC;AAAA,WACjC,KAAK,UAAU,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA,IAIpC;AAAA,EACF;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -28,7 +28,18 @@ function createVirtualEntry(options) {
|
|
|
28
28
|
if (id === resolvedVirtualEntryId) return `
|
|
29
29
|
${isNativeEnvironment(this.environment) ? "" : getSetupFileImport(this.environment.name)}
|
|
30
30
|
|
|
31
|
-
import { createApp } from 'one'
|
|
31
|
+
import { createApp, registerPreloadedRoute as _registerPreloadedRoute } from 'one'
|
|
32
|
+
|
|
33
|
+
// Export registerPreloadedRoute so preload files can import it from this bundle
|
|
34
|
+
// Named export that wraps the original function
|
|
35
|
+
export function registerPreloadedRoute(key, module) {
|
|
36
|
+
return _registerPreloadedRoute(key, module)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Also expose on window for debugging and to prevent tree-shaking
|
|
40
|
+
if (typeof window !== 'undefined') {
|
|
41
|
+
window.__oneRegisterPreloadedRoute = registerPreloadedRoute
|
|
42
|
+
}
|
|
32
43
|
|
|
33
44
|
// globbing ${JSON.stringify(routeGlobs)}
|
|
34
45
|
export default createApp({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","getSetupFileImport","environmentName","envVar","client","ssr","ios","android","createVirtualEntry","options","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","environment","JSON","stringify","p","flags"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,mBAAA,QAA2B;AACpC,SACEC,sBAAA,EACAC,kBAAA,EACAC,oCAAA,EACAC,iCAAA,QACK;AAEP,SACEC,sBAAA,EACAC,4BAAA,EACAC,cAAA,EACAC,oBAAA,QACK;AAEP,SAASC,mBAAmBC,eAAA,EAAiC;EAQ3D,MAAMC,MAAA,GAPY;IAChBC,MAAA,EAAQ;IACRC,GAAA,EAAK;IACLC,GAAA,EAAK;IACLC,OAAA,EAAS;EACX,EAEyBL,eAAe;EACxC,OAAKC,MAAA,GAEE;AAAA,kBACSA,MAAM;AAAA,0CACkBA,MAAM;AAAA;AAAA,IAJ1B;AAOtB;AAEO,SAASK,mBAAmBC,OAAA,EAMxB;EACT,MAAMC,UAAA,GAAa,CACjB,IAAID,OAAA,CAAQE,IAAI,IAAIjB,kBAAkB,IACtC,IAAIe,OAAA,CAAQG,MAAA,EAAQC,iBAAA,EAAmBC,GAAA,CAAKC,OAAA,IAAY,KAAKN,OAAA,CAAQE,IAAI,IAAII,OAAO,EAAE,KAAK,EAAC,EAC9F;IACMC,aAAA,GAAgB,IAAIP,OAAA,CAAQE,IAAI,IAAIlB,sBAAsB;EAEhE,OAAO;IACLwB,IAAA,EAAM;IACNC,OAAA,EAAS;IAETC,UAAUC,EAAA,EAAI;MACZ,IAAIA,EAAA,KAAOrB,cAAA,EACT,OAAOF,sBAAA;MAET,IAAIuB,EAAA,KAAOpB,oBAAA,EACT,OAAOF,4BAAA;IAEX;IAEAuB,KAAKD,EAAA,EAAI;MACP,IAAIA,EAAA,KAAOvB,sBAAA,EAIT,OAAO;AAAA,EAHaL,mBAAA,CAAoB,KAAK8B,WAAW,IACpD,KACArB,kBAAA,CAAmB,KAAKqB,WAAA,CAAYL,IAAI,CAEvC;AAAA;AAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"names":["isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","getSetupFileImport","environmentName","envVar","client","ssr","ios","android","createVirtualEntry","options","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","environment","JSON","stringify","p","flags"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,mBAAA,QAA2B;AACpC,SACEC,sBAAA,EACAC,kBAAA,EACAC,oCAAA,EACAC,iCAAA,QACK;AAEP,SACEC,sBAAA,EACAC,4BAAA,EACAC,cAAA,EACAC,oBAAA,QACK;AAEP,SAASC,mBAAmBC,eAAA,EAAiC;EAQ3D,MAAMC,MAAA,GAPY;IAChBC,MAAA,EAAQ;IACRC,GAAA,EAAK;IACLC,GAAA,EAAK;IACLC,OAAA,EAAS;EACX,EAEyBL,eAAe;EACxC,OAAKC,MAAA,GAEE;AAAA,kBACSA,MAAM;AAAA,0CACkBA,MAAM;AAAA;AAAA,IAJ1B;AAOtB;AAEO,SAASK,mBAAmBC,OAAA,EAMxB;EACT,MAAMC,UAAA,GAAa,CACjB,IAAID,OAAA,CAAQE,IAAI,IAAIjB,kBAAkB,IACtC,IAAIe,OAAA,CAAQG,MAAA,EAAQC,iBAAA,EAAmBC,GAAA,CAAKC,OAAA,IAAY,KAAKN,OAAA,CAAQE,IAAI,IAAII,OAAO,EAAE,KAAK,EAAC,EAC9F;IACMC,aAAA,GAAgB,IAAIP,OAAA,CAAQE,IAAI,IAAIlB,sBAAsB;EAEhE,OAAO;IACLwB,IAAA,EAAM;IACNC,OAAA,EAAS;IAETC,UAAUC,EAAA,EAAI;MACZ,IAAIA,EAAA,KAAOrB,cAAA,EACT,OAAOF,sBAAA;MAET,IAAIuB,EAAA,KAAOpB,oBAAA,EACT,OAAOF,4BAAA;IAEX;IAEAuB,KAAKD,EAAA,EAAI;MACP,IAAIA,EAAA,KAAOvB,sBAAA,EAIT,OAAO;AAAA,EAHaL,mBAAA,CAAoB,KAAK8B,WAAW,IACpD,KACArB,kBAAA,CAAmB,KAAKqB,WAAA,CAAYL,IAAI,CAEvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAeCM,IAAA,CAAKC,SAAA,CAAUd,UAAU,CAAC;AAAA;AAAA,6BAEXa,IAAA,CAAKC,SAAA,CAAU,CAAC,GAAGd,UAAA,EAAY,GAAGd,iCAAA,CAAkCkB,GAAA,CAAKW,CAAA,IAAM,IAAIA,CAAC,EAAE,CAAC,CAAC,CAAC;AAAA,gBACtGF,IAAA,CAAKC,SAAA,CAAUf,OAAA,CAAQE,IAAI,CAAC;AAAA,WACjCY,IAAA,CAAKC,SAAA,CAAUf,OAAA,CAAQiB,KAAK,CAAC;AAAA;AAAA;MAKlC,IAAIN,EAAA,KAAOtB,4BAAA,EAIT,OAAO;AAAA,EAHaN,mBAAA,CAAoB,KAAK8B,WAAW,IACpD,KACArB,kBAAA,CAAmB,KAAKqB,WAAA,CAAYL,IAAI,CAEvC;AAAA;AAAA;AAAA;AAAA,cAICM,IAAA,CAAKC,SAAA,CAAUd,UAAU,CAAC;AAAA;AAAA,6BAEXa,IAAA,CAAKC,SAAA,CAAU,CAAC,GAAGd,UAAA,EAAY,GAAGf,oCAAA,CAAqCmB,GAAA,CAAKW,CAAA,IAAM,IAAIA,CAAC,EAAE,GAAG,IAAIT,aAAa,EAAE,CAAC,CAAC;AAAA,gBAC9HO,IAAA,CAAKC,SAAA,CAAUf,OAAA,CAAQE,IAAI,CAAC;AAAA,WACjCY,IAAA,CAAKC,SAAA,CAAUf,OAAA,CAAQiB,KAAK,CAAC;AAAA;AAAA;IAIpC;EACF;AACF","ignoreList":[]}
|
|
@@ -36,7 +36,18 @@ function createVirtualEntry(options) {
|
|
|
36
36
|
return `
|
|
37
37
|
${prependCode}
|
|
38
38
|
|
|
39
|
-
import { createApp } from 'one'
|
|
39
|
+
import { createApp, registerPreloadedRoute as _registerPreloadedRoute } from 'one'
|
|
40
|
+
|
|
41
|
+
// Export registerPreloadedRoute so preload files can import it from this bundle
|
|
42
|
+
// Named export that wraps the original function
|
|
43
|
+
export function registerPreloadedRoute(key, module) {
|
|
44
|
+
return _registerPreloadedRoute(key, module)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Also expose on window for debugging and to prevent tree-shaking
|
|
48
|
+
if (typeof window !== 'undefined') {
|
|
49
|
+
window.__oneRegisterPreloadedRoute = registerPreloadedRoute
|
|
50
|
+
}
|
|
40
51
|
|
|
41
52
|
// globbing ${JSON.stringify(routeGlobs)}
|
|
42
53
|
export default createApp({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","getSetupFileImport","environmentName","envVarMap","client","ssr","ios","android","envVar","createVirtualEntry","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","prependCode","environment","JSON","stringify","p","flags","prependCode1"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,mBAAA,QAA2B;AACpC,SAAAC,sBAAA,EAAAC,kBAAA,EAAAC,oCAAA,EAAAC,iCAAA;AAAA,SACEC,sBAAA,EAAAC,4BAAA,EAAAC,cAAA,EAAAC,oBAAA;AAAA,SACAC,mBAAAC,eAAA;EACA,IAAAC,SAAA;MACAC,MAAA;MAAAC,GACK;MAEPC,GAAA;MACEC,OAAA;IACA;IAAAC,MAAA,GAAAL,SAAA,CAAAD,eAAA;EACA,OAAAM,MAAA;AAAA,kBACAA,MAAA;AAAA,0CACKA,MAAA;AAEP;AAQE;AAPkB;AACR,SACHC,mBAAAC,OAAA;EAAA,IACLC,iCAAK;IAAAC,eAAA;IAAAC,UAAA,IACL,IAAAH,OAAS,CAAAI,IAAA,IAAApB,kBAAA,IAGc,MAAAkB,eAAe,GAAAF,OAAA,CAAAK,MAAA,cAAAH,eAAA,gBAAAD,iCAAA,GAAAC,eAAA,CAAAI,iBAAA,cAAAL,iCAAA,uBAAAA,iCAAA,CAAAM,GAAA,WAAAC,OAAA;MACxC,OAAK,KAEER,OAAA,CAAAI,IAAA,IAAAI,OAAA;IAAA,WACe;IAAAC,aAAA,OAAAT,OAAA,CAAAI,IAAA,IAAArB,sBACwB;EAAA;IAJ1B2B,IAAA;IAOtBC,OAAA;IAEOC,SAASA,CAAAC,EAAA;MAOd,IAAMA,EAAA,KAAAxB,cAAa,EACb,OAAAF,sBAAgB;MACpB,IAAI0B,EAAA,KAAQvB,oBAAQ,EAEhB,OAAAF,4BAAoC;IAE1C;IACE0B,KAAAD,EAAM;MACN,IAAAA,EAAA,KAAS1B,sBAAA;QAET,IAAA4B,WAAc,GAAAjC,mBAAA,MAAAkC,WAAA,UACR;QACFzB,kBAAO,MAAAyB,WAAA,CAAAN,IAAA,EAET;QACE,OAAO;AAAA,EAAAK,WAEX;AAAA;AAGE;AAIE;AAAO,
|
|
1
|
+
{"version":3,"names":["isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","getSetupFileImport","environmentName","envVarMap","client","ssr","ios","android","envVar","createVirtualEntry","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","prependCode","environment","JSON","stringify","p","flags","prependCode1"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,mBAAA,QAA2B;AACpC,SAAAC,sBAAA,EAAAC,kBAAA,EAAAC,oCAAA,EAAAC,iCAAA;AAAA,SACEC,sBAAA,EAAAC,4BAAA,EAAAC,cAAA,EAAAC,oBAAA;AAAA,SACAC,mBAAAC,eAAA;EACA,IAAAC,SAAA;MACAC,MAAA;MAAAC,GACK;MAEPC,GAAA;MACEC,OAAA;IACA;IAAAC,MAAA,GAAAL,SAAA,CAAAD,eAAA;EACA,OAAAM,MAAA;AAAA,kBACAA,MAAA;AAAA,0CACKA,MAAA;AAEP;AAQE;AAPkB;AACR,SACHC,mBAAAC,OAAA;EAAA,IACLC,iCAAK;IAAAC,eAAA;IAAAC,UAAA,IACL,IAAAH,OAAS,CAAAI,IAAA,IAAApB,kBAAA,IAGc,MAAAkB,eAAe,GAAAF,OAAA,CAAAK,MAAA,cAAAH,eAAA,gBAAAD,iCAAA,GAAAC,eAAA,CAAAI,iBAAA,cAAAL,iCAAA,uBAAAA,iCAAA,CAAAM,GAAA,WAAAC,OAAA;MACxC,OAAK,KAEER,OAAA,CAAAI,IAAA,IAAAI,OAAA;IAAA,WACe;IAAAC,aAAA,OAAAT,OAAA,CAAAI,IAAA,IAAArB,sBACwB;EAAA;IAJ1B2B,IAAA;IAOtBC,OAAA;IAEOC,SAASA,CAAAC,EAAA;MAOd,IAAMA,EAAA,KAAAxB,cAAa,EACb,OAAAF,sBAAgB;MACpB,IAAI0B,EAAA,KAAQvB,oBAAQ,EAEhB,OAAAF,4BAAoC;IAE1C;IACE0B,KAAAD,EAAM;MACN,IAAAA,EAAA,KAAS1B,sBAAA;QAET,IAAA4B,WAAc,GAAAjC,mBAAA,MAAAkC,WAAA,UACR;QACFzB,kBAAO,MAAAyB,WAAA,CAAAN,IAAA,EAET;QACE,OAAO;AAAA,EAAAK,WAEX;AAAA;AAGE;AAIE;AAAO;AACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAAE,IAAA,CAAAC,SAAA,CAAAf,UAAA;AAAA;AAAA,6BAAAc,IAAA,CAAAC,SAAA,KAAAf,UAAA,KAAAjB,iCAe2B,CAAAqB,GAAA,WAAAY,CAAA;UAAA,WAAAA,CAAA;QAAA,GAE8E;AAC1E,gBAC5BF,IAAA,CAAAC,SAAU,CAAAlB,OAAQ,CAAKI,IAAC;AAAA,WAAAa,IAAA,CAAAC,SAAA,CAAAlB,OAAA,CAAAoB,KAAA;AAAA;AAKlC;MAIE;MAHoB,IAAAP,EAAA,KAAAzB,4BAChB,EACA;QAEC,IAAAiC,YAAA,GAAAvC,mBAAA,MAAAkC,WAAA;QAAAzB,kBAAA,MAAAyB,WAAA,CAAAN,IAAA;QAI2B;AAAA,EAAAW,YAAA;AAEsG;AAClG;AACJ;AAAA,cAAAJ,IAAA,CAAAC,SAAA,CAAAf,UAAA;AAAA;AAIpC,6BACFc,IAAA,CAAAC,SAAA,EACF,GAAAf,UAAA,E","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.22-1765155190908",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -121,17 +121,17 @@
|
|
|
121
121
|
"@react-navigation/routers": "~7.5.1",
|
|
122
122
|
"@swc/core": "^1.14.0",
|
|
123
123
|
"@ungap/structured-clone": "^1.2.0",
|
|
124
|
-
"@vxrn/compiler": "1.2.
|
|
125
|
-
"@vxrn/resolve": "1.2.
|
|
126
|
-
"@vxrn/tslib-lite": "1.2.
|
|
127
|
-
"@vxrn/universal-color-scheme": "1.2.
|
|
128
|
-
"@vxrn/use-isomorphic-layout-effect": "1.2.
|
|
129
|
-
"@vxrn/vite-plugin-metro": "1.2.
|
|
124
|
+
"@vxrn/compiler": "1.2.22-1765155190908",
|
|
125
|
+
"@vxrn/resolve": "1.2.22-1765155190908",
|
|
126
|
+
"@vxrn/tslib-lite": "1.2.22-1765155190908",
|
|
127
|
+
"@vxrn/universal-color-scheme": "1.2.22-1765155190908",
|
|
128
|
+
"@vxrn/use-isomorphic-layout-effect": "1.2.22-1765155190908",
|
|
129
|
+
"@vxrn/vite-plugin-metro": "1.2.22-1765155190908",
|
|
130
130
|
"babel-dead-code-elimination": "^1.0.10",
|
|
131
131
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
132
132
|
"citty": "^0.1.6",
|
|
133
133
|
"core-js": "^3.38.1",
|
|
134
|
-
"create-vxrn": "1.2.
|
|
134
|
+
"create-vxrn": "1.2.22-1765155190908",
|
|
135
135
|
"escape-string-regexp": "^5.0.0",
|
|
136
136
|
"expo-linking": "~8.0.8",
|
|
137
137
|
"expo-modules-core": "~3.0.24",
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
"vite": "^7.1.12",
|
|
158
158
|
"vite-plugin-barrel": "^0.4.1",
|
|
159
159
|
"vite-tsconfig-paths": "^5.1.4",
|
|
160
|
-
"vxrn": "1.2.
|
|
160
|
+
"vxrn": "1.2.22-1765155190908",
|
|
161
161
|
"ws": "^8.18.0",
|
|
162
162
|
"xxhashjs": "^0.2.2"
|
|
163
163
|
},
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
"devDependencies": {
|
|
176
176
|
"@react-navigation/core": "^7.13.0",
|
|
177
177
|
"@react-navigation/native": "~7.1.19",
|
|
178
|
-
"@tamagui/build": "^1.
|
|
178
|
+
"@tamagui/build": "^1.139.1",
|
|
179
179
|
"@types/node": "^24.10.0",
|
|
180
180
|
"@types/react-dom": "^19.2.2",
|
|
181
181
|
"@types/xxhashjs": "^0.2.4",
|
package/src/cli/build.ts
CHANGED
|
@@ -333,6 +333,30 @@ export async function build(args: {
|
|
|
333
333
|
return [entry.file, ...collectImports(entry)]
|
|
334
334
|
})
|
|
335
335
|
|
|
336
|
+
// create mapping of route keys to bundle paths for hydration preloading
|
|
337
|
+
const routePreloads: Record<string, string> = {}
|
|
338
|
+
|
|
339
|
+
// add root layout
|
|
340
|
+
const rootLayoutKey = `${routerRoot}/_layout.tsx`
|
|
341
|
+
const rootLayoutEntry = vxrnOutput.clientManifest[rootLayoutKey]
|
|
342
|
+
if (rootLayoutEntry) {
|
|
343
|
+
routePreloads[`/${rootLayoutKey}`] = `/${rootLayoutEntry.file}`
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
// add all layouts for this route
|
|
347
|
+
if (foundRoute.layouts) {
|
|
348
|
+
for (const layout of foundRoute.layouts) {
|
|
349
|
+
const clientKey = `${routerRoot}${layout.contextKey.slice(1)}`
|
|
350
|
+
const entry = vxrnOutput.clientManifest[clientKey]
|
|
351
|
+
if (entry) {
|
|
352
|
+
routePreloads[`/${clientKey}`] = `/${entry.file}`
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
// add the page itself
|
|
358
|
+
routePreloads[`/${clientManifestKey}`] = `/${clientManifestEntry.file}`
|
|
359
|
+
|
|
336
360
|
const preloadSetupFilePreloads = (() => {
|
|
337
361
|
if (!oneOptions.setupFile) return []
|
|
338
362
|
|
|
@@ -443,7 +467,8 @@ export async function build(args: {
|
|
|
443
467
|
builtMiddlewares,
|
|
444
468
|
serverJsPath,
|
|
445
469
|
preloads,
|
|
446
|
-
allCSS
|
|
470
|
+
allCSS,
|
|
471
|
+
routePreloads
|
|
447
472
|
)
|
|
448
473
|
})
|
|
449
474
|
|
package/src/cli/buildPage.ts
CHANGED
|
@@ -21,7 +21,8 @@ export async function buildPage(
|
|
|
21
21
|
builtMiddlewares: Record<string, string>,
|
|
22
22
|
serverJsPath: string,
|
|
23
23
|
preloads: string[],
|
|
24
|
-
allCSS: string[]
|
|
24
|
+
allCSS: string[],
|
|
25
|
+
routePreloads: Record<string, string>
|
|
25
26
|
): Promise<One.RouteBuildInfo> {
|
|
26
27
|
const render = await getRender(serverEntry)
|
|
27
28
|
const htmlPath = `${path.endsWith('/') ? `${removeTrailingSlash(path)}/index` : path}.html`
|
|
@@ -34,12 +35,33 @@ export async function buildPage(
|
|
|
34
35
|
let loaderData = {}
|
|
35
36
|
|
|
36
37
|
try {
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
// generate preload file with route module registration
|
|
39
|
+
const routeImports: string[] = []
|
|
40
|
+
const routeRegistrations: string[] = []
|
|
41
|
+
let routeIndex = 0
|
|
42
|
+
|
|
43
|
+
for (const [routeKey, bundlePath] of Object.entries(routePreloads)) {
|
|
44
|
+
const varName = `_r${routeIndex++}`
|
|
45
|
+
routeImports.push(`import * as ${varName} from "${bundlePath}"`)
|
|
46
|
+
routeRegistrations.push(`registerPreloadedRoute("${routeKey}", ${varName})`)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Use window global for registration since ES module exports get tree-shaken
|
|
50
|
+
const registrationCalls = routeRegistrations.map((call) =>
|
|
51
|
+
call.replace('registerPreloadedRoute(', 'window.__oneRegisterPreloadedRoute(')
|
|
41
52
|
)
|
|
42
53
|
|
|
54
|
+
const preloadContent = [
|
|
55
|
+
// import all route modules
|
|
56
|
+
...routeImports,
|
|
57
|
+
// static imports for cache warming (original behavior)
|
|
58
|
+
...preloads.map((preload) => `import "${preload}"`),
|
|
59
|
+
// register all route modules using window global
|
|
60
|
+
...registrationCalls,
|
|
61
|
+
].join('\n')
|
|
62
|
+
|
|
63
|
+
await FSExtra.writeFile(join(clientDir, preloadPath), preloadContent)
|
|
64
|
+
|
|
43
65
|
const exported = await import(toAbsolute(serverJsPath))
|
|
44
66
|
|
|
45
67
|
if (exported.loader) {
|
|
@@ -73,6 +95,7 @@ if (typeof document === 'undefined') globalThis.document = {}
|
|
|
73
95
|
loaderData,
|
|
74
96
|
css: allCSS,
|
|
75
97
|
mode: 'ssg',
|
|
98
|
+
routePreloads,
|
|
76
99
|
})
|
|
77
100
|
await outputFile(htmlOutPath, html)
|
|
78
101
|
} else if (foundRoute.type === 'spa') {
|
package/src/createApp.tsx
CHANGED
|
@@ -6,6 +6,7 @@ import { AppRegistry } from 'react-native'
|
|
|
6
6
|
import { resolveClientLoader } from './clientLoaderResolver'
|
|
7
7
|
import { Root } from './Root'
|
|
8
8
|
import { render } from './render'
|
|
9
|
+
import { registerPreloadedRoute } from './router/useViteRoutes'
|
|
9
10
|
import { renderToString } from './server-render'
|
|
10
11
|
import type { RenderAppProps } from './types'
|
|
11
12
|
import { getServerHeadInsertions } from './useServerHeadInsertion'
|
|
@@ -25,7 +26,7 @@ export function createApp(options: CreateAppProps) {
|
|
|
25
26
|
return {
|
|
26
27
|
options,
|
|
27
28
|
render: async (props: RenderAppProps) => {
|
|
28
|
-
let { loaderData, loaderProps, css, mode, loaderServerData } = props
|
|
29
|
+
let { loaderData, loaderProps, css, mode, loaderServerData, routePreloads } = props
|
|
29
30
|
|
|
30
31
|
setServerContext({
|
|
31
32
|
postRenderData: loaderServerData,
|
|
@@ -33,6 +34,7 @@ export function createApp(options: CreateAppProps) {
|
|
|
33
34
|
loaderProps,
|
|
34
35
|
mode,
|
|
35
36
|
css,
|
|
37
|
+
routePreloads,
|
|
36
38
|
})
|
|
37
39
|
|
|
38
40
|
let renderId: string | undefined
|
|
@@ -116,29 +118,35 @@ export function createApp(options: CreateAppProps) {
|
|
|
116
118
|
}
|
|
117
119
|
}
|
|
118
120
|
|
|
119
|
-
|
|
120
|
-
const
|
|
121
|
+
const serverContext = getServerContext() || {}
|
|
122
|
+
const routePreloads = serverContext.routePreloads
|
|
121
123
|
|
|
122
|
-
|
|
124
|
+
// preload routes using build-time mapping (production SSG)
|
|
125
|
+
// for SPA/dev mode, fall back to importing root layout directly
|
|
126
|
+
const preloadPromises = routePreloads
|
|
127
|
+
? Object.entries(routePreloads).map(async ([routeKey, bundlePath]) => {
|
|
128
|
+
const mod = await import(/* @vite-ignore */ bundlePath)
|
|
129
|
+
registerPreloadedRoute(routeKey, mod)
|
|
130
|
+
return mod
|
|
131
|
+
})
|
|
132
|
+
: [options.routes[`/${options.routerRoot}/_layout.tsx`]?.()]
|
|
133
|
+
|
|
134
|
+
return Promise.all(preloadPromises)
|
|
123
135
|
.then(() => {
|
|
124
|
-
resolveClientLoader(
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
})
|
|
137
|
-
.catch((err) => {
|
|
138
|
-
console.error(`Error running client loader resolver "onClientLoaderResolve":`, err)
|
|
139
|
-
})
|
|
136
|
+
return resolveClientLoader(serverContext)
|
|
137
|
+
})
|
|
138
|
+
.then(() => {
|
|
139
|
+
render(
|
|
140
|
+
<Root
|
|
141
|
+
isClient
|
|
142
|
+
flags={options.flags}
|
|
143
|
+
routes={options.routes}
|
|
144
|
+
routerRoot={options.routerRoot}
|
|
145
|
+
path={window.location.href}
|
|
146
|
+
/>
|
|
147
|
+
)
|
|
140
148
|
})
|
|
141
149
|
.catch((err) => {
|
|
142
|
-
console.error(`Error
|
|
150
|
+
console.error(`Error during client initialization:`, err)
|
|
143
151
|
})
|
|
144
152
|
}
|
package/src/fork/useLinking.ts
CHANGED
|
@@ -157,9 +157,18 @@ export function useLinking(
|
|
|
157
157
|
(state: ResultState) => {
|
|
158
158
|
const navigation = ref.current
|
|
159
159
|
const rootState = navigation?.getRootState()
|
|
160
|
+
// @modified - start
|
|
161
|
+
// Fix for back/forward button navigation: if routeNames is undefined (stale state),
|
|
162
|
+
// don't reject the navigation. This can happen during browser back/forward.
|
|
163
|
+
// See: https://github.com/expo/expo/pull/37747
|
|
164
|
+
const routeNames = rootState?.routeNames
|
|
165
|
+
if (!routeNames) {
|
|
166
|
+
return false // Don't reject navigation if we can't validate
|
|
167
|
+
}
|
|
168
|
+
// @modified - end
|
|
160
169
|
// Make sure that the routes in the state exist in the root navigator
|
|
161
170
|
// Otherwise there's an error in the linking configuration
|
|
162
|
-
return state?.routes.some((r) => !
|
|
171
|
+
return state?.routes.some((r) => !routeNames.includes(r.name))
|
|
163
172
|
},
|
|
164
173
|
[ref]
|
|
165
174
|
)
|
package/src/index.ts
CHANGED
|
@@ -66,6 +66,7 @@ export { createRoute, route } from './router/createRoute'
|
|
|
66
66
|
export { router } from './router/imperative-api'
|
|
67
67
|
export * as routerStore from './router/router'
|
|
68
68
|
export { useNavigation } from './router/useNavigation'
|
|
69
|
+
export { registerPreloadedRoute } from './router/useViteRoutes'
|
|
69
70
|
export type { Endpoint, LoaderProps } from './types'
|
|
70
71
|
// React Navigation
|
|
71
72
|
export { useFocusEffect } from './useFocusEffect'
|
package/src/router/router.ts
CHANGED
|
@@ -24,6 +24,7 @@ import { getLinking, resetLinking, setupLinking } from './linkingConfig'
|
|
|
24
24
|
import type { RouteNode } from './Route'
|
|
25
25
|
import { sortRoutes } from './sortRoutes'
|
|
26
26
|
import { getQualifiedRouteComponent } from './useScreens'
|
|
27
|
+
import { preloadRouteModules } from './useViteRoutes'
|
|
27
28
|
import { getNavigateAction } from './utils/getNavigateAction'
|
|
28
29
|
|
|
29
30
|
// Module-scoped variables
|
|
@@ -367,38 +368,49 @@ export function cleanup() {
|
|
|
367
368
|
}
|
|
368
369
|
|
|
369
370
|
// TODO
|
|
370
|
-
export const preloadingLoader = {}
|
|
371
|
-
|
|
372
|
-
function
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
console.error(`Error preloading loader: ${err}`)
|
|
371
|
+
export const preloadingLoader: Record<string, Promise<any> | undefined> = {}
|
|
372
|
+
|
|
373
|
+
async function doPreload(href: string) {
|
|
374
|
+
const preloadPath = getPreloadPath(href)
|
|
375
|
+
const loaderPath = getLoaderPath(href)
|
|
376
|
+
try {
|
|
377
|
+
const [_preload, loader] = await Promise.all([
|
|
378
|
+
dynamicImport(preloadPath),
|
|
379
|
+
dynamicImport(loaderPath),
|
|
380
|
+
preloadRouteModules(href),
|
|
381
|
+
])
|
|
382
|
+
|
|
383
|
+
if (!loader?.loader) {
|
|
384
384
|
return null
|
|
385
385
|
}
|
|
386
|
+
|
|
387
|
+
const result = await loader.loader()
|
|
388
|
+
return result ?? null
|
|
389
|
+
} catch (err) {
|
|
390
|
+
console.error(`[one] preload error for ${href}:`, err)
|
|
391
|
+
return null
|
|
386
392
|
}
|
|
387
393
|
}
|
|
388
394
|
|
|
389
|
-
|
|
395
|
+
// Store resolved preload data separately from promises
|
|
396
|
+
export const preloadedLoaderData: Record<string, any> = {}
|
|
397
|
+
|
|
398
|
+
export function preloadRoute(href: string): Promise<any> | undefined {
|
|
390
399
|
if (process.env.TAMAGUI_TARGET === 'native') {
|
|
391
|
-
// not enabled for now
|
|
392
400
|
return
|
|
393
401
|
}
|
|
394
402
|
if (process.env.NODE_ENV === 'development') {
|
|
395
403
|
return
|
|
396
404
|
}
|
|
397
405
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
406
|
+
if (!preloadingLoader[href]) {
|
|
407
|
+
preloadingLoader[href] = doPreload(href).then((data) => {
|
|
408
|
+
// Store the resolved data for synchronous access
|
|
409
|
+
preloadedLoaderData[href] = data
|
|
410
|
+
return data
|
|
411
|
+
})
|
|
401
412
|
}
|
|
413
|
+
return preloadingLoader[href]
|
|
402
414
|
}
|
|
403
415
|
|
|
404
416
|
export async function linkTo(href: string, event?: string, options?: OneRouter.LinkToOptions) {
|
|
@@ -477,7 +489,8 @@ export async function linkTo(href: string, event?: string, options?: OneRouter.L
|
|
|
477
489
|
|
|
478
490
|
setLoadingState('loading')
|
|
479
491
|
|
|
480
|
-
|
|
492
|
+
// await preload on web to ensure route modules are loaded before navigating
|
|
493
|
+
await preloadRoute(href)
|
|
481
494
|
|
|
482
495
|
const rootState = navigationRef.getRootState()
|
|
483
496
|
|