新機能
microCMSのサービス全体のスキーマをクライアント生成時に登録し、コンテンツAPIの型検査・推論を利用できるようになりました。microcms-typegenで生成したサービス型を指定できます。
createClient<ServiceSchema>(...)で、エンドポイントとリスト形式・オブジェクト形式に応じたメソッドの引数を型検査します。getList・getListDetail・getObject・getAllContentsで、fields・depthに応じた戻り値型を推論します。静的に判断できる不正なフィールドパスやdepthも型エラーとして検出します。create・updateで、エンドポイントから書き込みデータの型を推論します。updateのcontentIdはリスト形式では必須、オブジェクト形式では指定不可になります。getAllContentIds・deleteでも、エンドポイントとAPI形式を型検査します。InferMicroCMSContentで、取得クエリに対応したコンテンツ1件の型を取り出せます。コンポーネントのpropsなどに利用できます。
互換性・対応範囲
- スキーマを指定しないクライアントと、従来の
getList<Blog>(...)などのメソッドごとの型指定は引き続き利用できます。 - スキーマ登録はTypeScriptの型検査・推論に使います。登録によるAPI通信処理の変更はありません。
- Node.jsの要件は18以降を維持しています(22以降を推奨)。型を利用する場合はTypeScript6.0以降が対象です。
filters・orders・alternateFieldの指定内容の検査、richEditorFormat: 'object'の戻り値型の自動推論は対象外です。詳細はREADMEのTypeScript節を参照してください。
ドキュメント・開発環境
- 日本語・英語READMEを整理し、読み取り・書き込み・型抽出の利用例を追加しました。
- 型推論・生成型との連携・TypeScript6との互換性を検査するテストを追加し、マネジメントAPIを含む通信テストとカバレッジ検査を補強しました。
- 開発用TypeScriptとNode.js、依存パッケージを更新し、lintにOxlint、テストの変換にSWCを採用しました。
Full Changelog: v3.5.1...v3.6.0