Skip to content

Commit a8153b3

Browse files
authored
Merge pull request #1275 from jser/jser-week-732
2025-04-17のJS: Zod 4 beta、Next.js 15.3とRspack、LLMを使ったテストのマイグレーション
2 parents 85c19be + 12ff829 commit a8153b3

File tree

1 file changed

+215
-0
lines changed

1 file changed

+215
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
---
2+
title: "2025-04-17のJS: Zod 4 beta、Next.js 15.3とRspack、LLMを使ったテストのマイグレーション"
3+
author: "azu"
4+
layout: post
5+
date: 2025-04-17T14:41:52.073Z
6+
category: JSer
7+
tags:
8+
- Next.js
9+
- React
10+
- TypeScript
11+
- test
12+
- css
13+
14+
---
15+
16+
JSer.info #732 - Zod 4 betaがリリースされました。
17+
18+
- [Introducing Zod 4 beta | Zod Docs](https://v4.zod.dev/v4)
19+
20+
パフォーマンスとBundle Sizeの改善が行われ、Tree Shaking可能なAPIを提供する`@zod/mini``@zod/core`パッケージが公開されています。また、再帰も可能なオブジェクトの定義をする`z.interface()` API、メタデータを管理する`z.registry()` API、JSONスキーマ変換のための`toJSONSchema()` APIなどが追加されています。その他にも文字列のTop Level APIの追加や変更、エラーメッセージを`message`から`error`パラメータへ変更など多くの変更が含まれています。
21+
22+
----
23+
24+
Next.js 15.3がリリースされ、Rspackをビルドツールとしてサポートするようになりました。
25+
26+
- [Next.js 15.3 | Next.js](https://nextjs.org/blog/next-15-3)
27+
- [Rspack joins the Next.js ecosystem - Rspack](https://rspack.dev/blog/rspack-next-partner)
28+
29+
Next.js 15.3では、Turbopackを`next build`でも利用可能になったほか、Rspackのサポート、クライアントサイドの計測を行う`instrumentation-client.{js,ts}`のサポート、Navigation Hooksのサポートなどが追加されています。また、`useLinkStatus`の追加やTypeScript LSPのパフォーマンス改善も行われました。実験的な機能として`<Link unstable_dynamicOnHovertrue>`のサポートなども含まれています。
30+
31+
----
32+
33+
AirbnbがEnzymeからReact Testing Libraryへの大規模なテスト移行をLLMを活用して行った事例について紹介されています。
34+
35+
- [Accelerating Large-Scale Test Migration with LLMs | by Charles Covey-Brandt | The Airbnb Tech Blog | Mar, 2025 | Medium](https://medium.com/airbnb-engineering/accelerating-large-scale-test-migration-with-llms-9565c208023b)
36+
37+
移行プロセスをステップ化し、再試行ループの導入、関連するテストや移行ガイドラインをコンテキストとして追加することで、当初は75%のテストが自動的に移行できました。さらに、失敗したファイルにどのステップでうまくいかなかったかをコメントとして残し、それらのファイルを使って学習することで、最終的には97%まで自動的に移行できるようになったとのことです。
38+
39+
----
40+
41+
{% include inline-support.html %}
42+
43+
----
44+
45+
<h1 class="site-genre">ヘッドライン</h1>
46+
47+
----
48+
49+
## Bun v1.2.9 | Bun Blog
50+
[bun.sh/blog/bun-v1.2.9](https://bun.sh/blog/bun-v1.2.9 "Bun v1.2.9 | Bun Blog")
51+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">ReleaseNote</span></p>
52+
53+
Bun v1.2.9リリース。
54+
Redisクライアントである`Bub.redis`の追加、`require.extensions`のサポート、`require.resolve``paths`オプションのサポートなど
55+
56+
57+
----
58+
59+
## Introducing Zod 4 | Zod Docs
60+
[v4.zod.dev/v4](https://v4.zod.dev/v4 "Introducing Zod 4 | Zod Docs")
61+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p>
62+
63+
Zod 4 betaリリース。
64+
パフォーマンスの改善、Bundle Sizeの改善、Tree Shaking可能なAPIを提供する`@zod/mini``@zod/core`パッケージを公開。
65+
再帰も可能なオブジェクトの定義をする`z.interface()` APIの追加、メタデータを管理数r`z.registry()` API、`toJSONSchema()` APIの追加。
66+
文字列のTop Level APIの追加や変更、エラーメッセージを`message`から`error`パラメータへ変更など
67+
68+
69+
----
70+
71+
## Next.js 15.3 | Next.js
72+
[nextjs.org/blog/next-15-3](https://nextjs.org/blog/next-15-3 "Next.js 15.3 | Next.js")
73+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Next.js</span> <span class="jser-tag">ReleaseNote</span></p>
74+
75+
Next.js 15.3リリース。
76+
Turbopackを`next build`でも利用可能に、Rspackのサポート、`instrumentation-client.{js,ts}`のサポート、Navigation Hooksのサポート。
77+
`useLinkStatus`の追加、TypeScript LSPのパフォーマンス改善。
78+
実験的な機能として`<Link unstable_dynamicOnHovertrue>`のサポートなど
79+
80+
81+
----
82+
83+
## Release 0.12.0 | StyleX
84+
[stylexjs.com/blog/v0.12.0](https://stylexjs.com/blog/v0.12.0 "Release 0.12.0 | StyleX")
85+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">css</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p>
86+
87+
StyleX v0.12.0リリース。
88+
パフォーマンスの改善、ESLintプラグインに`no-legacy-media-queries`を追加。
89+
`@stylexjs/esbuild-plugin`/`@stylexjs/nextjs-plugin`/`@stylexjs/webpack-plugin`などを非推奨に変更など
90+
91+
92+
----
93+
94+
## Shipping Temporal | SpiderMonkey JavaScript/WebAssembly Engine
95+
[spidermonkey.dev/blog/2025/04/11/shipping-temporal.html](https://spidermonkey.dev/blog/2025/04/11/shipping-temporal.html "Shipping Temporal | SpiderMonkey JavaScript/WebAssembly Engine")
96+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Firefox</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">news</span></p>
97+
98+
SpinderMonkeyがECMAScript Proposal Stage 3のTemporalの実装がFirefox 139でリリースされる。
99+
100+
101+
----
102+
103+
## Astro 5.7 | Astro
104+
[astro.build/blog/astro-570/](https://astro.build/blog/astro-570/ "Astro 5.7 | Astro")
105+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">astro</span> <span class="jser-tag">ReleaseNote</span></p>
106+
107+
Astro 5.7リリース。
108+
実験的なFont APIの追加、Sessions APIがStableに変更、SVGファイルをコンポーネントとして読み込めるように、`astro:config`がStableへ変更など
109+
110+
111+
----
112+
<h1 class="site-genre">アーティクル</h1>
113+
114+
----
115+
116+
## Accelerating Large-Scale Test Migration with LLMs | by Charles Covey-Brandt | The Airbnb Tech Blog | Mar, 2025 | Medium
117+
[medium.com/airbnb-engineering/accelerating-large-scale-test-migration-with-llms-9565c208023b](https://medium.com/airbnb-engineering/accelerating-large-scale-test-migration-with-llms-9565c208023b "Accelerating Large-Scale Test Migration with LLMs | by Charles Covey-Brandt | The Airbnb Tech Blog | Mar, 2025 | Medium")
118+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">test</span> <span class="jser-tag">LanguageModel</span> <span class="jser-tag">article</span></p>
119+
120+
EnzymeからReact Testing Libraryへの移行をLLMを活用してマイグレーションした話。
121+
移行のプロセスのステップ化、再試行ループ、コンテキストに関連するテスト/移行ガイドラインの追加することで75%は移行できた。
122+
そこからどのステップでうまくいっていないかをコメントに残して、そのファイルを使った学習をすることで97%まで自動的に移行ができたという話
123+
124+
125+
----
126+
127+
## Deploy your Next.js app to Cloudflare Workers with the Cloudflare adapter for OpenNext
128+
[blog.cloudflare.com/deploying-nextjs-apps-to-cloudflare-workers-with-the-opennext-adapter/](https://blog.cloudflare.com/deploying-nextjs-apps-to-cloudflare-workers-with-the-opennext-adapter/ "Deploy your Next.js app to Cloudflare Workers with the Cloudflare adapter for OpenNext")
129+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Next.js</span> <span class="jser-tag">cloudflare</span> <span class="jser-tag">article</span></p>
130+
131+
Cloudflare WorkersでNext.jsを動かすOpenNextについて。
132+
133+
134+
----
135+
136+
## WebAssembly の歩き方
137+
[zenn.dev/canary\_techblog/articles/47af6331b4ecfb](https://zenn.dev/canary_techblog/articles/47af6331b4ecfb "WebAssembly の歩き方")
138+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebAssembly</span> <span class="jser-tag">article</span></p>
139+
140+
WebAssemblyとはどういうものかについて。
141+
WebAssemblyが定義しているもの、バイトコード表現とテキスト表現、仕様の実装であるEmbedderについて
142+
143+
144+
----
145+
146+
## Rspack joins the Next.js ecosystem - Rspack
147+
[rspack.dev/blog/rspack-next-partner](https://rspack.dev/blog/rspack-next-partner "Rspack joins the Next.js ecosystem - Rspack")
148+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Next.js</span> <span class="jser-tag">rspack</span> <span class="jser-tag">article</span></p>
149+
150+
Next.jsのRspackサポートについて
151+
152+
153+
----
154+
155+
## Advanced React in the Wild
156+
[largeapps.dev/case-studies/advanced/](https://largeapps.dev/case-studies/advanced/ "Advanced React in the Wild")
157+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">performance</span> <span class="jser-tag">article</span></p>
158+
159+
Reactで書かれたアプリケーションのパフォーマンス改善の事例集
160+
161+
162+
----
163+
164+
## Default styles for h1 elements are changing | MDN Blog
165+
[developer.mozilla.org/en-US/blog/h1-element-styles/](https://developer.mozilla.org/en-US/blog/h1-element-styles/ "Default styles for h1 elements are changing | MDN Blog")
166+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">HTML</span> <span class="jser-tag">article</span> <span class="jser-tag">browser</span> <span class="jser-tag">css</span></p>
167+
168+
セクションに基づいた暗黙的な`<h1>`要素のデフォルトのスタイル(UAのスタイル)が変更される。
169+
Firefox 138、Chrome 136以降にこの変更が含まれる
170+
171+
172+
----
173+
<h1 class="site-genre">サイト、サービス、ドキュメント</h1>
174+
175+
----
176+
177+
## goldbergyoni/nodejs-testing-best-practices: Beyond the basics of Node.js testing. Including a super-comprehensive best practices list and an example app (April 2025)
178+
[github.com/goldbergyoni/nodejs-testing-best-practices](https://github.com/goldbergyoni/nodejs-testing-best-practices "goldbergyoni/nodejs-testing-best-practices: Beyond the basics of Node.js testing. Including a super-comprehensive best practices list and an example app (April 2025)")
179+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">test</span> <span class="jser-tag">document</span></p>
180+
181+
Node.jsでのテストについてのドキュメント
182+
183+
184+
----
185+
186+
## lightpanda-io/browser: Lightpanda: the headless browser designed for AI and automation
187+
[github.com/lightpanda-io/browser](https://github.com/lightpanda-io/browser "lightpanda-io/browser: Lightpanda: the headless browser designed for AI and automation")
188+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">zig</span> <span class="jser-tag">browser</span> <span class="jser-tag">software</span></p>
189+
190+
ZigとV8を使って書かれたヘッドレスブラウザ
191+
192+
193+
----
194+
195+
## Ray-D-Song/lexe: Package your Node.js application into a single executable file, but only 10MB.🔥
196+
[github.com/Ray-D-Song/lexe?tab&#x3D;readme-ov-file](https://github.com/Ray-D-Song/lexe?tab=readme-ov-file "Ray-D-Song/lexe: Package your Node.js application into a single executable file, but only 10MB.🔥")
197+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">Tools</span></p>
198+
199+
LLRTをRuntimeとして使ったSingle Executable Binaryを作成するツール。
200+
Node.jsの一部に互換のあるAPIを提供し、バイナリサイズが小さいという特徴がある
201+
202+
203+
----
204+
<h1 class="site-genre">書籍関係</h1>
205+
206+
----
207+
208+
## 「型システムのしくみ」発売のお知らせ - まめめも
209+
[mametter.hatenablog.com/entry/2025/04/10/063009](https://mametter.hatenablog.com/entry/2025/04/10/063009 "「型システムのしくみ」発売のお知らせ - まめめも")
210+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">book</span> <span class="jser-tag">program</span></p>
211+
212+
TypeScriptのサブセットの型チェッカを実装していく型システムについての書籍
213+
214+
215+
----

0 commit comments

Comments
 (0)