@nativescript/vite 8.0.0-alpha.50 → 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;AAE/E,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,iFAAiF;AACjF,+EAA+E;AAC/E,iFAAiF;AACjF,0EAA0E;AAE1E,kFAAkF;AAClF,EAAE;AACF,6EAA6E;AAC7E,EAAE;AACF,oGAAoG;AACpG,+DAA+D;AAC/D,EAAE;AACF,qFAAqF;AACrF,gFAAgF;AAChF,4EAA4E;AAC5E,qFAAqF;AACrF,qFAAqF;AACrF,iFAAiF;AACjF,wBAAwB;AACxB,EAAE;AACF,kFAAkF;AAClF,6EAA6E;AAC7E,mFAAmF;AACnF,mFAAmF;AACnF,oFAAoF;AACpF,QAAQ;AAER,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AAE/E,mFAAmF;AACnF,8EAA8E;AAC9E,kFAAkF;AAClF,4EAA4E;AAC5E,qCAAqC;AACrC,MAAM,oBAAoB,GAAG,qDAAqD,CAAC;AACnF,MAAM,sBAAsB,GAAG;IAC9B,mEAAmE;IACnE,wCAAwC;IACxC,6CAA6C;IAC7C,+GAA+G;IAC/G,uCAAuC;IACvC,GAAG;IACH,0FAA0F;IAC1F,2FAA2F;IAC3F,6FAA6F;CAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,kFAAkF;AAClF,6EAA6E;AAC7E,SAAS,iBAAiB,CAAC,QAAgB;IAC1C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC;QACJ,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,sEAAsE,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxB,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,kFAAkF;AAClF,qEAAqE;AACrE,oFAAoF;AACpF,kFAAkF;AAClF,mFAAmF;AACnF,gEAAgE;AAChE,SAAS,oBAAoB,CAAC,QAAgB,EAAE,MAAc;IAC7D,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,WAAW,GAAG,KAAK,CAAC;IACrB,CAAC;SAAM,CAAC;QACP,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC/E,IAAI,EAAE,EAAE,CAAC;YACR,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChD,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;gBACxE,IAAI,CAAC;oBACJ,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC3C,MAAM;gBACP,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACX,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IAChE,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,mFAAmF;AACnF,kFAAkF;AAClF,8EAA8E;AAC9E,iFAAiF;AACjF,oFAAoF;AACpF,kCAAkC;AAClC,SAAS,wBAAwB,CAAC,IAAY,EAAE,QAAgB;IAC/D,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,iDAAiD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,0EAA0E;IAEtG,+EAA+E;IAC/E,2EAA2E;IAC3E,gFAAgF;IAChF,0EAA0E;IAC1E,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEzC,iFAAiF;IACjF,gFAAgF;IAChF,mFAAmF;IACnF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,MAAM,GAAG,CAAC,CAAC;IAC/E,KAAK,CAAC,IAAI,CAAC,2BAA2B,MAAM,GAAG,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAA4B;IAC3D,GAAG,wBAAwB;IAC3B,MAAM,EAAE,OAAO;IACf,mBAAmB,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAkB;QACrE,IAAI,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,OAAO,sBAAsB,CAAC;QAC/B,CAAC;QACD,OAAO,wBAAwB,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;IAC/D,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/react/server/strategy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nativescript/vite",
3
- "version": "8.0.0-alpha.50",
3
+ "version": "8.0.0-alpha.52",
4
4
  "description": "Vite for NativeScript",
5
5
  "main": "./index.js",
6
6
  "module": "./index.js",
@@ -17,13 +17,37 @@
17
17
  import { createElement, Fragment as ReactFragment } from 'react';
18
18
  export const Fragment = ReactFragment;
19
19
  // The automatic runtime passes `key` separately from `config` (which carries the
