Skip to content

7.x への移行

7.x リリースには、注意すべきいくつかの軽微な破壊的変更があります:

認証 / リモートスキーマの取得

7.x では、すべてのリモートスキーマの取得が Redocly CLI によって処理されます。これにより、認証設定を redocly.config.yml 設定ファイルに移行する必要があります(ドキュメントを参照)。

TypeScript AST

7.x では、単純な文字列変換の代わりに TypeScript AST が導入されました。これは、TypeScript ASTを返すようになったコアのNode.js API、および transform()postTransform() オプションに適用されます。Node.js API のドキュメントが、関連する例と共に更新されています

defaultNonNullableがデフォルトで true

CLI および Node.js API では、--default-non-nullable の動作がデフォルトで有効になりました。これにより、スキーマオブジェクトに default 値がある場合、それは required として扱われます(parametersを除く)。

Redocly 設定ファイルによる globbing の置き換え

7.x では複数のスキーマを一度に生成することができますが、特定の命名スキーマに従うことを強制するグロビングの代わりに、redocly.config.yaml ファイルを宣言して、各入力スキーマとその関連する生成された型の保存場所を指定します。これにより、複数のスキーマの命名と整理に柔軟性が生まれます。

便利なことに、redocly.config.yml ファイルを宣言しておけば、引数なしで CLI コマンドを実行できます(ドキュメント参照):

sh
npx openapi-typescript

Node.js API のinputの型

7.x ではinputの型が調整され、より予測可能で汎用的になりました。

ts
import openapiTS from "openapi-typescript";

await openapiTS(input);
Input6.x7.x
JSON (object)ObjectObject
JSON (string)(未サポート)string
YAML (string)(未サポート)string
Local filestring | URLURL
Remote filestring | URLURL

最大の変更点は string の扱いです。6.x では、string はローカルまたはリモートのファイルパスを指す可能性がありましたが、これは予測不可能でした。というのも、ローカルファイルパスの場合、Node が呼び出された場所に依存していたからです。7.x では、すべてのファイルパスは URL である必要があります(ローカルパスの場合、new URL('./path/to/my/schema', import.meta.url) または new URL('file:///absolute/path/to/my/schema') を使用)。これにより、 string 型がインライン YAML(または JSON)を扱えるようになりました(6.x ではサポートされていませんでした)。

詳細は更新されたドキュメントを参照


完全な変更履歴はこちら