@nativescript/vite 8.0.0-alpha.51 → 8.0.0-alpha.52
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.
|
@@ -2,6 +2,8 @@ import { createRequire } from 'node:module';
|
|
|
2
2
|
import { readFileSync, existsSync } from 'node:fs';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
import { typescriptServerStrategy } from '../../typescript/server/strategy.js';
|
|
5
|
+
import { runHotUpdatePrologue } from '../../../server/websocket-hot-update.js';
|
|
6
|
+
import { purgeTransformCachesForHotUpdate } from '../../../server/transform-cache-invalidation.js';
|
|
5
7
|
// React server strategy for NativeScript HMR.
|
|
6
8
|
//
|
|
7
9
|
// React renders through DOMiNATIVE via `@nativescript-community/react` and runs
|
|
@@ -146,5 +148,83 @@ export const reactServerStrategy = {
|
|
|
146
148
|
}
|
|
147
149
|
return buildCondRequireReexport(code, moduleId || '') ?? code;
|
|
148
150
|
},
|
|
151
|
+
// Like Solid (and unlike plain TypeScript, which recovers via a full
|
|
152
|
+
// `resetRootView`), React HMR applies an edit by having the CLIENT re-fetch +
|
|
153
|
+
// re-evaluate the just-changed route module and read its fresh
|
|
154
|
+
// `Route.options.component`. So the server MUST purge its transform caches
|
|
155
|
+
// BEFORE the client re-imports — otherwise the client races the server and the
|
|
156
|
+
// `/ns/m` re-fetch returns the PREVIOUS save's transform → V8 evaluates stale
|
|
157
|
+
// code → the visible page is "one save behind". The default TS strategy
|
|
158
|
+
// broadcasts the delta immediately (no purge), which is why React edits never
|
|
159
|
+
// applied. We mirror Solid's contract: defer the prologue's delta broadcast,
|
|
160
|
+
// purge the shared + Vite transform caches for the file AND its transitive
|
|
161
|
+
// importers (the route tree statically imports the route), re-transform fresh,
|
|
162
|
+
// then broadcast the delta.
|
|
163
|
+
deferDeltaBroadcast: true,
|
|
164
|
+
async handleHotUpdate(ctx, deps) {
|
|
165
|
+
const state = await runHotUpdatePrologue(ctx, deps);
|
|
166
|
+
if (!state)
|
|
167
|
+
return;
|
|
168
|
+
const { root, metrics, emitSummary } = state;
|
|
169
|
+
const { moduleGraph, verbose, sharedTransformRequest } = deps;
|
|
170
|
+
const { file, server } = ctx;
|
|
171
|
+
const isAppScriptFile = /\.(tsx?|jsx?)$/i.test(file);
|
|
172
|
+
if (!isAppScriptFile) {
|
|
173
|
+
emitSummary();
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
metrics.tAfterFramework = Date.now();
|
|
177
|
+
try {
|
|
178
|
+
const rel = '/' + path.posix.normalize(path.relative(root, file)).split(path.sep).join('/');
|
|
179
|
+
const normalizedId = moduleGraph.normalizeGraphId(rel);
|
|
180
|
+
if (!moduleGraph.get(normalizedId)) {
|
|
181
|
+
moduleGraph.upsert(rel, `/* react-hmr ${Date.now()} */`, [], { emitDeltaOnInsert: true });
|
|
182
|
+
}
|
|
183
|
+
// Purge BOTH the shared transform-request cache and Vite's moduleGraph
|
|
184
|
+
// transformResult for the changed file + its bounded transitive importers
|
|
185
|
+
// (route tree → route file), so the client's re-import evaluates fresh code.
|
|
186
|
+
purgeTransformCachesForHotUpdate({ file, server, sharedTransformRequest, verbose, label: 'react' });
|
|
187
|
+
// Re-transform AFTER invalidation so the broadcast hash matches fresh
|
|
188
|
+
// content (the prologue's upsert ran before Vite's auto-invalidate fired).
|
|
189
|
+
try {
|
|
190
|
+
const ext = file.match(/\.(?:[mc]?[jt]sx?)$/i)?.[0] || '';
|
|
191
|
+
const baseSpec = '/' + path.posix.normalize(path.relative(root, file)).split(path.sep).join('/');
|
|
192
|
+
const baseNoExt = ext ? baseSpec.replace(/\.(?:[mc]?[jt]sx?)$/i, '') : baseSpec;
|
|
193
|
+
const candidates = Array.from(new Set([baseSpec, baseNoExt, baseNoExt + '.ts', baseNoExt + '.tsx', baseNoExt + '.js', baseNoExt + '.jsx', baseNoExt + '.mjs', file]));
|
|
194
|
+
let freshCode = '';
|
|
195
|
+
for (const cand of candidates) {
|
|
196
|
+
try {
|
|
197
|
+
const fresh = await sharedTransformRequest(cand, 30000);
|
|
198
|
+
if (fresh?.code && !freshCode)
|
|
199
|
+
freshCode = fresh.code;
|
|
200
|
+
}
|
|
201
|
+
catch { }
|
|
202
|
+
}
|
|
203
|
+
if (freshCode) {
|
|
204
|
+
const existingGm = moduleGraph.get(normalizedId);
|
|
205
|
+
moduleGraph.upsert(normalizedId, freshCode, (existingGm?.deps || []), { broadcastDelta: false });
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch (e) {
|
|
209
|
+
if (verbose)
|
|
210
|
+
console.warn('[hmr-ws][react] post-invalidation re-transform failed', e);
|
|
211
|
+
}
|
|
212
|
+
// Broadcast the now-fresh delta, AFTER cache invalidation.
|
|
213
|
+
try {
|
|
214
|
+
const gm = moduleGraph.get(normalizedId);
|
|
215
|
+
if (gm)
|
|
216
|
+
moduleGraph.emitDelta([gm], []);
|
|
217
|
+
}
|
|
218
|
+
catch (e) {
|
|
219
|
+
if (verbose)
|
|
220
|
+
console.warn('[hmr-ws][react] post-invalidation broadcast failed', e);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
catch (e) {
|
|
224
|
+
if (verbose)
|
|
225
|
+
console.warn('[hmr-ws][react] failed to handle hot update for', file, e);
|
|
226
|
+
}
|
|
227
|
+
emitSummary();
|
|
228
|
+
},
|
|
149
229
|
};
|
|
150
230
|
//# sourceMappingURL=strategy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/react/server/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/react/server/strategy.ts"],"names":[],"mappings":"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"}
|