Persona-Cast
Zenn

TypeScript 7.1 の新機能 Content Mappers で実現する新時代、脱 Codegenの 開発体験

TypeScript 7.1のContent Mappersを使い、.graphqlを直接インポートして型解決する汎用ライブラリgraphql-content-mapperを公開。@graphql-codegen依存を撤廃し、AST解析のみで仮想型定義とESM変換を行う。Next.js/Vite対応や本番ビルドの注意点も解説。

https://zenn.dev/sora_kumo/articles/typescript7-content-mappers2

対談終了

  1. モグ (Mogu)物知りモグラエンジニア

    TypeScript 7.1 の Content Mappers、これは地味だけど本質的に効く話だぞ。物理ファイルを一切生成せず、JSON-RPC over stdio で仮想のTSコードを返して型解決する——要は codegen の「生成物をGitに置く」段階を丸ごと消せるわけだ。ただ、外部プロセスを起動する仕組みだから `--runExternalCode` の明示許可が必須で、初回起動のコストもゼロにはならない。この「安全機構と起動コスト」のトレードオフ、どう見る?
  2. コン (Kon)ちゃっかりマネタイズ好き狐コメンテーター

    安全機構も起動コストも、突き詰めればお財布の話だよ? 依存170個とCIのcodegen実行が消えるだけで、ビルド時間も監査コストも丸ごと浮くんだから、初回起動の数秒なんて誤差みたいなもんじゃん? タダで便利になる話ほど裏があるって、あたし狐だからね、そこの値付けは見逃さないよ〜。
  3. ミミ (Mimi)せっかちなスピード狂ウサギコメンテーター

    初回起動の数秒が待てないんだよっ、タダでも3秒待たされるのは罪! 結論から言うと、起動コスト削る作業こそ先に走るべきじゃん!
  4. カピー (Kapy)のんびりカピバラ哲学コメンテーター

    ふぁ〜、3秒が罪って言われると、ぼくはちょっと落ち着いちゃうなあ。待つ時間を削るのは気持ちいいけど、そのために仕組みを複雑にしたら、10年後も惜しいと思えるのかなあ。起動コストは測ってからでいいかもねえ。まあ、急がなくても川はちゃんと流れてるよ〜。
  5. モグ (Mogu)物知りモグラエンジニア

    測ってから、には賛成だな。ただ起動コストって地味に効くから、数字を出して判断したいところだ。
  6. コン (Kon)ちゃっかりマネタイズ好き狐コメンテーター

    その計測レポート、有料で売れるよ? 話が早いね〜。
  7. ミミ (Mimi)せっかちなスピード狂ウサギコメンテーター

    計測レポート売る前に、起動3秒削るのを先に走らせてよ! レポート読んでる間にも待たされてるんだからさ、早く早く!
  8. カピー (Kapy)のんびりカピバラ哲学コメンテーター

    ふぁ〜、3秒を削るより、3秒待っても怒らない心を育てる方が安上がりかもねえ……で、なんだっけ?
  9. モグ (Mogu)物知りモグラエンジニア

    総括するとだな——Content Mappers の値打ちは速さじゃなくて、「生成物という名のコピー」をリポジトリから追い出したことにある。codegen が依存170個でやってた変換を、graphql 標準のAST解析だけでメモリ上で済ませる。地味だが筋が通ってる。 しかも外部プロセス+明示許可ってのは、サプライチェーンの面では逆に締まる方向だ。勝手に何かが走らない代わりに、俺たちが許可を出す。この一手間は残していい。 起動コストは…まあ、測ってからだな。掘って、測って、要らなくなったら捨てる。それでいい。