vxrn 1.26.1 → 2.0.0-beta.33.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/patches/builtInDepPatches.mjs +23 -42
- package/dist/patches/builtInDepPatches.mjs.map +1 -1
- package/dist/patches/builtInDepPatches.native.js +23 -42
- package/dist/patches/builtInDepPatches.native.js.map +1 -1
- package/dist/plugins/reactNativeDevServer.mjs +15 -50
- package/dist/plugins/reactNativeDevServer.mjs.map +1 -1
- package/dist/plugins/reactNativeDevServer.native.js +17 -113
- package/dist/plugins/reactNativeDevServer.native.js.map +1 -1
- package/dist/utils/createNativeDevEngine.mjs +115 -59
- package/dist/utils/createNativeDevEngine.mjs.map +1 -1
- package/dist/utils/createNativeDevEngine.native.js +140 -79
- package/dist/utils/createNativeDevEngine.native.js.map +1 -1
- package/dist/utils/scanDepsToOptimize.mjs +1 -3
- package/dist/utils/scanDepsToOptimize.mjs.map +1 -1
- package/dist/utils/scanDepsToOptimize.native.js +1 -3
- package/dist/utils/scanDepsToOptimize.native.js.map +1 -1
- package/expo-plugin.cjs +12 -6
- package/package.json +12 -12
- package/src/patches/builtInDepPatches.ts +24 -48
- package/src/plugins/reactNativeDevServer.ts +27 -67
- package/src/utils/createNativeDevEngine.ts +146 -82
- package/src/utils/scanDepsToOptimize.ts +0 -3
- package/types/patches/builtInDepPatches.d.ts.map +1 -1
- package/types/plugins/reactNativeDevServer.d.ts.map +1 -1
- package/types/utils/createNativeDevEngine.d.ts +0 -1
- package/types/utils/createNativeDevEngine.d.ts.map +1 -1
- package/types/utils/scanDepsToOptimize.d.ts.map +1 -1
|
@@ -73,6 +73,7 @@ function createReactNativeDevServerPlugin(options) {
|
|
|
73
73
|
var devEngines = {};
|
|
74
74
|
var devEngineCreating = {};
|
|
75
75
|
var warnedProdBundleRequest = /* @__PURE__ */new Set();
|
|
76
|
+
var pendingReloadPlatforms = /* @__PURE__ */new Set();
|
|
76
77
|
var devToolsSocketEndpoints = ["/inspector/device", "/inspector/debug"];
|
|
77
78
|
var reactNativeDevToolsUrl = `http://${host}:${getBoundPort(server)}`;
|
|
78
79
|
var {
|
|
@@ -208,6 +209,11 @@ function createReactNativeDevServerPlugin(options) {
|
|
|
208
209
|
return;
|
|
209
210
|
}
|
|
210
211
|
addConnectedNativeClient();
|
|
212
|
+
if (pendingReloadPlatforms.has(socket.vxrnPlatform)) {
|
|
213
|
+
socket.send(JSON.stringify({
|
|
214
|
+
type: "hmr:reload"
|
|
215
|
+
}));
|
|
216
|
+
}
|
|
211
217
|
socket.on("message", function (message) {
|
|
212
218
|
var value = message.toString();
|
|
213
219
|
if (value === "ping") {
|
|
@@ -236,115 +242,6 @@ function createReactNativeDevServerPlugin(options) {
|
|
|
236
242
|
console.error("[hmr] error", error);
|
|
237
243
|
});
|
|
238
244
|
});
|
|
239
|
-
var reloadNativeClients = function (platform) {
|
|
240
|
-
var reload = JSON.stringify({
|
|
241
|
-
type: "hmr:reload"
|
|
242
|
-
});
|
|
243
|
-
hmrWSS.clients.forEach(function (client) {
|
|
244
|
-
var nativeClient = client;
|
|
245
|
-
if (nativeClient.readyState === 1 && nativeClient.vxrnPlatform === platform) {
|
|
246
|
-
nativeClient.send(reload);
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
};
|
|
250
|
-
var deletionTimer;
|
|
251
|
-
var addTimer;
|
|
252
|
-
var addedFiles = /* @__PURE__ */new Set();
|
|
253
|
-
server.watcher.on("add", function (file) {
|
|
254
|
-
if (file.split("/").some(function (segment) {
|
|
255
|
-
return segment.startsWith(".");
|
|
256
|
-
})) return;
|
|
257
|
-
addedFiles.add(file);
|
|
258
|
-
clearTimeout(addTimer);
|
|
259
|
-
addTimer = setTimeout(function () {
|
|
260
|
-
var files = [...addedFiles];
|
|
261
|
-
addedFiles.clear();
|
|
262
|
-
var _iteratorNormalCompletion = true,
|
|
263
|
-
_didIteratorError = false,
|
|
264
|
-
_iteratorError = void 0;
|
|
265
|
-
try {
|
|
266
|
-
var _loop = function () {
|
|
267
|
-
var platform = _step.value;
|
|
268
|
-
var devEngine = devEngines[platform];
|
|
269
|
-
if (!devEngine) return "continue";
|
|
270
|
-
var _iteratorNormalCompletion2 = true,
|
|
271
|
-
_didIteratorError2 = false,
|
|
272
|
-
_iteratorError2 = void 0;
|
|
273
|
-
try {
|
|
274
|
-
var _loop2 = function () {
|
|
275
|
-
var added = _step1.value;
|
|
276
|
-
devEngine.handleAddedFile(added).catch(function (error) {
|
|
277
|
-
console.error(`[vxrn] handling added ${added} for ${platform} failed`, error);
|
|
278
|
-
});
|
|
279
|
-
};
|
|
280
|
-
for (var _iterator2 = files[Symbol.iterator](), _step1; !(_iteratorNormalCompletion2 = (_step1 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) _loop2();
|
|
281
|
-
} catch (err) {
|
|
282
|
-
_didIteratorError2 = true;
|
|
283
|
-
_iteratorError2 = err;
|
|
284
|
-
} finally {
|
|
285
|
-
try {
|
|
286
|
-
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
287
|
-
_iterator2.return();
|
|
288
|
-
}
|
|
289
|
-
} finally {
|
|
290
|
-
if (_didIteratorError2) {
|
|
291
|
-
throw _iteratorError2;
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
};
|
|
296
|
-
for (var _iterator = Object.keys(devEngines)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
|
|
297
|
-
} catch (err) {
|
|
298
|
-
_didIteratorError = true;
|
|
299
|
-
_iteratorError = err;
|
|
300
|
-
} finally {
|
|
301
|
-
try {
|
|
302
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
303
|
-
_iterator.return();
|
|
304
|
-
}
|
|
305
|
-
} finally {
|
|
306
|
-
if (_didIteratorError) {
|
|
307
|
-
throw _iteratorError;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
}, 50);
|
|
312
|
-
});
|
|
313
|
-
server.watcher.on("unlink", function (file) {
|
|
314
|
-
if (file.split("/").some(function (segment) {
|
|
315
|
-
return segment.startsWith(".");
|
|
316
|
-
})) return;
|
|
317
|
-
clearTimeout(deletionTimer);
|
|
318
|
-
deletionTimer = setTimeout(function () {
|
|
319
|
-
var _iteratorNormalCompletion = true,
|
|
320
|
-
_didIteratorError = false,
|
|
321
|
-
_iteratorError = void 0;
|
|
322
|
-
try {
|
|
323
|
-
for (var _iterator = Object.keys(devEngines)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
324
|
-
var platform = _step.value;
|
|
325
|
-
var devEngine = devEngines[platform];
|
|
326
|
-
if (!devEngine) continue;
|
|
327
|
-
devEngines[platform] = null;
|
|
328
|
-
devEngineCreating[platform] = null;
|
|
329
|
-
devEngine.close().catch(function () {});
|
|
330
|
-
reloadNativeClients(platform);
|
|
331
|
-
}
|
|
332
|
-
} catch (err) {
|
|
333
|
-
_didIteratorError = true;
|
|
334
|
-
_iteratorError = err;
|
|
335
|
-
} finally {
|
|
336
|
-
try {
|
|
337
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
338
|
-
_iterator.return();
|
|
339
|
-
}
|
|
340
|
-
} finally {
|
|
341
|
-
if (_didIteratorError) {
|
|
342
|
-
throw _iteratorError;
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
}, 500);
|
|
347
|
-
});
|
|
348
245
|
clientWSS.on("connection", function (socket) {
|
|
349
246
|
socket.on("message", function (messageRaw) {
|
|
350
247
|
var message = JSON.parse(messageRaw.toString());
|
|
@@ -366,9 +263,9 @@ function createReactNativeDevServerPlugin(options) {
|
|
|
366
263
|
});
|
|
367
264
|
});
|
|
368
265
|
var getDevEngine = async function (platform) {
|
|
369
|
-
|
|
266
|
+
while (!devEngines[platform]) {
|
|
370
267
|
if (!devEngineCreating[platform]) {
|
|
371
|
-
|
|
268
|
+
var creating = async function () {
|
|
372
269
|
try {
|
|
373
270
|
console.info(`[vxrn] creating rolldown DevEngine for ${platform}...`);
|
|
374
271
|
devEngines[platform] = await createNativeDevEngine({
|
|
@@ -380,6 +277,9 @@ function createReactNativeDevServerPlugin(options) {
|
|
|
380
277
|
onHmrUpdate: function (update) {
|
|
381
278
|
var msg = JSON.stringify(update);
|
|
382
279
|
var target = "clientId" in update ? update.clientId : void 0;
|
|
280
|
+
if (update.type === "hmr:reload" && !target) {
|
|
281
|
+
pendingReloadPlatforms.add(platform);
|
|
282
|
+
}
|
|
383
283
|
hmrWSS.clients.forEach(function (client) {
|
|
384
284
|
var nativeClient = client;
|
|
385
285
|
if (nativeClient.readyState === 1 && nativeClient.vxrnPlatform === platform && (!target || nativeClient.vxrnClientId === target)) {
|
|
@@ -389,11 +289,11 @@ function createReactNativeDevServerPlugin(options) {
|
|
|
389
289
|
}
|
|
390
290
|
});
|
|
391
291
|
console.info(`[vxrn] rolldown DevEngine ready for ${platform}`);
|
|
392
|
-
}
|
|
292
|
+
} finally {
|
|
393
293
|
devEngineCreating[platform] = null;
|
|
394
|
-
throw err;
|
|
395
294
|
}
|
|
396
295
|
}();
|
|
296
|
+
devEngineCreating[platform] = creating;
|
|
397
297
|
}
|
|
398
298
|
await devEngineCreating[platform];
|
|
399
299
|
}
|
|
@@ -412,7 +312,11 @@ function createReactNativeDevServerPlugin(options) {
|
|
|
412
312
|
}
|
|
413
313
|
try {
|
|
414
314
|
var bundle = await (await getDevEngine(platform)).getBundle();
|
|
315
|
+
res.once("finish", function () {
|
|
316
|
+
return pendingReloadPlatforms.delete(platform);
|
|
317
|
+
});
|
|
415
318
|
res.writeHead(200, {
|
|
319
|
+
"Cache-Control": "no-store",
|
|
416
320
|
"Content-Type": "text/javascript"
|
|
417
321
|
});
|
|
418
322
|
res.end(bundle.code);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebSocketServer","createMessageSocket","addConnectedNativeClient","removeConnectedNativeClient","URL","readFile","createDevMiddleware","createNativeDevEngine","getBoundPort","getNativeFramePlatform","isNativeBundleFrame","symbolicateNativeStack","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","getNativeAssetContentType","type","toLowerCase","createReactNativeDevServerPlugin","options","name","configureServer","server","_server_httpServer","host","config","root","hmrWSS","noServer","clientWSS","messageWSS","validPlatforms","ios","android","devEngines","devEngineCreating","warnedProdBundleRequest","Set","devToolsSocketEndpoints","reactNativeDevToolsUrl","middleware","websocketEndpoints","serverBaseUrl","logger","console","unstable_experiments","enableStandaloneFuseboxShell","middlewares","use","req","res","next","method","rawUrl","url","rawPathname","split","startsWith","headers","platform","searchParams","get","engine","pathname","decodeURIComponent","unused","writeHead","end","asset","getAsset","contents","filePath","String","byteLength","error","Error","message","httpServer","on","socket","head","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","endpoint","_step","value","wss","handleUpgrade","ws","emit","v","_iterator","iterator","done","_ret","err","return","hmrUrl","clientId","destroy","Object","assign","vxrnClientId","vxrnPlatform","currentEngine","close","registerClient","toString","send","update","JSON","parse","stringify","removeClient","catch","reloadNativeClients","reload","clients","forEach","client","nativeClient","readyState","deletionTimer","addTimer","addedFiles","watcher","file","some","segment","add","clearTimeout","setTimeout","files","clear","devEngine","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop2","added","_step1","handleAddedFile","_iterator2","keys","messageRaw","_message_data_","level","data","info","warn","getDevEngine","port","serverUrl"],"sources":["../../src/plugins/reactNativeDevServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["WebSocketServer","createMessageSocket","addConnectedNativeClient","removeConnectedNativeClient","URL","readFile","createDevMiddleware","createNativeDevEngine","getBoundPort","getNativeFramePlatform","isNativeBundleFrame","symbolicateNativeStack","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","getNativeAssetContentType","type","toLowerCase","createReactNativeDevServerPlugin","options","name","configureServer","server","_server_httpServer","host","config","root","hmrWSS","noServer","clientWSS","messageWSS","validPlatforms","ios","android","devEngines","devEngineCreating","warnedProdBundleRequest","Set","pendingReloadPlatforms","devToolsSocketEndpoints","reactNativeDevToolsUrl","middleware","websocketEndpoints","serverBaseUrl","logger","console","unstable_experiments","enableStandaloneFuseboxShell","middlewares","use","req","res","next","method","rawUrl","url","rawPathname","split","startsWith","headers","platform","searchParams","get","engine","pathname","decodeURIComponent","unused","writeHead","end","asset","getAsset","contents","filePath","String","byteLength","error","Error","message","httpServer","on","socket","head","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","endpoint","_step","value","wss","handleUpgrade","ws","emit","v","_iterator","iterator","done","_ret","err","return","hmrUrl","clientId","destroy","Object","assign","vxrnClientId","vxrnPlatform","currentEngine","close","registerClient","has","send","JSON","stringify","toString","update","parse","removeClient","catch","messageRaw","_message_data_","level","data","info","warn","getDevEngine","creating","port","serverUrl","onHmrUpdate","msg","target","add","clients","forEach","client","nativeClient","readyState","handleRNBundle","platformString","bundle","getBundle","once","delete","code","stack","_req_url","endsWith"],"sources":["../../src/plugins/reactNativeDevServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { basename, dirname, extname, join, relative, resolve } from "node:path";
|
|
3
|
-
import { copyFileSync, mkdirSync, readFileSync, readdirSync, realpathSync, statSync } from "node:fs";
|
|
3
|
+
import { copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, statSync, watch, writeFileSync } from "node:fs";
|
|
4
4
|
import { pathToFileURL } from "node:url";
|
|
5
5
|
import micromatch from "micromatch";
|
|
6
6
|
import { loadEnv, normalizePath } from "vite";
|
|
@@ -252,7 +252,9 @@ async function createNativeDevEngine(options) {
|
|
|
252
252
|
let bundlePromise = null;
|
|
253
253
|
const resolvedHost = host === "0.0.0.0" ? "localhost" : host;
|
|
254
254
|
const virtualEntry = nativeVirtualEntryPlugin(root, {
|
|
255
|
-
dev: true
|
|
255
|
+
dev: true,
|
|
256
|
+
platform,
|
|
257
|
+
dynamicRoutes: true
|
|
256
258
|
});
|
|
257
259
|
let engineWork = Promise.resolve();
|
|
258
260
|
const queueEngineWork = work => {
|
|
@@ -298,30 +300,18 @@ try {
|
|
|
298
300
|
};
|
|
299
301
|
let outputProcessed = Promise.resolve();
|
|
300
302
|
let engine;
|
|
301
|
-
|
|
303
|
+
let routeWatcher;
|
|
304
|
+
const rebuildIfRouteGraphChanged = () => queueEngineWork(async () => {
|
|
302
305
|
const {
|
|
303
|
-
routeRoot,
|
|
304
306
|
files: knownRoutes,
|
|
305
|
-
|
|
307
|
+
scanFiles,
|
|
308
|
+
updateFiles
|
|
306
309
|
} = virtualEntry.routes;
|
|
307
|
-
const
|
|
308
|
-
if (!
|
|
309
|
-
|
|
310
|
-
if (isRouteFile(normalized)) return !knownRoutes.has(normalized);
|
|
311
|
-
return normalized.startsWith(routeRootPrefix) && statSync(file, {
|
|
312
|
-
throwIfNoEntry: false
|
|
313
|
-
})?.isDirectory() === true;
|
|
314
|
-
})) return false;
|
|
315
|
-
await queueEngineWork(async () => {
|
|
316
|
-
engine.triggerFullBuild();
|
|
317
|
-
await engine.ensureLatestBuildOutput();
|
|
318
|
-
await outputProcessed;
|
|
319
|
-
});
|
|
320
|
-
onHmrUpdate?.({
|
|
321
|
-
type: "hmr:reload"
|
|
322
|
-
});
|
|
310
|
+
const currentRoutes = scanFiles();
|
|
311
|
+
if (!(currentRoutes.size !== knownRoutes.size || [...currentRoutes].some(route => !knownRoutes.has(route)))) return false;
|
|
312
|
+
updateFiles(currentRoutes);
|
|
323
313
|
return true;
|
|
324
|
-
};
|
|
314
|
+
});
|
|
325
315
|
engine = await dev(inputOptions, outputOptions, {
|
|
326
316
|
onOutput: async result => {
|
|
327
317
|
let finishOutput = () => {};
|
|
@@ -342,7 +332,7 @@ try {
|
|
|
342
332
|
});
|
|
343
333
|
return;
|
|
344
334
|
}
|
|
345
|
-
if (await
|
|
335
|
+
if (await rebuildIfRouteGraphChanged()) return;
|
|
346
336
|
for (const {
|
|
347
337
|
clientId,
|
|
348
338
|
update
|
|
@@ -398,6 +388,29 @@ try {
|
|
|
398
388
|
}
|
|
399
389
|
}
|
|
400
390
|
await engine.run();
|
|
391
|
+
let routeWatchTarget = virtualEntry.routes.routeRoot;
|
|
392
|
+
while (!statSync(routeWatchTarget, {
|
|
393
|
+
throwIfNoEntry: false
|
|
394
|
+
})?.isDirectory()) {
|
|
395
|
+
const parent = dirname(routeWatchTarget);
|
|
396
|
+
if (parent === routeWatchTarget) break;
|
|
397
|
+
routeWatchTarget = parent;
|
|
398
|
+
}
|
|
399
|
+
const normalizedRouteRoot = normalizePath(virtualEntry.routes.routeRoot);
|
|
400
|
+
routeWatcher = watch(routeWatchTarget, {
|
|
401
|
+
recursive: true
|
|
402
|
+
}, (_eventType, file) => {
|
|
403
|
+
if (file === null) return;
|
|
404
|
+
const changed = normalizePath(resolve(routeWatchTarget, file.toString()));
|
|
405
|
+
if (changed !== normalizedRouteRoot && !changed.startsWith(`${normalizedRouteRoot}/`)) return;
|
|
406
|
+
rebuildIfRouteGraphChanged().catch(error => {
|
|
407
|
+
console.error(`[vxrn] rebuilding the native route map failed`, error);
|
|
408
|
+
});
|
|
409
|
+
});
|
|
410
|
+
routeWatcher.on("error", error => {
|
|
411
|
+
console.error(`[vxrn] watching the native route map failed`, error);
|
|
412
|
+
});
|
|
413
|
+
await rebuildIfRouteGraphChanged();
|
|
401
414
|
return {
|
|
402
415
|
engine,
|
|
403
416
|
async getBundle() {
|
|
@@ -432,10 +445,8 @@ try {
|
|
|
432
445
|
return assetRegistry.resolve(pathname, hash);
|
|
433
446
|
},
|
|
434
447
|
async close() {
|
|
448
|
+
routeWatcher?.close();
|
|
435
449
|
await engine.close();
|
|
436
|
-
},
|
|
437
|
-
async handleAddedFile(file) {
|
|
438
|
-
await rebuildIfNewRoute([file]);
|
|
439
450
|
}
|
|
440
451
|
};
|
|
441
452
|
}
|
|
@@ -477,7 +488,8 @@ async function buildNativeBundle(options) {
|
|
|
477
488
|
".js": "jsx"
|
|
478
489
|
},
|
|
479
490
|
plugins: [...(entryFile ? [] : [nativeVirtualEntryPlugin(root, {
|
|
480
|
-
dev
|
|
491
|
+
dev,
|
|
492
|
+
platform
|
|
481
493
|
}).plugin]), ...getNativePlugins(root, platform, viteImportGlobPlugin, dev, assetsDest, void 0, sourcemap, userPlugins), nativeBundlePostProcessPlugin()],
|
|
482
494
|
output: getNativeOutputOptions(prelude, sourcemap, minify)
|
|
483
495
|
})).output.find(o => o.type === "chunk" && o.isEntry);
|
|
@@ -491,6 +503,7 @@ async function buildNativeBundle(options) {
|
|
|
491
503
|
const VIRTUAL_NATIVE_ENTRY = "virtual:native-entry";
|
|
492
504
|
function nativeVirtualEntryPlugin(root, opts) {
|
|
493
505
|
const isDev = opts?.dev !== false;
|
|
506
|
+
const useDynamicRouteRegistry = opts.dynamicRoutes === true;
|
|
494
507
|
const resolvedId = normalizePath(resolve(root, "__virtual-native-entry.tsx"));
|
|
495
508
|
const entryConfig = globalThis.__vxrnNativeEntryConfig || {};
|
|
496
509
|
const routerRoot = entryConfig.routerRoot || "app";
|
|
@@ -505,8 +518,7 @@ function nativeVirtualEntryPlugin(root, opts) {
|
|
|
505
518
|
return `import ${JSON.stringify(resolved)};`;
|
|
506
519
|
})();
|
|
507
520
|
const routeGlobs = [`./${routerRoot}/**/*.tsx`, `./${routerRoot}/**/*.ts`, `!./${routerRoot}/**/*+api.*`, `!./${routerRoot}/**/*.test.*`, `!./${routerRoot}/**/*.d.ts`, `!./${routerRoot}/**/*.server.*`, `!./${routerRoot}/**/_middleware.*`, `!./${routerRoot}/**/*.web.*`, ...(entryConfig.ignoredRouteFiles || []).map(pattern => `!./${routerRoot}/${pattern}`)];
|
|
508
|
-
const
|
|
509
|
-
${isDev ? `
|
|
521
|
+
const refreshSetup = isDev ? `
|
|
510
522
|
// react-refresh/runtime MUST initialize before React loads
|
|
511
523
|
import RefreshRuntime from 'react-refresh/runtime';
|
|
512
524
|
RefreshRuntime.injectIntoGlobalHook(globalThis);
|
|
@@ -515,22 +527,25 @@ globalThis.$RefreshReg$ = function(type, id) {
|
|
|
515
527
|
RefreshRuntime.register(type, id);
|
|
516
528
|
};
|
|
517
529
|
globalThis.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;
|
|
518
|
-
` : ""
|
|
530
|
+
` : "";
|
|
531
|
+
const entryCode = () => `
|
|
532
|
+
${refreshSetup}
|
|
519
533
|
import * as ReactNativeInitializeCore from 'react-native/Libraries/Core/InitializeCore';
|
|
520
534
|
import NativeWebSocket from 'react-native/Libraries/WebSocket/WebSocket';
|
|
535
|
+
import DevSettings from 'react-native/Libraries/Utilities/DevSettings';
|
|
521
536
|
${setupFileImport}
|
|
537
|
+
${routeImports}
|
|
522
538
|
import { createApp } from 'one';
|
|
523
539
|
|
|
524
540
|
void ReactNativeInitializeCore;
|
|
525
541
|
globalThis.WebSocket = NativeWebSocket;
|
|
542
|
+
globalThis.__VXRN_RELOAD_NATIVE_DEV_BUNDLE__ = function(reason) {
|
|
543
|
+
DevSettings.reload(reason);
|
|
544
|
+
};
|
|
526
545
|
|
|
527
|
-
|
|
528
|
-
//
|
|
529
|
-
|
|
530
|
-
Object.keys(_routes).forEach(function(key) {
|
|
531
|
-
var normalizedKey = key.replace(/^\\.\\//, '');
|
|
532
|
-
routes['/' + normalizedKey] = _routes[key];
|
|
533
|
-
});
|
|
546
|
+
// React Native reloads a dev bundle in the existing JS runtime. Advance One's
|
|
547
|
+
// route-cache version so a full reload cannot reuse the previous context.
|
|
548
|
+
globalThis.__vxrnVersion = (globalThis.__vxrnVersion || 0) + 1;
|
|
534
549
|
|
|
535
550
|
createApp({
|
|
536
551
|
routes: routes,
|
|
@@ -538,6 +553,8 @@ createApp({
|
|
|
538
553
|
flags: ${JSON.stringify(flags)},
|
|
539
554
|
linking: ${JSON.stringify(linking)},
|
|
540
555
|
});
|
|
556
|
+
|
|
557
|
+
${routeHmr}
|
|
541
558
|
`;
|
|
542
559
|
const routeRoot = resolve(root, routerRoot);
|
|
543
560
|
const stripDot = pattern => pattern.replace(/^\.\//, "");
|
|
@@ -547,11 +564,61 @@ createApp({
|
|
|
547
564
|
const relativeToRoot = normalizePath(relative(root, file));
|
|
548
565
|
return micromatch.isMatch(relativeToRoot, includeGlobs) && !micromatch.isMatch(relativeToRoot, excludeGlobs);
|
|
549
566
|
};
|
|
567
|
+
const scanFiles = () => {
|
|
568
|
+
const files = /* @__PURE__ */new Set();
|
|
569
|
+
const walkRouteRoot = dir => {
|
|
570
|
+
for (const entry of readdirSync(dir, {
|
|
571
|
+
withFileTypes: true
|
|
572
|
+
})) {
|
|
573
|
+
const child = resolve(dir, entry.name);
|
|
574
|
+
if (entry.isDirectory()) walkRouteRoot(child);else if (isRouteFile(child)) files.add(normalizePath(child));
|
|
575
|
+
}
|
|
576
|
+
};
|
|
577
|
+
if (statSync(routeRoot, {
|
|
578
|
+
throwIfNoEntry: false
|
|
579
|
+
})?.isDirectory()) walkRouteRoot(routeRoot);
|
|
580
|
+
return files;
|
|
581
|
+
};
|
|
582
|
+
const registrySpecifier = `./node_modules/.vxrn/native-routes-${opts.platform}.mjs`;
|
|
583
|
+
const registryPath = resolve(root, registrySpecifier);
|
|
550
584
|
const routes = {
|
|
551
585
|
routeRoot,
|
|
552
586
|
files: /* @__PURE__ */new Set(),
|
|
553
|
-
isRouteFile
|
|
587
|
+
isRouteFile,
|
|
588
|
+
scanFiles,
|
|
589
|
+
updateFiles(files) {
|
|
590
|
+
routes.files = files;
|
|
591
|
+
if (!useDynamicRouteRegistry) return;
|
|
592
|
+
const source = `export const routes = {
|
|
593
|
+
${[...files].sort().map(file => {
|
|
594
|
+
const routeKey = `/${normalizePath(relative(root, file))}`;
|
|
595
|
+
let importPath = normalizePath(relative(dirname(registryPath), file));
|
|
596
|
+
if (!importPath.startsWith(".")) importPath = `./${importPath}`;
|
|
597
|
+
return ` ${JSON.stringify(routeKey)}: () => import(${JSON.stringify(importPath)})`;
|
|
598
|
+
}).join(",\n")}
|
|
599
|
+
}
|
|
600
|
+
`;
|
|
601
|
+
mkdirSync(dirname(registryPath), {
|
|
602
|
+
recursive: true
|
|
603
|
+
});
|
|
604
|
+
if (!existsSync(registryPath) || readFileSync(registryPath, "utf8") !== source) writeFileSync(registryPath, source);
|
|
605
|
+
}
|
|
554
606
|
};
|
|
607
|
+
routes.updateFiles(routes.scanFiles());
|
|
608
|
+
const routeImports = useDynamicRouteRegistry ? `import { routes } from ${JSON.stringify(registrySpecifier)};` : `var _routes = import.meta.glob(${JSON.stringify(routeGlobs)}, { exhaustive: true });
|
|
609
|
+
// fix route keys: One expects '/${routerRoot}/...' prefix but import.meta.glob returns './${routerRoot}/...'
|
|
610
|
+
var routes = {};
|
|
611
|
+
Object.keys(_routes).forEach(function(key) {
|
|
612
|
+
var normalizedKey = key.replace(/^\\.\\//, '');
|
|
613
|
+
routes['/' + normalizedKey] = _routes[key];
|
|
614
|
+
});`;
|
|
615
|
+
const routeHmr = useDynamicRouteRegistry ? `if (import.meta.hot) {
|
|
616
|
+
import.meta.hot.accept(${JSON.stringify(registrySpecifier)}, function(next) {
|
|
617
|
+
if (globalThis.__VXRN_UPDATE_NATIVE_ROUTES__) {
|
|
618
|
+
globalThis.__VXRN_UPDATE_NATIVE_ROUTES__(next.routes);
|
|
619
|
+
}
|
|
620
|
+
});
|
|
621
|
+
}` : "";
|
|
555
622
|
return {
|
|
556
623
|
routes,
|
|
557
624
|
plugin: {
|
|
@@ -561,20 +628,7 @@ createApp({
|
|
|
561
628
|
},
|
|
562
629
|
load(id) {
|
|
563
630
|
if (id !== resolvedId) return;
|
|
564
|
-
|
|
565
|
-
const walkRouteRoot = dir => {
|
|
566
|
-
this.addWatchFile(dir);
|
|
567
|
-
for (const entry of readdirSync(dir, {
|
|
568
|
-
withFileTypes: true
|
|
569
|
-
})) {
|
|
570
|
-
const child = resolve(dir, entry.name);
|
|
571
|
-
if (entry.isDirectory()) walkRouteRoot(child);else if (isRouteFile(child)) routes.files.add(normalizePath(child));
|
|
572
|
-
}
|
|
573
|
-
};
|
|
574
|
-
if (statSync(routeRoot, {
|
|
575
|
-
throwIfNoEntry: false
|
|
576
|
-
})?.isDirectory()) walkRouteRoot(routeRoot);else this.addWatchFile(dirname(routeRoot));
|
|
577
|
-
return entryCode;
|
|
631
|
+
return entryCode();
|
|
578
632
|
}
|
|
579
633
|
}
|
|
580
634
|
};
|
|
@@ -1256,11 +1310,13 @@ class ReactNativeDevRuntime extends BaseDevRuntime {
|
|
|
1256
1310
|
}
|
|
1257
1311
|
}
|
|
1258
1312
|
|
|
1259
|
-
reload() {
|
|
1260
|
-
var
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1313
|
+
reload(reason) {
|
|
1314
|
+
var reloadNativeBundle = globalThis.__VXRN_RELOAD_NATIVE_DEV_BUNDLE__;
|
|
1315
|
+
if (typeof reloadNativeBundle === 'function') {
|
|
1316
|
+
reloadNativeBundle(reason);
|
|
1317
|
+
return;
|
|
1318
|
+
}
|
|
1319
|
+
console.error('[vxrn HMR]: DevSettings.reload is unavailable');
|
|
1264
1320
|
}
|
|
1265
1321
|
|
|
1266
1322
|
setup(socket) {
|
|
@@ -1282,10 +1338,10 @@ class ReactNativeDevRuntime extends BaseDevRuntime {
|
|
|
1282
1338
|
if (message.type === 'hmr:update') {
|
|
1283
1339
|
// a patch that cannot be applied in place is the reload signal
|
|
1284
1340
|
if (!runtime.applyHmrUpdate(message.code, message.changedIds, message.seq)) {
|
|
1285
|
-
runtime.reload();
|
|
1341
|
+
runtime.reload('native HMR update could not be applied');
|
|
1286
1342
|
}
|
|
1287
1343
|
} else if (message.type === 'hmr:reload') {
|
|
1288
|
-
runtime.reload();
|
|
1344
|
+
runtime.reload('native route map changed');
|
|
1289
1345
|
}
|
|
1290
1346
|
} catch (error) {
|
|
1291
1347
|
console.error('[vxrn HMR]: failed to apply update', error);
|