ESLint v9.34.0、multithread lintingをサポート#

日付:2025年8月22日

ESLint v9.34.0 で multithread linting(複数のスレッドを用いて複数のファイルを同時に処理する機能)が導入された。大規模プロジェクトや潤沢な環境であれば大幅なパフォーマンス改善が期待できる。

Multithread lintingは--concurrencyオプションで有効にできる。--concurrency=autoでは、最適なスレッド数が自動的に選択される。数値によりスレッド数を指定することも可能。

Terminal window
eslint --concurrency=auto

Multithread linting機能を紹介する記事では、次の利用を推奨している。

  • --concurrency=autoに頼らずマシン毎に最適なスレッド数を指定する。
    • 最適なスレッド数を見つけるにはマシンの物理コアの半分から始めて、より高い/低い値をテストする。
  • 増分実行を高速するために--cacheと併用する。

出展:ESLint v9.34.0 released - ESLint - Pluggable JavaScript Linter

GitHub、WebP画像をサポート#

日付:2025年8月28日

GitHubのissueやpull requestsに添付されたWebP画像やリポジトリやGistにアップグレードされたWebP画像がインラインでレンダリングされるようになった。

出展:Added support for WebP images - GitHub Changelog

GitHub、リポジトリ作成UIの変更#

日付:2025年8月26日

GitHubでリポジトリを作成する画面のUIの変更が一般公開された。

またリポジトリインサイトのコミットページが更新。コミットグラフをスクリーンリーダーで表示できるようになった。CSVまたはPNG形式でダウンロードすることも可能。

出展:Improved repository creation generally available, plus ruleset & insights improvements - GitHub Changelog

Rspack 1.5、ビルドパフォーマンス大幅改善#

日付:2025年8月26日

Rspack 1.5がリリースされ、ビルドパフォーマンスの大幅な改善を実現。特に大規模プロジェクトでの効果が顕著で、barrel file最適化によりモジュール解決が49%削減、ビルド時間が46%短縮された。

主な改善点として、Rust製のネイティブファイルシステムウォッチャーの導入によりHMRパフォーマンスが50%向上、ブラウザ環境での直接実行を可能にする@rspack/browserパッケージの追加、定数とTypeScript enumのクロスモジュール最適化などが挙げられる。

出展:Announcing Rspack 1.5 - Rspack Blog

Zod 4.1がCodecs APIを導入、双方向データ変換をサポート#

日付:2025年8月23日

Zod 4.1が新しいz.codec() APIを導入した。従来の.transform()が一方向のみだったのに対し、双方向変換を可能にし、型安全性と柔軟性を向上させた。

基本的な使用例:

const stringToDate = z.codec(
z.string(), // 入力スキーマ:ISO文字列
z.date(), // 出力スキーマ:Dateオブジェクト
{
decode: str => new Date(str), // 文字列 → Date
encode: date => date.toISOString(), // Date → 文字列
}
);
// 双方向変換
stringToDate.decode("2024-01-15T10:30:00.000Z"); // Dateオブジェクト
stringToDate.encode(new Date()); // "2024-01-15T10:30:00.000Z"

Codecsの特徴:

  • 双方向変換:decode(入力→出力)とencode(出力→入力)の両方を定義可能
  • 型安全性:.decode()は厳密な型チェックを行い、.parse()よりも安全
  • 非同期対応:変換関数をasync/awaitで記述可能
  • 組み合わせ自由:他のZodスキーマと自由に組み合わせ可能

公式が次のようなコピー&ペーストで利用可能な標準的なコーデック実装をいくつか提供している。

const stringToBigInt = z.codec(z.string(), z.bigint(), {
decode: str => BigInt(str),
encode: bigint => bigint.toString(),
});
const jsonCodec = z.codec(z.string(), z.json(), {
decode: jsonString => JSON.parse(jsonString),
encode: value => JSON.stringify(value),
});

出展:Introducing Zod Codecs - Colin McDonnell

Cloudflare Workers AssetsのJavaScript Content-Typeがtext/javascriptに変更#

日付:2025年8月25日

Cloudflare Workers AssetsのJavaScriptファイルのContent-Typeがapplication/javascriptからtext/javascriptに変更された。HTML Living Standardで推奨される標準的なMIMEタイプへの対応。

両方のMIMEタイプをサポートする主要ブラウザでは後方互換性があり、既存の動作に影響はない。次回のデプロイで反映される。

出展:Content type returned in Workers Assets for Javascript files is now text/javascript - Cloudflare Changelog

Bun v1.2.21がリリース、MySQL/SQLite対応とYAMLサポートを追加#

日付:2025年8月25日

Bun v1.2.21がリリース。SQLクライアントBun.SQLの拡張が行われ、MySQL/MariaDB、SQLite対応が追加された。これにより、PostgreSQL、MySQL、SQLiteの統一APIを提供できるようになった。

// MySQL接続例
const sql = new SQL({
adapter: "mysql",
hostname: "127.0.0.1",
username: "user",
password: "password",
database: "buns_burgers",
});
// Run a query
const users = await sql`SELECT * FROM users;`.all();
console.log(users);
// SQLiteメモリDB例
const db = new SQL(":memory:");

また.yaml/.ymlファイルのインポートが可能になった。Bun.YAML.parseによるランタイムパースが行われる。

出展:Bun v1.2.21 - Bun Blog