one 1.25.13 → 1.25.15
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 +29 -25
- package/dist/cjs/cli/build.native.js +262 -219
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.cjs +7 -7
- package/dist/cjs/cli/buildPage.native.js +7 -7
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/cli/buildPageWorker.cjs +1 -1
- package/dist/cjs/cli/buildPageWorker.native.js +1 -1
- package/dist/cjs/cli/buildPageWorker.native.js.map +1 -1
- package/dist/cjs/cli/serverRouteModules.cjs +47 -0
- package/dist/cjs/cli/serverRouteModules.native.js +52 -0
- package/dist/cjs/cli/serverRouteModules.native.js.map +1 -0
- package/dist/cjs/cli/workerPool.native.js.map +1 -1
- package/dist/cjs/createApp.cjs +3 -0
- package/dist/cjs/headless-server.native.js.map +1 -1
- package/dist/cjs/headless.cjs +4 -0
- package/dist/cjs/headless.native.js +4 -0
- package/dist/cjs/headless.native.js.map +1 -1
- package/dist/cjs/router/diagnoseRouteLoadFailure.native.js.map +1 -1
- package/dist/cjs/router/useViteRoutes.cjs +9 -1
- package/dist/cjs/router/useViteRoutes.native.js +9 -1
- package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
- package/dist/cjs/server/oneServe.cjs +23 -4
- package/dist/cjs/server/oneServe.native.js +25 -6
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/server/routeExportsFromEntry.cjs +47 -0
- package/dist/cjs/server/routeExportsFromEntry.native.js +52 -0
- package/dist/cjs/server/routeExportsFromEntry.native.js.map +1 -0
- package/dist/cjs/server/workerHandler.cjs +19 -6
- package/dist/cjs/server/workerHandler.native.js +20 -6
- package/dist/cjs/server/workerHandler.native.js.map +1 -1
- package/dist/cjs/server/workerHandler.test.cjs +24 -16
- package/dist/cjs/server/workerHandler.test.native.js +27 -16
- package/dist/cjs/server/workerHandler.test.native.js.map +1 -1
- package/dist/cjs/views/ScrollBehavior.native.js.map +1 -1
- package/dist/cjs/vite/cloudflareWranglerConfig.native.js.map +1 -1
- package/dist/cjs/vite/one.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +7 -6
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +9 -6
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/workerdDevPlugin.cjs +0 -13
- package/dist/cjs/vite/plugins/workerdDevPlugin.native.js +26 -58
- package/dist/cjs/vite/plugins/workerdDevPlugin.native.js.map +1 -1
- package/dist/cjs/vite/replaceLoader.cjs +6 -3
- package/dist/cjs/vite/replaceLoader.native.js +8 -3
- package/dist/cjs/vite/replaceLoader.native.js.map +1 -1
- package/dist/esm/cli/build.mjs +30 -26
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +263 -220
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli/buildPage.mjs +7 -7
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +7 -7
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/cli/buildPageWorker.mjs +1 -1
- package/dist/esm/cli/buildPageWorker.mjs.map +1 -1
- package/dist/esm/cli/buildPageWorker.native.js +1 -1
- package/dist/esm/cli/buildPageWorker.native.js.map +1 -1
- package/dist/esm/cli/serverRouteModules.mjs +22 -0
- package/dist/esm/cli/serverRouteModules.mjs.map +1 -0
- package/dist/esm/cli/serverRouteModules.native.js +24 -0
- package/dist/esm/cli/serverRouteModules.native.js.map +1 -0
- package/dist/esm/cli/workerPool.mjs.map +1 -1
- package/dist/esm/cli/workerPool.native.js.map +1 -1
- package/dist/esm/createApp.mjs +4 -1
- package/dist/esm/createApp.mjs.map +1 -1
- package/dist/esm/fork/useLinking.native.test.mjs +1 -1
- package/dist/esm/getURL.native.test.mjs +1 -1
- package/dist/esm/headless-server.mjs.map +1 -1
- package/dist/esm/headless-server.native.js.map +1 -1
- package/dist/esm/headless.mjs +4 -0
- package/dist/esm/headless.mjs.map +1 -1
- package/dist/esm/headless.native.js +4 -0
- package/dist/esm/headless.native.js.map +1 -1
- package/dist/esm/router/diagnoseRouteLoadFailure.mjs.map +1 -1
- package/dist/esm/router/diagnoseRouteLoadFailure.native.js.map +1 -1
- package/dist/esm/router/hmrImport.native.test.mjs +1 -1
- package/dist/esm/router/routeHmr.native.test.mjs +1 -1
- package/dist/esm/router/routeHmr.native.test.mjs.map +1 -1
- package/dist/esm/router/useViteRoutes.mjs +9 -1
- package/dist/esm/router/useViteRoutes.mjs.map +1 -1
- package/dist/esm/router/useViteRoutes.native.js +9 -1
- package/dist/esm/router/useViteRoutes.native.js.map +1 -1
- package/dist/esm/server/oneServe.mjs +23 -4
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js +25 -6
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/server/routeExportsFromEntry.mjs +21 -0
- package/dist/esm/server/routeExportsFromEntry.mjs.map +1 -0
- package/dist/esm/server/routeExportsFromEntry.native.js +23 -0
- package/dist/esm/server/routeExportsFromEntry.native.js.map +1 -0
- package/dist/esm/server/workerHandler.mjs +19 -6
- package/dist/esm/server/workerHandler.mjs.map +1 -1
- package/dist/esm/server/workerHandler.native.js +20 -6
- package/dist/esm/server/workerHandler.native.js.map +1 -1
- package/dist/esm/server/workerHandler.test.mjs +24 -16
- package/dist/esm/server/workerHandler.test.mjs.map +1 -1
- package/dist/esm/server/workerHandler.test.native.js +27 -16
- package/dist/esm/server/workerHandler.test.native.js.map +1 -1
- package/dist/esm/views/ScrollBehavior.mjs.map +1 -1
- package/dist/esm/views/ScrollBehavior.native.js.map +1 -1
- package/dist/esm/vite/cloudflareWranglerConfig.mjs.map +1 -1
- package/dist/esm/vite/cloudflareWranglerConfig.native.js.map +1 -1
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +7 -6
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +9 -6
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/workerdDevPlugin.mjs +0 -13
- package/dist/esm/vite/plugins/workerdDevPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/workerdDevPlugin.native.js +26 -58
- package/dist/esm/vite/plugins/workerdDevPlugin.native.js.map +1 -1
- package/dist/esm/vite/replaceLoader.mjs +6 -3
- package/dist/esm/vite/replaceLoader.mjs.map +1 -1
- package/dist/esm/vite/replaceLoader.native.js +8 -3
- package/dist/esm/vite/replaceLoader.native.js.map +1 -1
- package/package.json +9 -9
- package/src/cli/build.ts +41 -32
- package/src/cli/buildPage.ts +9 -7
- package/src/cli/buildPageWorker.ts +1 -0
- package/src/cli/serverRouteModules.ts +33 -0
- package/src/cli/workerPool.ts +1 -0
- package/src/createApp.tsx +5 -1
- package/src/headless-server.ts +0 -1
- package/src/headless.tsx +5 -0
- package/src/router/diagnoseRouteLoadFailure.ts +3 -1
- package/src/router/useViteRoutes.tsx +9 -1
- package/src/server/oneServe.ts +40 -16
- package/src/server/routeExportsFromEntry.ts +59 -0
- package/src/server/workerHandler.test.ts +21 -16
- package/src/server/workerHandler.ts +25 -7
- package/src/views/ScrollBehavior.tsx +5 -1
- package/src/vite/cloudflareWranglerConfig.ts +8 -4
- package/src/vite/one.ts +4 -1
- package/src/vite/plugins/virtualEntryPlugin.ts +10 -8
- package/src/vite/plugins/workerdDevPlugin.ts +6 -16
- package/src/vite/replaceLoader.ts +10 -2
- 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/cli/serverRouteModules.d.ts +2 -0
- package/types/cli/serverRouteModules.d.ts.map +1 -0
- package/types/cli/workerPool.d.ts +1 -0
- package/types/cli/workerPool.d.ts.map +1 -1
- package/types/createApp.d.ts.map +1 -1
- package/types/headless-server.d.ts +0 -1
- package/types/headless-server.d.ts.map +1 -1
- package/types/headless.d.ts.map +1 -1
- package/types/router/diagnoseRouteLoadFailure.d.ts.map +1 -1
- package/types/router/useViteRoutes.d.ts.map +1 -1
- package/types/server/oneServe.d.ts +1 -1
- package/types/server/oneServe.d.ts.map +1 -1
- package/types/server/routeExportsFromEntry.d.ts +29 -0
- package/types/server/routeExportsFromEntry.d.ts.map +1 -0
- package/types/server/workerHandler.d.ts +1 -1
- package/types/server/workerHandler.d.ts.map +1 -1
- package/types/views/ScrollBehavior.d.ts.map +1 -1
- package/types/vite/cloudflareWranglerConfig.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
- package/types/vite/plugins/workerdDevPlugin.d.ts.map +1 -1
- package/types/vite/replaceLoader.d.ts +2 -1
- package/types/vite/replaceLoader.d.ts.map +1 -1
|
@@ -98,29 +98,23 @@ function generateWorkerdDevEntryModule(args) {
|
|
|
98
98
|
if (!manifest) {
|
|
99
99
|
throw new Error("[one] workerd dev: no routes manifest");
|
|
100
100
|
}
|
|
101
|
-
var pageImports = /* @__PURE__ */new Map();
|
|
102
101
|
var apiImports = /* @__PURE__ */new Map();
|
|
103
102
|
var middlewareImports = /* @__PURE__ */new Map();
|
|
104
103
|
var routeToBuildInfo = {};
|
|
105
|
-
var registerPage = function (routeFile) {
|
|
106
|
-
if (!routeFile) return;
|
|
107
|
-
if (pageImports.has(routeFile)) return;
|
|
108
|
-
pageImports.set(routeFile, toImportHref(root, routerRoot, routeFile));
|
|
109
|
-
};
|
|
110
104
|
var _iteratorNormalCompletion = true,
|
|
111
105
|
_didIteratorError = false,
|
|
112
106
|
_iteratorError = void 0;
|
|
113
107
|
try {
|
|
114
108
|
for (var _iterator = manifest.pageRoutes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
115
109
|
var route = _step.value;
|
|
116
|
-
registerPage(route.file);
|
|
117
110
|
var _iteratorNormalCompletion1 = true,
|
|
118
111
|
_didIteratorError1 = false,
|
|
119
112
|
_iteratorError1 = void 0;
|
|
120
113
|
try {
|
|
121
|
-
for (var _iterator1 = (route.
|
|
122
|
-
var
|
|
123
|
-
|
|
114
|
+
for (var _iterator1 = (route.middlewares || [])[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
115
|
+
var middleware = _step1.value;
|
|
116
|
+
if (!middleware.contextKey || middlewareImports.has(middleware.contextKey)) continue;
|
|
117
|
+
middlewareImports.set(middleware.contextKey, toImportHref(root, routerRoot, middleware.contextKey));
|
|
124
118
|
}
|
|
125
119
|
} catch (err) {
|
|
126
120
|
_didIteratorError1 = true;
|
|
@@ -136,29 +130,6 @@ function generateWorkerdDevEntryModule(args) {
|
|
|
136
130
|
}
|
|
137
131
|
}
|
|
138
132
|
}
|
|
139
|
-
var _iteratorNormalCompletion2 = true,
|
|
140
|
-
_didIteratorError2 = false,
|
|
141
|
-
_iteratorError2 = void 0;
|
|
142
|
-
try {
|
|
143
|
-
for (var _iterator2 = (route.middlewares || [])[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
144
|
-
var middleware = _step2.value;
|
|
145
|
-
if (!middleware.contextKey || middlewareImports.has(middleware.contextKey)) continue;
|
|
146
|
-
middlewareImports.set(middleware.contextKey, toImportHref(root, routerRoot, middleware.contextKey));
|
|
147
|
-
}
|
|
148
|
-
} catch (err) {
|
|
149
|
-
_didIteratorError2 = true;
|
|
150
|
-
_iteratorError2 = err;
|
|
151
|
-
} finally {
|
|
152
|
-
try {
|
|
153
|
-
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
154
|
-
_iterator2.return();
|
|
155
|
-
}
|
|
156
|
-
} finally {
|
|
157
|
-
if (_didIteratorError2) {
|
|
158
|
-
throw _iteratorError2;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
133
|
if (route.file) {
|
|
163
134
|
routeToBuildInfo[route.file] = stubRouteBuildInfo(route, preloads);
|
|
164
135
|
}
|
|
@@ -177,50 +148,50 @@ function generateWorkerdDevEntryModule(args) {
|
|
|
177
148
|
}
|
|
178
149
|
}
|
|
179
150
|
}
|
|
180
|
-
var
|
|
181
|
-
|
|
182
|
-
|
|
151
|
+
var _iteratorNormalCompletion2 = true,
|
|
152
|
+
_didIteratorError2 = false,
|
|
153
|
+
_iteratorError2 = void 0;
|
|
183
154
|
try {
|
|
184
|
-
for (var
|
|
185
|
-
var route1 =
|
|
155
|
+
for (var _iterator2 = manifest.apiRoutes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
156
|
+
var route1 = _step2.value;
|
|
186
157
|
if (route1.file) {
|
|
187
158
|
apiImports.set(route1.page, toImportHref(root, routerRoot, route1.file));
|
|
188
159
|
}
|
|
189
|
-
var
|
|
190
|
-
|
|
191
|
-
|
|
160
|
+
var _iteratorNormalCompletion3 = true,
|
|
161
|
+
_didIteratorError3 = false,
|
|
162
|
+
_iteratorError3 = void 0;
|
|
192
163
|
try {
|
|
193
|
-
for (var
|
|
194
|
-
var middleware1 =
|
|
164
|
+
for (var _iterator3 = (route1.middlewares || [])[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
|
165
|
+
var middleware1 = _step3.value;
|
|
195
166
|
if (!middleware1.contextKey || middlewareImports.has(middleware1.contextKey)) continue;
|
|
196
167
|
middlewareImports.set(middleware1.contextKey, toImportHref(root, routerRoot, middleware1.contextKey));
|
|
197
168
|
}
|
|
198
169
|
} catch (err) {
|
|
199
|
-
|
|
200
|
-
|
|
170
|
+
_didIteratorError3 = true;
|
|
171
|
+
_iteratorError3 = err;
|
|
201
172
|
} finally {
|
|
202
173
|
try {
|
|
203
|
-
if (!
|
|
204
|
-
|
|
174
|
+
if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
|
|
175
|
+
_iterator3.return();
|
|
205
176
|
}
|
|
206
177
|
} finally {
|
|
207
|
-
if (
|
|
208
|
-
throw
|
|
178
|
+
if (_didIteratorError3) {
|
|
179
|
+
throw _iteratorError3;
|
|
209
180
|
}
|
|
210
181
|
}
|
|
211
182
|
}
|
|
212
183
|
}
|
|
213
184
|
} catch (err) {
|
|
214
|
-
|
|
215
|
-
|
|
185
|
+
_didIteratorError2 = true;
|
|
186
|
+
_iteratorError2 = err;
|
|
216
187
|
} finally {
|
|
217
188
|
try {
|
|
218
|
-
if (!
|
|
219
|
-
|
|
189
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
190
|
+
_iterator2.return();
|
|
220
191
|
}
|
|
221
192
|
} finally {
|
|
222
|
-
if (
|
|
223
|
-
throw
|
|
193
|
+
if (_didIteratorError2) {
|
|
194
|
+
throw _iteratorError2;
|
|
224
195
|
}
|
|
225
196
|
}
|
|
226
197
|
}
|
|
@@ -261,9 +232,6 @@ import { serve, setFetchStaticHtml } from 'one/serve-worker'
|
|
|
261
232
|
|
|
262
233
|
const lazyRoutes = {
|
|
263
234
|
serverEntry: () => import(${JSON.stringify(virtualEntryId)}),
|
|
264
|
-
pages: {
|
|
265
|
-
${serializeImportMap([...pageImports])}
|
|
266
|
-
},
|
|
267
235
|
api: {
|
|
268
236
|
${serializeImportMap([...apiImports])}
|
|
269
237
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mkdirSync","writeFileSync","join","resolve","pathToFileURL","resolvePath","cloudflare","getPlatformEnvDefine","exactRegex","CACHE_KEY","virtalEntryIdClient","virtualEntryId","getManifest","getRouterRootFromOneOptions","createCloudflareWranglerConfig","getCloudflareProjectNameSync","loadUserWranglerConfigSync","shouldEnableWorkerdDev","workerdDevEntryId","resolvedWorkerdDevEntryId","WORKERD_DEV_DIR","serveOnly","plugin","existing","apply","config","env","command","toImportHref","root","routerRoot","routeFile","rel","replace","href","serializeImportMap","entries","map","param","key","JSON","stringify","stripRouteForWorker","route","layouts","middlewares","rest","type","layout","contextKey","middleware","stubRouteBuildInfo","preloads","_ref","_route_middlewares","pageType","path","page","file","preloadPath","cssPreloadPath","loaderPath","cleanPath","urlCleanPath","htmlPath","clientJsPath","serverJsPath","params","css","layoutCSS","generateWorkerdDevEntryModule","args","_options_router","options","routePaths","manifest","ignoredRouteFiles","router","Error","
|
|
1
|
+
{"version":3,"names":["mkdirSync","writeFileSync","join","resolve","pathToFileURL","resolvePath","cloudflare","getPlatformEnvDefine","exactRegex","CACHE_KEY","virtalEntryIdClient","virtualEntryId","getManifest","getRouterRootFromOneOptions","createCloudflareWranglerConfig","getCloudflareProjectNameSync","loadUserWranglerConfigSync","shouldEnableWorkerdDev","workerdDevEntryId","resolvedWorkerdDevEntryId","WORKERD_DEV_DIR","serveOnly","plugin","existing","apply","config","env","command","toImportHref","root","routerRoot","routeFile","rel","replace","href","serializeImportMap","entries","map","param","key","JSON","stringify","stripRouteForWorker","route","layouts","middlewares","rest","type","layout","contextKey","middleware","stubRouteBuildInfo","preloads","_ref","_route_middlewares","pageType","path","page","file","preloadPath","cssPreloadPath","loaderPath","cleanPath","urlCleanPath","htmlPath","clientJsPath","serverJsPath","params","css","layoutCSS","generateWorkerdDevEntryModule","args","_options_router","options","routePaths","manifest","ignoredRouteFiles","router","Error","apiImports","Map","middlewareImports","routeToBuildInfo","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","pageRoutes","Symbol","iterator","_step","next","done","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","has","set","err","return","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","apiRoutes","_step2","route1","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","middleware1","buildInfo","constants","oneOptions","pathToRoute","routeMap","allRoutes","Object","fromEntries","preload","cssPreloads","loaders","spaPreloadScripts","createWorkerdDevPlugins","routeIndex","_options_web","_options_web1","web","deploy","cacheDir","wranglerInputPath","workerEntryPath","recursive","userWranglerConfig","projectName","wranglerInputConfig","main","experimentalBundledDev","empty","rnWebPkg","rnWeb","safeArea","preparePlugin","name","enforce","environments","worker","define"],"sources":["../../../../src/vite/plugins/workerdDevPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
const routeIdReturnRegex = /return\s*["'`]\.\/[^"'`]+["'`]/;
|
|
2
|
+
const routeIdReturnRegexFor = routeId => new RegExp(`return\\s*["'\`]${routeId.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}["'\`]`);
|
|
2
3
|
function replaceLoader({
|
|
3
4
|
code,
|
|
4
|
-
loaderData
|
|
5
|
+
loaderData,
|
|
6
|
+
routeId
|
|
5
7
|
}) {
|
|
6
8
|
const stringifiedData = JSON.stringify(loaderData);
|
|
7
9
|
const safeData = stringifiedData.replace(/\$/g, "$$$$");
|
|
@@ -13,8 +15,9 @@ function replaceLoader({
|
|
|
13
15
|
// but if its null then it becomes returnnull
|
|
14
16
|
" " + safeData);
|
|
15
17
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
const stubRegex = routeId ? routeIdReturnRegexFor(routeId) : routeIdReturnRegex;
|
|
19
|
+
if (stubRegex.test(code)) {
|
|
20
|
+
return code.replace(stubRegex, "return " + safeData);
|
|
18
21
|
}
|
|
19
22
|
return code + `
|
|
20
23
|
export const loader = () => (${stringifiedData})`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["routeIdReturnRegex","replaceLoader","code","loaderData","stringifiedData","JSON","stringify","safeData","
|
|
1
|
+
{"version":3,"names":["routeIdReturnRegex","routeIdReturnRegexFor","routeId","RegExp","replace","replaceLoader","code","loaderData","stringifiedData","JSON","stringify","safeData","out","includes","stubRegex","test"],"sources":["../../../src/vite/replaceLoader.ts"],"sourcesContent":[null],"mappings":"AAIA,MAAMA,kBAAA,GAAqB;AAI3B,MAAMC,qBAAA,GAAyBC,OAAA,IAC7B,IAAIC,MAAA,CAAO,mBAAmBD,OAAA,CAAQE,OAAA,CAAQ,uBAAuB,MAAM,CAAC,QAAQ;AAE/E,SAASC,cAAc;EAC5BC,IAAA;EACAC,UAAA;EACAL;AACF,GAIG;EACD,MAAMM,eAAA,GAAkBC,IAAA,CAAKC,SAAA,CAAUH,UAAU;EACjD,MAAMI,QAAA,GAAWH,eAAA,CAAgBJ,OAAA,CAAQ,OAAO,MAAM;EAEtD,MAAMQ,GAAA,IAAO,MAAM;IAEjB,IAAIN,IAAA,CAAKO,QAAA,CAAS,kBAAkB,GAAG;MACrC,OAAOP,IAAA,CAAKF,OAAA,CACV;MAAA;MAAA;MAAA;MAIA,MAAMO,QACR;IACF;IAIA,MAAMG,SAAA,GAAYZ,OAAA,GAAUD,qBAAA,CAAsBC,OAAO,IAAIF,kBAAA;IAC7D,IAAIc,SAAA,CAAUC,IAAA,CAAKT,IAAI,GAAG;MACxB,OAAOA,IAAA,CAAKF,OAAA,CAAQU,SAAA,EAAW,YAAYH,QAAQ;IACrD;IAEA,OAAOL,IAAA,GAAO;AAAA,+BAAkCE,eAAe;EACjE,GAAG;EAEH,OAAOI,GAAA;AACT","ignoreList":[]}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
var routeIdReturnRegex = /return\s*["'`]\.\/[^"'`]+["'`]/;
|
|
2
|
+
var routeIdReturnRegexFor = function (routeId) {
|
|
3
|
+
return new RegExp(`return\\s*["'\`]${routeId.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}["'\`]`);
|
|
4
|
+
};
|
|
2
5
|
function replaceLoader(param) {
|
|
3
6
|
var {
|
|
4
7
|
code,
|
|
5
|
-
loaderData
|
|
8
|
+
loaderData,
|
|
9
|
+
routeId
|
|
6
10
|
} = param;
|
|
7
11
|
var stringifiedData = JSON.stringify(loaderData);
|
|
8
12
|
var safeData = stringifiedData.replace(/\$/g, "$$$$");
|
|
@@ -14,8 +18,9 @@ function replaceLoader(param) {
|
|
|
14
18
|
// but if its null then it becomes returnnull
|
|
15
19
|
" " + safeData);
|
|
16
20
|
}
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
var stubRegex = routeId ? routeIdReturnRegexFor(routeId) : routeIdReturnRegex;
|
|
22
|
+
if (stubRegex.test(code)) {
|
|
23
|
+
return code.replace(stubRegex, "return " + safeData);
|
|
19
24
|
}
|
|
20
25
|
return code + `
|
|
21
26
|
export const loader = () => (${stringifiedData})`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["routeIdReturnRegex","replaceLoader","param","code","loaderData","stringifiedData","JSON","stringify","safeData","
|
|
1
|
+
{"version":3,"names":["routeIdReturnRegex","routeIdReturnRegexFor","routeId","RegExp","replace","replaceLoader","param","code","loaderData","stringifiedData","JSON","stringify","safeData","out","includes","stubRegex","test"],"sources":["../../../src/vite/replaceLoader.ts"],"sourcesContent":[null],"mappings":"AAIA,IAAAA,kBAAM,mCAAqB;AAI3B,IAAAC,qBAAM,YAAAA,CAAyBC,OAC7B;EAEK,OAAS,IAAAC,MAAA,oBAAcD,OAAA,CAAAE,OAAA;AAAA;AAC5B,SACAC,cAAAC,KAAA;EACA;IAAAC,IAAA;IAAAC,UAAA;IAAAN;EAAA,IAAAI,KAAA;EACF,IAIGG,eAAA,GAAAC,IAAA,CAAAC,SAAA,CAAAH,UAAA;EACD,IAAAI,QAAM,GAAAH,eAAuB,CAAAL,OAAA,CAAU,aAAU;EACjD,IAAAS,GAAM,eAAW;IAEjB,IAAMN,IAAA,CAAAO,QAAa;MAEjB,OAASP,IAAA,CAAAH,OAAS,CAChB,0BAAY;MACV;MAAA;MAAA;MAAA,MAAAQ,QAAA;IAIM;IAEV,IAAAG,SAAA,GAAAb,OAAA,GAAAD,qBAAA,CAAAC,OAAA,IAAAF,kBAAA;IAIA,IAAAe,SAAM,CAAAC,IAAY,CAAAT,IAAA;MAClB,OAAIA,IAAA,CAAUH,OAAK,CAAAW,SAAO,cAAAH,QAAA;IACxB;IACF,OAAAL,IAAA;AAEA,+BAAcE,eAAA;EAAA;EAChB,OAAGI,GAAA;AAEH;AACF,S","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.25.
|
|
3
|
+
"version": "1.25.15",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -193,18 +193,18 @@
|
|
|
193
193
|
"@cloudflare/vite-plugin": "^1.33.1",
|
|
194
194
|
"@swc/core": "^1.14.0",
|
|
195
195
|
"@ungap/structured-clone": "^1.2.0",
|
|
196
|
-
"@vxrn/color-scheme": "1.25.
|
|
197
|
-
"@vxrn/compiler": "1.25.
|
|
198
|
-
"@vxrn/resolve": "1.25.
|
|
199
|
-
"@vxrn/tslib-lite": "1.25.
|
|
200
|
-
"@vxrn/use-isomorphic-layout-effect": "1.25.
|
|
201
|
-
"@vxrn/vite-plugin-metro": "1.25.
|
|
196
|
+
"@vxrn/color-scheme": "1.25.15",
|
|
197
|
+
"@vxrn/compiler": "1.25.15",
|
|
198
|
+
"@vxrn/resolve": "1.25.15",
|
|
199
|
+
"@vxrn/tslib-lite": "1.25.15",
|
|
200
|
+
"@vxrn/use-isomorphic-layout-effect": "1.25.15",
|
|
201
|
+
"@vxrn/vite-plugin-metro": "1.25.15",
|
|
202
202
|
"babel-dead-code-elimination": "1.0.10",
|
|
203
203
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
204
204
|
"babel-preset-expo": "~57.0.5",
|
|
205
205
|
"citty": "^0.1.6",
|
|
206
206
|
"core-js": "^3.38.1",
|
|
207
|
-
"create-vxrn": "1.25.
|
|
207
|
+
"create-vxrn": "1.25.15",
|
|
208
208
|
"escape-string-regexp": "^5.0.0",
|
|
209
209
|
"expo-linking": "~57.0.5",
|
|
210
210
|
"expo-modules-core": "~57.0.10",
|
|
@@ -224,7 +224,7 @@
|
|
|
224
224
|
"tsconfig-paths": "^4",
|
|
225
225
|
"use-latest-callback": "^0.2.3",
|
|
226
226
|
"vite": "^8.2.2",
|
|
227
|
-
"vxrn": "1.25.
|
|
227
|
+
"vxrn": "1.25.15",
|
|
228
228
|
"web-streams-polyfill": "^4.3.0",
|
|
229
229
|
"ws": "^8.21.0",
|
|
230
230
|
"xxhashjs": "^0.2.2"
|
package/src/cli/build.ts
CHANGED
|
@@ -45,6 +45,7 @@ import { checkNodeVersion } from './checkNodeVersion'
|
|
|
45
45
|
import { getWorkerPool, terminateWorkerPool } from './workerPool'
|
|
46
46
|
import { generateSitemap, type RouteSitemapData } from './generateSitemap'
|
|
47
47
|
import { labelProcess } from './label-process'
|
|
48
|
+
import { getRouteExports } from './serverRouteModules'
|
|
48
49
|
import { pLimit } from '../utils/pLimit'
|
|
49
50
|
import { getCriticalCSSOutputPaths } from '../vite/plugins/criticalCSSPlugin'
|
|
50
51
|
|
|
@@ -537,17 +538,36 @@ export async function build(args: {
|
|
|
537
538
|
}
|
|
538
539
|
|
|
539
540
|
// build a direct mapping from source file path to client chunk info
|
|
540
|
-
// this is more reliable than manifest.json which can have ambiguous keys
|
|
541
|
+
// this is more reliable than manifest.json which can have ambiguous keys.
|
|
542
|
+
// index every module a chunk contains, not just its facade: a route that
|
|
543
|
+
// another route re-exports from stops being a dynamic entry and lands in a
|
|
544
|
+
// plain shared chunk, which has no facade and so gets no source-path key in
|
|
545
|
+
// the manifest either. the facade pass runs second so it wins where both hit.
|
|
541
546
|
const clientChunksBySource = new Map<string, { fileName: string; imports: string[] }>()
|
|
542
547
|
if (vxrnOutput.clientOutput) {
|
|
543
548
|
for (const chunk of vxrnOutput.clientOutput) {
|
|
544
|
-
if (chunk.type
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
})
|
|
549
|
+
if (chunk.type !== 'chunk') continue
|
|
550
|
+
const info = { fileName: chunk.fileName, imports: chunk.imports || [] }
|
|
551
|
+
for (const moduleId of chunk.moduleIds ?? []) {
|
|
552
|
+
clientChunksBySource.set(moduleId, info)
|
|
549
553
|
}
|
|
550
554
|
}
|
|
555
|
+
for (const chunk of vxrnOutput.clientOutput) {
|
|
556
|
+
if (chunk.type !== 'chunk' || !chunk.facadeModuleId) continue
|
|
557
|
+
clientChunksBySource.set(chunk.facadeModuleId, {
|
|
558
|
+
fileName: chunk.fileName,
|
|
559
|
+
imports: chunk.imports || [],
|
|
560
|
+
})
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
// the manifest keys chunks by source path only when they have a facade, so
|
|
565
|
+
// reach the rest through the chunk file name that clientChunksBySource gives us
|
|
566
|
+
const clientManifestByFile = new Map<string, ClientManifestEntry>()
|
|
567
|
+
for (const entry of Object.values(vxrnOutput.clientManifest) as ClientManifestEntry[]) {
|
|
568
|
+
if (entry.file) {
|
|
569
|
+
clientManifestByFile.set(entry.file, entry)
|
|
570
|
+
}
|
|
551
571
|
}
|
|
552
572
|
|
|
553
573
|
const outputEntries = [...vxrnOutput.serverOutput.entries()]
|
|
@@ -643,7 +663,9 @@ export async function build(args: {
|
|
|
643
663
|
|
|
644
664
|
// also look up in manifest for additional info (css, nested imports, etc)
|
|
645
665
|
const manifestKey = `${routerRoot}${foundRoute.file.slice(1)}`
|
|
646
|
-
const clientManifestEntry =
|
|
666
|
+
const clientManifestEntry: ClientManifestEntry | undefined =
|
|
667
|
+
vxrnOutput.clientManifest[manifestKey] ??
|
|
668
|
+
(clientChunk ? clientManifestByFile.get(clientChunk.fileName) : undefined)
|
|
647
669
|
|
|
648
670
|
// SPA and SSG routes may not have client chunks - that's expected
|
|
649
671
|
if (!clientChunk && foundRoute.type !== 'spa' && foundRoute.type !== 'ssg') {
|
|
@@ -668,7 +690,7 @@ export async function build(args: {
|
|
|
668
690
|
}
|
|
669
691
|
|
|
670
692
|
function collectImports(
|
|
671
|
-
entry: ClientManifestEntry
|
|
693
|
+
entry: Partial<ClientManifestEntry>,
|
|
672
694
|
{ type = 'js' }: { type?: 'js' | 'css' } = {}
|
|
673
695
|
): string[] {
|
|
674
696
|
const { imports = [], css } = entry
|
|
@@ -739,13 +761,9 @@ export async function build(args: {
|
|
|
739
761
|
}
|
|
740
762
|
|
|
741
763
|
// add the page itself using the direct chunk lookup (more reliable than manifest)
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
routePreloads[
|
|
745
|
-
} else if (clientManifestEntry) {
|
|
746
|
-
// fallback to manifest if no chunk (shouldn't happen normally)
|
|
747
|
-
const routeKey = `/${routerRoot}${foundRoute.file.slice(1)}`
|
|
748
|
-
routePreloads[routeKey] = `/${clientManifestEntry.file}`
|
|
764
|
+
const routeChunkFile = clientChunk?.fileName ?? clientManifestEntry?.file
|
|
765
|
+
if (routeChunkFile) {
|
|
766
|
+
routePreloads[`/${routerRoot}${foundRoute.file.slice(1)}`] = `/${routeChunkFile}`
|
|
749
767
|
}
|
|
750
768
|
|
|
751
769
|
const preloadSetupFilePreloads = (() => {
|
|
@@ -921,11 +939,15 @@ export async function build(args: {
|
|
|
921
939
|
|
|
922
940
|
let exported
|
|
923
941
|
try {
|
|
924
|
-
exported = await
|
|
942
|
+
exported = await getRouteExports(
|
|
943
|
+
vxrnOutput.serverEntry,
|
|
944
|
+
routerRoot,
|
|
945
|
+
foundRoute.file
|
|
946
|
+
)
|
|
925
947
|
} catch (err) {
|
|
926
948
|
console.error(`Error importing page (original error)`, err)
|
|
927
949
|
// err cause not showing in vite or something
|
|
928
|
-
throw new Error(`Error importing page: ${
|
|
950
|
+
throw new Error(`Error importing page: ${foundRoute.file}`, {
|
|
929
951
|
cause: err,
|
|
930
952
|
})
|
|
931
953
|
}
|
|
@@ -995,6 +1017,7 @@ export async function build(args: {
|
|
|
995
1017
|
return workerPool
|
|
996
1018
|
.buildPage({
|
|
997
1019
|
serverEntry: vxrnOutput.serverEntry,
|
|
1020
|
+
routerRoot,
|
|
998
1021
|
path,
|
|
999
1022
|
relativeId,
|
|
1000
1023
|
params,
|
|
@@ -1024,6 +1047,7 @@ export async function build(args: {
|
|
|
1024
1047
|
const built = await runWithAsyncLocalContext(async () => {
|
|
1025
1048
|
return await buildPage(
|
|
1026
1049
|
vxrnOutput.serverEntry,
|
|
1050
|
+
routerRoot,
|
|
1027
1051
|
path,
|
|
1028
1052
|
relativeId,
|
|
1029
1053
|
params,
|
|
@@ -1250,21 +1274,9 @@ export async function build(args: {
|
|
|
1250
1274
|
)
|
|
1251
1275
|
return importPath.startsWith('.') ? importPath : `./${importPath}`
|
|
1252
1276
|
}
|
|
1253
|
-
const pageRouteMap: string[] = []
|
|
1254
1277
|
const apiRouteMap: string[] = []
|
|
1255
1278
|
const middlewareRouteMap: string[] = []
|
|
1256
1279
|
|
|
1257
|
-
// Generate lazy imports for SSR/SSG page server bundles
|
|
1258
|
-
for (const [routeFile, info] of Object.entries(
|
|
1259
|
-
buildInfoForWriting.routeToBuildInfo
|
|
1260
|
-
)) {
|
|
1261
|
-
if (info.serverJsPath) {
|
|
1262
|
-
const importPath =
|
|
1263
|
-
'./' + info.serverJsPath.replace(new RegExp(`^${outDir}/`), '')
|
|
1264
|
-
pageRouteMap.push(` '${routeFile}': () => import('${importPath}')`)
|
|
1265
|
-
}
|
|
1266
|
-
}
|
|
1267
|
-
|
|
1268
1280
|
// Generate lazy imports for API routes
|
|
1269
1281
|
for (const route of buildInfoForWriting.manifest.apiRoutes) {
|
|
1270
1282
|
if (route.file) {
|
|
@@ -1299,9 +1311,6 @@ import { serve, setFetchStaticHtml } from 'one/serve-worker'
|
|
|
1299
1311
|
// Lazy import map - modules load on-demand when route is matched
|
|
1300
1312
|
const lazyRoutes = {
|
|
1301
1313
|
serverEntry: () => import('./server/_virtual_one-entry.js'),
|
|
1302
|
-
pages: {
|
|
1303
|
-
${pageRouteMap.join(',\n')}
|
|
1304
|
-
},
|
|
1305
1314
|
api: {
|
|
1306
1315
|
${apiRouteMap.join(',\n')}
|
|
1307
1316
|
},
|
package/src/cli/buildPage.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { isResponse } from '../utils/isResponse'
|
|
|
14
14
|
import { toAbsolute, toAbsoluteUrl } from '../utils/toAbsolute'
|
|
15
15
|
import { replaceLoader } from '../vite/replaceLoader'
|
|
16
16
|
import type { One, RouteInfo } from '../vite/types'
|
|
17
|
+
import { getRouteExports } from './serverRouteModules'
|
|
17
18
|
|
|
18
19
|
const { readFile, outputFile } = FSExtra
|
|
19
20
|
|
|
@@ -45,6 +46,7 @@ export function printBuildTimings() {
|
|
|
45
46
|
|
|
46
47
|
export async function buildPage(
|
|
47
48
|
serverEntry: string,
|
|
49
|
+
routerRoot: string,
|
|
48
50
|
path: string,
|
|
49
51
|
relativeId: string,
|
|
50
52
|
params: any,
|
|
@@ -186,7 +188,7 @@ prefetchCSS()
|
|
|
186
188
|
recordTiming('writeCSSPreload', performance.now() - t0)
|
|
187
189
|
|
|
188
190
|
t0 = performance.now()
|
|
189
|
-
const exported = await
|
|
191
|
+
const exported = await getRouteExports(serverEntry, routerRoot, foundRoute.file)
|
|
190
192
|
recordTiming('importServerModule', performance.now() - t0)
|
|
191
193
|
|
|
192
194
|
const loaderProps: LoaderProps = { path, params }
|
|
@@ -200,14 +202,13 @@ prefetchCSS()
|
|
|
200
202
|
const layoutResults = await Promise.all(
|
|
201
203
|
foundRoute.layouts.map(async (layout) => {
|
|
202
204
|
try {
|
|
203
|
-
|
|
204
|
-
if (!layoutServerPath) {
|
|
205
|
+
if (!layout.loaderServerPath) {
|
|
205
206
|
return { contextKey: layout.contextKey, loaderData: undefined }
|
|
206
207
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
208
|
+
const layoutExported = await getRouteExports(
|
|
209
|
+
serverEntry,
|
|
210
|
+
routerRoot,
|
|
211
|
+
layout.contextKey
|
|
211
212
|
)
|
|
212
213
|
const layoutLoaderData = await layoutExported?.loader?.(loaderProps)
|
|
213
214
|
return { contextKey: layout.contextKey, loaderData: layoutLoaderData }
|
|
@@ -301,6 +302,7 @@ if (typeof document === 'undefined') globalThis.document = {}
|
|
|
301
302
|
replaceLoader({
|
|
302
303
|
code,
|
|
303
304
|
loaderData,
|
|
305
|
+
routeId: foundRoute.file,
|
|
304
306
|
})
|
|
305
307
|
await outputFile(loaderPartialPath, withLoader)
|
|
306
308
|
// native-friendly CJS version with just the data (no ESM imports)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { getRouteExportsFromEntry } from '../server/routeExportsFromEntry'
|
|
2
|
+
import { toAbsoluteUrl } from '../utils/toAbsolute'
|
|
3
|
+
|
|
4
|
+
// entry evaluation is expensive and every page in a build shares it
|
|
5
|
+
const serverEntries = new Map<string, Promise<any>>()
|
|
6
|
+
|
|
7
|
+
function loadServerEntry(serverEntry: string) {
|
|
8
|
+
let loading = serverEntries.get(serverEntry)
|
|
9
|
+
if (!loading) {
|
|
10
|
+
loading = import(toAbsoluteUrl(serverEntry))
|
|
11
|
+
serverEntries.set(serverEntry, loading)
|
|
12
|
+
}
|
|
13
|
+
return loading
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export async function getRouteExports(
|
|
17
|
+
serverEntry: string,
|
|
18
|
+
routerRoot: string,
|
|
19
|
+
routeFile: string
|
|
20
|
+
): Promise<Record<string, any>> {
|
|
21
|
+
const entry = await loadServerEntry(serverEntry)
|
|
22
|
+
const exported = await getRouteExportsFromEntry(entry, routerRoot, routeFile)
|
|
23
|
+
|
|
24
|
+
if (!exported) {
|
|
25
|
+
const routes =
|
|
26
|
+
entry?.default?.options?.routes ?? entry?.default?.default?.options?.routes
|
|
27
|
+
throw new Error(
|
|
28
|
+
`[one] route ${routeFile} is missing from the built server entry route map (looked in: ${Object.keys(routes ?? {}).join(', ')})`
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return exported
|
|
33
|
+
}
|
package/src/cli/workerPool.ts
CHANGED
package/src/createApp.tsx
CHANGED
|
@@ -7,7 +7,7 @@ import { render } from './render'
|
|
|
7
7
|
import { initClientMatches } from './router/router'
|
|
8
8
|
import { registerPreloadedRoute } from './router/useViteRoutes'
|
|
9
9
|
import { setupSkewProtection } from './skewProtection'
|
|
10
|
-
import { handleSkewError } from './utils/dynamicImport'
|
|
10
|
+
import { handleSkewError, isChunkLoadError } from './utils/dynamicImport'
|
|
11
11
|
import { findRootLayout } from './utils/findRootLayout'
|
|
12
12
|
import type { RenderAppProps } from './types'
|
|
13
13
|
import type { OneLinkingConfig } from './link/getLinking'
|
|
@@ -293,5 +293,9 @@ export function createApp(options: CreateAppProps) {
|
|
|
293
293
|
})
|
|
294
294
|
.catch((err) => {
|
|
295
295
|
console.error(`Error during client initialization:`, err)
|
|
296
|
+
if (isChunkLoadError(err)) {
|
|
297
|
+
handleSkewError()
|
|
298
|
+
}
|
|
296
299
|
})
|
|
297
300
|
}
|
|
301
|
+
|
package/src/headless-server.ts
CHANGED
package/src/headless.tsx
CHANGED
|
@@ -4,6 +4,7 @@ import type { OneLinkingConfig } from './link/getLinking'
|
|
|
4
4
|
import { Root } from './Root'
|
|
5
5
|
import { resolveClientLoader } from './clientLoaderResolver'
|
|
6
6
|
import { render } from './render'
|
|
7
|
+
import { handleSkewError, isChunkLoadError } from './utils/dynamicImport'
|
|
7
8
|
import { findRootLayout } from './utils/findRootLayout'
|
|
8
9
|
import type { One } from './vite/types'
|
|
9
10
|
|
|
@@ -51,5 +52,9 @@ export function createApp(options: CreateHeadlessAppProps) {
|
|
|
51
52
|
})
|
|
52
53
|
.catch((err) => {
|
|
53
54
|
console.error(`[one/headless] Error during initialization:`, err)
|
|
55
|
+
if (isChunkLoadError(err)) {
|
|
56
|
+
handleSkewError()
|
|
57
|
+
}
|
|
54
58
|
})
|
|
55
59
|
}
|
|
60
|
+
|