20
- // remaining props, including `children`). createElement reads `key` off the config
21
- // object, so fold it back in when present; otherwise pass config straight through.
20
+ // remaining props, including `children`). We bridge to `React.createElement`, which
21
+ // expects `key` IN the props object and `children` as TRAILING POSITIONAL ARGS.
22
+ //
23
+ // Children must be spread positionally — NOT left as a single `config.children`
24
+ // array — otherwise React treats a multi-child element (what `jsxs` produces for
25
+ // static markup like `<view><a/><b/></view>`) as a DYNAMIC list and emits a spurious
26
+ // "Each child in a list should have a unique key" warning for ordinary static JSX.
27
+ // Spreading them as args is the classic-createElement shape React exempts from key
28
+ // checks, while genuinely keyed `.map()` lists keep their keys on each element.
22
29
  function jsxImpl(type, config, maybeKey) {
23
- if (maybeKey !== undefined) {
24
- return createElement(type, { ...(config || {}), key: maybeKey });
30
+ const props = {};
31
+ let children;
32
+ let hasChildren = false;
33
+ if (config) {
34
+ for (const k in config) {
35
+ if (k === 'children') {
36
+ children = config.children;
37
+ hasChildren = true;
38
+ }
39
+ else {
40
+ props[k] = config[k];
41
+ }
42
+ }
25
43
  }
26
- return createElement(type, config);
44
+ if (maybeKey !== undefined)
45
+ props.key = maybeKey;
46
+ if (!hasChildren)
47
+ return createElement(type, props);
48
+ if (Array.isArray(children))
49
+ return createElement(type, props, ...children);
50
+ return createElement(type, props, children);
27
51
  }
28
52
  export function jsx(type, config, maybeKey) {
29
53
  return jsxImpl(type, config, maybeKey);
@@ -1 +1 @@
1
- {"version":3,"file":"react-jsx-runtime.js","sourceRoot":"","sources":["../../../../packages/vite/shims/react-jsx-runtime.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6BAA6B;AAC7B,EAAE;AACF,iFAAiF;AACjF,oFAAoF;AACpF,8EAA8E;AAC9E,mFAAmF;AACnF,mFAAmF;AACnF,kFAAkF;AAClF,iBAAiB;AACjB,EAAE;AACF,kFAAkF;AAClF,mFAAmF;AACnF,uEAAuE;AACvE,gFAAgF;AAChF,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC;AAEtC,iFAAiF;AACjF,mFAAmF;AACnF,mFAAmF;AACnF,SAAS,OAAO,CAAC,IAAS,EAAE,MAAW,EAAE,QAAc;IACtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAS,EAAE,MAAW,EAAE,QAAc;IACzD,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAS,EAAE,MAAW,EAAE,QAAc;IAC1D,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAS,EAAE,MAAW,EAAE,QAAc;IAC5D,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"react-jsx-runtime.js","sourceRoot":"","sources":["../../../../packages/vite/shims/react-jsx-runtime.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6BAA6B;AAC7B,EAAE;AACF,iFAAiF;AACjF,oFAAoF;AACpF,8EAA8E;AAC9E,mFAAmF;AACnF,mFAAmF;AACnF,kFAAkF;AAClF,iBAAiB;AACjB,EAAE;AACF,kFAAkF;AAClF,mFAAmF;AACnF,uEAAuE;AACvE,gFAAgF;AAChF,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC;AAEtC,iFAAiF;AACjF,oFAAoF;AACpF,gFAAgF;AAChF,EAAE;AACF,gFAAgF;AAChF,iFAAiF;AACjF,qFAAqF;AACrF,mFAAmF;AACnF,mFAAmF;AACnF,gFAAgF;AAChF,SAAS,OAAO,CAAC,IAAS,EAAE,MAAW,EAAE,QAAc;IACtD,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,QAAa,CAAC;IAClB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,MAAM,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;gBACtB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAC3B,WAAW,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC;IACjD,IAAI,CAAC,WAAW;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC5E,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAS,EAAE,MAAW,EAAE,QAAc;IACzD,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAS,EAAE,MAAW,EAAE,QAAc;IAC1D,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAS,EAAE,MAAW,EAAE,QAAc;IAC5D,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC"}