npm上のDiscourse2: Discourse API用のTypeScriptラッパー

1年前にnpmで「discourse2」を公開しましたが、最近さらに多くの愛情を注ぎました。これは基本的に、DiscourseのOpenAPI仕様から生成されたDiscourse API用のTypeScript / JavaScript SDKです。これにより、非常に簡単に使用できます。

discourse completion

discourse getTopic type

使い方は以下のようになります。

import Discourse from "discourse2";

const discourse = new Discourse("https://discourse.example.org/", {
  "Api-Key": process.env.DISCOURSE_API_KEY,
  "Api-Username": process.env.DISCOURSE_API_USERNAME,
});

const result = await discourse.listLatestTopics();
console.log(result);

CodeSandboxのライブデモもあります。

機能

  • Discourse APIのすべて(OpenAPI仕様で公開されているもの)。
  • 常に最新:OpenAPI仕様は毎日変更がないかチェックされ、変更があった場合はパッケージが自動的に再構築および再公開されます。最新の取得日は、READMEの先頭にあるバッジに表示されます:Discourse API update date
  • サーバー環境とブラウザ*環境の両方で動作します(APIキーなしで公開データ、例えば最新トピックなどをクエリする場合に便利です)。

興味の度合いを測り、どれだけ多くの時間を費やすかを判断するために、GitHubでスターを付けていただけると幸いです。フィードバックも歓迎します。READMEのNotesセクションに記載されているように、いくつかの注意点があります。

「いいね!」 10

プロジェクトを気に入りました。本当にありがとうございます :heart:

「いいね!」 1

皆さん、こんにちは。たくさんの「いいね」とサポートをありがとうございます。いくつかアップデートがあります。

:white_check_mark: テストカバレッジ 86%。主に実際の Discourse インスタンスでの E2E テストです。system ユーザーで動作するものはほぼすべて網羅したと思いますが、一部のメソッドについては他のユーザーでの実験が必要です。

:white_check_mark: その過程で多くのバグを修正しました。主に PUT リクエストとリダイレクトに関連するものです。

:white_check_mark: JSR に 100% の品質スコアで公開しました。すべてのバージョンは引き続き NPM にも共同で公開されています。

:white_check_mark: TSDocs を改善しました。利用可能な場合は summary だけでなく description も含めるようにしました。また、@module ドキュメントと @example も追加しました。

:white_check_mark: Deno v2 で開発しました。高速で便利な開発体験を実現しました。すべてのコミットで node で完全にテストされていますが、代替ランタイムにも対応しています!

:white_check_mark: NPM で週 425 回のダウンロード(ただし、おそらく主にボットとリリース頻度によるものだと思われます :sweat_smile:)。

これでひとまず完了です。バリデーションの安全性(およびタイプ変換)についてはもう少し作業したいと考えていますが、すでに実際のプロジェクトで効果的に使用されています。バグや機能リクエストがあれば、ぜひ issue を開いてください。ハッピー・ディスコーシングを! :tada:

「いいね!」 3