|
| 1 | +--- |
| 2 | +title: "2026-01-08のJS: zod v4.3.0、Flint、pnpm in 2025" |
| 3 | +author: "azu" |
| 4 | +layout: post |
| 5 | +date: 2026-01-08T12:56:28.201Z |
| 6 | +category: JSer |
| 7 | +tags: |
| 8 | +- pnpm |
| 9 | +- TypeScript |
| 10 | +- React |
| 11 | +- Tools |
| 12 | +- css |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +JSer.info #760 - zod v4.3.0がリリースされました。 |
| 17 | + |
| 18 | +- [Release v4.3.0 · colinhacks/zod](https://github.com/colinhacks/zod/releases/tag/v4.3.0) |
| 19 | + |
| 20 | +JSONスキーマからZodスキーマに変換する`z.fromJSONSchema()`が追加されています。また、排他的論理和で型を定義する`z.xor()`、部分的なrecordバリデーションを行う`z.looseRecord()`、`undefined`値を許容しない`.exactOptional()`も追加されています。 |
| 21 | +その他にも`.apply()`メソッド、`check()`のaliasである`.with()`メソッド、`ZodMap`への`min`/`max`/`nonempty`/`size`メソッド、文字列をslugに変換する`z.slugify()`などが追加されています。 |
| 22 | + |
| 23 | +---- |
| 24 | + |
| 25 | +TypeScript-ESLintのメンテナーを中心に開発された実験的なハイブリッドリンターであるFlintが公開されました。 |
| 26 | + |
| 27 | +- [Introducing Flint | Flint](https://www.flint.fyi/blog/introducing-flint/) |
| 28 | +- [What Flint Does Differently | Flint](https://www.flint.fyi/blog/what-flint-does-differently/) |
| 29 | + |
| 30 | +TypeScriptで書かれたコアとネイティブスピード(Go/Rust)のパーサーを組み合わせることで、パフォーマンスと開発者の親しみやすさの両立を目指しています。TypeScriptの型情報を常に利用し、クロスファイルキャッシュ、JSON/Markdown/YAMLの組み込みサポート、Prettierとの統合などの機能を採用しています。Lintはエラーのみを対象とし、インタラクティブなCLIやプラグインレジストリなども予定されています。 |
| 31 | + |
| 32 | +---- |
| 33 | + |
| 34 | +pnpmの2025年の振り返り記事が公開されました。 |
| 35 | + |
| 36 | +- [🚀 pnpm in 2025 | pnpm](https://pnpm.io/blog/2025/12/29/pnpm-in-2025) |
| 37 | + |
| 38 | +v10.0でライフサイクルスクリプトをデフォルトで無効化し、`minimumReleaseAge`や`trustPolicy: no-downgrade`などのセキュリティ機能が追加されました。v10.12でGlobal Virtual Store、v10.9でJSRのネイティブサポート、v10.14/v10.21で`devEngines.runtime`による自動ランタイム管理のサポートなど、2025年の主要な変更点がまとめられています。 |
| 39 | + |
| 40 | +---- |
| 41 | + |
| 42 | +{% include inline-support.html %} |
| 43 | + |
| 44 | +---- |
| 45 | + |
| 46 | +<h1 class="site-genre">ヘッドライン</h1> |
| 47 | + |
| 48 | +---- |
| 49 | + |
| 50 | +## Release pnpm 10.27 · pnpm/pnpm |
| 51 | +[github.com/pnpm/pnpm/releases/tag/v10.27.0](https://github.com/pnpm/pnpm/releases/tag/v10.27.0 "Release pnpm 10.27 · pnpm/pnpm") |
| 52 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 53 | + |
| 54 | +pnpm v10.27.0リリース。 |
| 55 | +`trustPolicy: no-downgrade`の厳格性を緩和するために、公開から一定時間経ったものは対象外にする`trustPolicyIgnoreAfter`オプションの追加など |
| 56 | + |
| 57 | + |
| 58 | +---- |
| 59 | + |
| 60 | +## Release v4.3.0 · colinhacks/zod |
| 61 | +[github.com/colinhacks/zod/releases/tag/v4.3.0](https://github.com/colinhacks/zod/releases/tag/v4.3.0 "Release v4.3.0 · colinhacks/zod") |
| 62 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">JSON</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 63 | + |
| 64 | +zod v4.3.0リリース。 |
| 65 | +JSONスキーマからZodに変換する`z.fromJSONSchema()`の追加、`z.xor()`を追加。 |
| 66 | +部分的なrecordバリデーションの`z.looseRecord()`、`undefined`値を許容しない`.exactOptional()`を追加。 |
| 67 | +`.apply()`メソッドの追加、`check()`メソッドのaliasとして`.with()`メソッドを追加。 |
| 68 | +`ZodMap`に`min`/`max`/`nonempty`/`size`メソッドを追加、`z.slugify()`変換を追加など |
| 69 | + |
| 70 | + |
| 71 | +---- |
| 72 | + |
| 73 | +## Announcing Rspack 1.7 - Rspack |
| 74 | +[rspack.rs/blog/announcing-1-7](https://rspack.rs/blog/announcing-1-7 "Announcing Rspack 1.7 - Rspack") |
| 75 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">rspack</span> <span class="jser-tag">ReleaseNote</span></p> |
| 76 | + |
| 77 | +Rspack 1.7リリース。 |
| 78 | +SWCプラグインの互換性改善、Import Bytes proposalのサポート、lazy compilationをデフォルトで有効化。 |
| 79 | +Constant inlining/TypeScript Enum inlining/Type re-export checkの最適化を安定化。 |
| 80 | +Rsbuild 1.7では実行時エラーのオーバーレイ表示/ファイルサイズの差分表示を追加。 |
| 81 | +Rslib 0.19ではESM出力が安定化、JavaScript APIの追加など |
| 82 | + |
| 83 | + |
| 84 | +---- |
| 85 | + |
| 86 | +## feat: add llms.txt endpoint for LLM-optimized documentation by quantizor · Pull Request #2388 · tailwindlabs/tailwindcss.com |
| 87 | +[github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957](https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957 "feat: add llms.txt endpoint for LLM-optimized documentation by quantizor · Pull Request #2388 · tailwindlabs/tailwindcss.com") |
| 88 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">company</span> <span class="jser-tag">css</span> <span class="jser-tag">news</span></p> |
| 89 | + |
| 90 | +Tailwindの開発元であるTailwind Labの収入が大きく減少したため、エンジニアリングチームの75%にあたる3名をレイオフしたという話 |
| 91 | + |
| 92 | +- [Adam's Morning Walk | We had six months left](https://adams-morning-walk.transistor.fm/episodes/we-had-six-months-left "Adam&#039;s Morning Walk | We had six months left") |
| 93 | + |
| 94 | +---- |
| 95 | +<h1 class="site-genre">アーティクル</h1> |
| 96 | + |
| 97 | +---- |
| 98 | + |
| 99 | +## Introducing Flint | Flint |
| 100 | +[www.flint.fyi/blog/introducing-flint/](https://www.flint.fyi/blog/introducing-flint/ "Introducing Flint | Flint") |
| 101 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">ESLint</span> <span class="jser-tag">Tools</span> <span class="jser-tag">article</span></p> |
| 102 | + |
| 103 | +TypeScript-ESLintのメンテナー中心で書かれた実験的なハイブリッドリンター。 |
| 104 | +TypeScriptで書かれたコアとnative speed(Go/Rust)のパーサーを組み合わせることで、パフォーマンスと開発者の親しみやすさの両立を目指している。 |
| 105 | +アーキテクチャ面では、ハイブリッドコア/TypeScriptの型情報を常に利用/クロスファイルキャッシュ/JSON/Markdown/YAMLの組み込みサポート/Prettierとの統合などを採用。 |
| 106 | +Lintはエラーのみとし、インタラクティブなCLI、オプション名の標準化、プラグインレジストリなどを用意する予定 |
| 107 | + |
| 108 | +- [What Flint Does Differently | Flint](https://www.flint.fyi/blog/what-flint-does-differently/ "What Flint Does Differently | Flint") |
| 109 | + |
| 110 | +---- |
| 111 | + |
| 112 | +## Introducing CSS Grid Lanes | WebKit |
| 113 | +[webkit.org/blog/17660/introducing-css-grid-lanes/](https://webkit.org/blog/17660/introducing-css-grid-lanes/ "Introducing CSS Grid Lanes | WebKit") |
| 114 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">css</span> <span class="jser-tag">article</span></p> |
| 115 | + |
| 116 | +`display: grid-lanes`のGrid Lanesについて |
| 117 | + |
| 118 | + |
| 119 | +---- |
| 120 | + |
| 121 | +## 🚀 pnpm in 2025 | pnpm |
| 122 | +[pnpm.io/blog/2025/12/29/pnpm-in-2025](https://pnpm.io/blog/2025/12/29/pnpm-in-2025 "🚀 pnpm in 2025 | pnpm") |
| 123 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">security</span> <span class="jser-tag">article</span></p> |
| 124 | + |
| 125 | +pnpmの2025年の振り返り記事。 |
| 126 | +v10.0でライフサイクルスクリプトをデフォルトで無効化、`minimumReleaseAge`や`trustPolicy: no-downgrade`などのセキュリティ機能の追加。 |
| 127 | +v10.12でGlobal Virtual Storeの追加、v10.9でJSRのネイティブサポート、Config Dependencies機能の追加。 |
| 128 | +v10.14/v10.21で`devEngines.runtime`による自動ランタイム管理のサポートなど |
| 129 | + |
| 130 | + |
| 131 | +---- |
| 132 | + |
| 133 | +## How to compile JavaScript to C with Static Hermes |
| 134 | +[devongovett.me/blog/static-hermes.html](https://devongovett.me/blog/static-hermes.html "How to compile JavaScript to C with Static Hermes") |
| 135 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">article</span> <span class="jser-tag">Tools</span></p> |
| 136 | + |
| 137 | +Static Hermesを使ってJavaScriptをC言語コードにコンパイルし、CのコードとしてRustから呼び出すという実装について |
| 138 | + |
| 139 | + |
| 140 | +---- |
| 141 | + |
| 142 | +## Fixing TypeScript Performance Problems: A Case Study | Viget |
| 143 | +[www.viget.com/articles/fixing-typescript-performance-problems](https://www.viget.com/articles/fixing-typescript-performance-problems "Fixing TypeScript Performance Problems: A Case Study | Viget") |
| 144 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">article</span></p> |
| 145 | + |
| 146 | +TypeScriptのコンパイルパフォーマンスのデバッグ方法について |
| 147 | + |
| 148 | + |
| 149 | +---- |
| 150 | + |
| 151 | +## Data Fetching Patterns in React Server Components |
| 152 | +[gauravthakur.com/blog/data-fetching-patterns-react-server-components](https://gauravthakur.com/blog/data-fetching-patterns-react-server-components "Data Fetching Patterns in React Server Components") |
| 153 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">article</span></p> |
| 154 | + |
| 155 | +クライアントサイドレンダリング、サーバサイドレンダリング、React Server Componentのレンダリングにおける転送されるデータの違いについて可視化した記事 |
| 156 | + |
| 157 | + |
| 158 | +---- |
| 159 | +<h1 class="site-genre">スライド、動画関係</h1> |
| 160 | + |
| 161 | +---- |
| 162 | + |
| 163 | +## vjeux/webcodecs-nodejs-10k-challenge: Let's get WebCodec to the server |
| 164 | +[github.com/vjeux/webcodecs-nodejs-10k-challenge/](https://github.com/vjeux/webcodecs-nodejs-10k-challenge/ "vjeux/webcodecs-nodejs-10k-challenge: Let's get WebCodec to the server") |
| 165 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">video</span> <span class="jser-tag">library</span></p> |
| 166 | + |
| 167 | +Node.jsでWebCodecs APIを動かすWebCodecs Node.js 10k Challengeの結果が公開され、7つのプロジェクトが採用された。 |
| 168 | + |
| 169 | + |
| 170 | +---- |
| 171 | +<h1 class="site-genre">書籍関係</h1> |
| 172 | + |
| 173 | +---- |
| 174 | + |
| 175 | +## jotaiによるReact再入門 |
| 176 | +[zenn.dev/uhyo/books/learn-react-with-jotai](https://zenn.dev/uhyo/books/learn-react-with-jotai "jotaiによるReact再入門") |
| 177 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">book</span></p> |
| 178 | + |
| 179 | +Reactとjotaiについて |
| 180 | + |
| 181 | + |
| 182 | +---- |
0 commit comments