$ the-wire · showcase
Jest strips TS types sans transformer; React fixes DevTools release inputs
By RepoJournal · Filed · About Meta
Jest now strips TypeScript types from unclaimed files, while React addresses DevTools release reproducibility and Fizz import map security.
Jest's `ScriptTransformer` now runs `module.stripTypeScriptTypes()` on `.ts`, `.mts`, and `.cts` files when no transformer claims them, as Node's `node:vm` cannot parse TypeScript. This follows Node's extension-keyed approach on both CommonJS and ESM paths, with `transformIgnorePatterns` still honored [1]. The result: developers can run tests on type-only files without configuring a transformer, reducing setup overhead.
React DevTools builds become reproducible: `build-and-test.js` previously fed three different commits into one release, breaking Firefox's source review; it now requires a clean tree and resolves `HEAD` once [2]. Build dates, which varied by calendar, timezone, and locale, are removed from extension manifests, so AMO rebuilds can match uploaded zips [3]. These changes streamline the extension release process.
React's Fizz renderer now applies the script nonce to `importMap` server-rendered import maps, aligning them with nonce-based Content Security Policies [4]. Separately, Flight's debug info growth in development could exponentially multiply entries when deduplicating objects, leading to a `RangeError`; the fix prevents this by not copying debug info received from elsewhere [5]. React Native fixes include preserving queued frames in the Cxx WebSocket client before handshake and ensuring `Animated.Value`-derived nodes fire `addListener` for natively driven animations, a regression from 0.78 [6][7].
Action items
- → Review Jest configuration for .ts files relying on type stripping after upgrading facebook/jest [plan]
- → Verify React Native Animated listener behavior on natively driven animations after patch facebook/react-native [monitor]
- → Check DevTools extension release process for reproducibility improvements facebook/react [monitor]
References
- [1] feat: strip TypeScript types when no transformer claims the file ↗ facebook/jest
- [2] [DevTools] Use one commit for extension release inputs (#37307) ↗ facebook/react
- [3] [DevTools] Remove build dates from extension manifests (#37306) ↗ facebook/react
- [4] [Fizz] Add `nonce` to rendered `import maps` (#37339) ↗ facebook/react
- [5] [Flight] Fix RangeError from exponential debug info growth (#37481) ↗ facebook/react
- [6] Fix Cxx WebSocket write queue state (#58201) ↗ facebook/react-native
- [7] Fix Animated listeners on nodes derived from Animated.Value (#58037) ↗ facebook/react-native