Rush Stackショップブログイベント
メインコンテンツへスキップ
API Extractor Logo

API Extractorは、より良い TypeScriptライブラリパッケージの構築を支援します。例えば、あなたの会社が「awesome-widgets」という名前のNPMパッケージを公開しており、多くのクラスやインターフェースをエクスポートしていると仮定します。開発者があなたのライブラリに依存し始めると、次のような問題に遭遇する可能性があります…

  • 意図しない破壊: 「軽微な」更新の後、コードがコンパイルできなくなったという報告が頻繁に寄せられます。これに対処するために、あなたはすべての awesome-widgetsプルリクエストは、あなたのチームの経験豊富な開発者によって承認される必要があると大胆に提案します。しかし、それは非現実的であることが判明します。誰もすべてのPRをチェックする時間がないのです!本当に必要なのは、APIコントラクトを変更するPRを検出し、レビューのためにフラグを立てる方法です。それによって適切な場所に注意を集中させることができます…しかし、どうすればそれを実現できるのでしょうか?

  • エクスポートの欠落: awesome-widgetsパッケージが、DrawStyle型のパラメータを必要とするAPI関数AwesomeButton.draw()をエクスポートしているとします。しかし、あなたはこの列挙型をエクスポートするのを忘れていました。最初は問題ないように見えますが、開発者がその関数を呼び出そうとすると、DrawStyleを指定する方法がないことに気づきます。これらの見落としをどうすれば回避できるでしょうか? DrawStyle。これらの見落としをどうすれば回避できるでしょうか?

  • 意図しないエクスポート: あなたはDrawHelperクラスを内部に保持するつもりでしたが、ある日それがエクスポートされていることに気づきます。削除しようとすると、コンシューマーがそれを使用していると不満を言います。今後これを避けるにはどうすればよいでしょうか? DrawHelperクラスを内部に保持するつもりでしたが、ある日それがエクスポートされていることに気づきます。削除しようとすると、コンシューマーがそれを使用していると不満を言います。今後これを避けるにはどうすればよいでしょうか?

  • アルファ/ベータ版からの卒業: まだ公開する準備ができていない新しいAPIのプレビューをリリースしたいとします。しかし、これらの定義が進化するたびに、セマンティックバージョニングをメジャーバージョンアップすると、村人が松明とピッチフォークを持ってあなたを追いかけるでしょう!より良いアプローチは、特定のクラス/メンバーをアルファ品質として指定し、成熟するにつれてベータ、そして最後にパブリックに昇格させることです。しかし、これをコンシューマーにどのように示すのでしょうか?(そして、スコープのミスをどのように検出するのでしょうか?パブリック関数は決してベータの結果を返してはなりません。) ベータ、そして最後にパブリックに昇格させることです。しかし、これをコンシューマーにどのように示すのでしょうか?(そして、スコープのミスをどのように検出するのでしょうか?パブリック関数は決してベータの結果を返してはなりません。)

  • *.d.tsのロールアップ: ライブラリを素晴らしい*.jsバンドルファイルにwebpackでまとめたのに、なぜ型定義をプライベート定義でいっぱいのlib/*.d.tsファイルの乱雑なツリーとして出荷するのでしょうか?それらをきちんとした *.d.tsロールアップファイルに統合することはできませんか?また、内部/ベータ/パブリックリリースを公開する場合、各リリースタイプは適切なトリミングで独自の*.d.tsファイルを取得する必要があります。本番プロジェクトを構築する開発者は、VS CodeのIntelliSenseで多数の 内部およびベータメンバーを見ることを望んでいません!

  • オンラインドキュメント: あなたは、各TypeScriptメンバーに優れたTSDocの説明を忠実に注釈しました。ライブラリが出荷されたので、 きちんとフォーマットされた APIリファレンスを設定する時が来ました。どのツールを使用すればよいでしょうか?

API Extractorは、これらすべての問題に対する統合されたプロフェッショナル品質のソリューションを提供します。ツールチェーンによってビルド時に呼び出され、TypeScriptコンパイラエンジンを活用して

  • プロジェクトのエクスポートされたAPIサーフェスを検出します
  • レビューを容易にするように設計された簡潔なレポートに契約をキャプチャします
  • 一般的なミス(例:エクスポートの欠落、一貫性のない可視性など)について警告します
  • リリースタイプに応じてトリミングされた*.d.tsロールアップを生成します
  • コンテンツパイプラインとの統合が容易なポータブル形式でAPIドキュメントを出力します

何よりも、API Extractorは無料でオープンソースです。コミュニティに参加してプルリクエストを作成してください!