Discourse2 on npm:Discourse API的TypeScript封装器

我一年前在 npm 上发布了“discourse2”,但最近投入了更多精力。它基本上是一个用于 Discourse API 的 TypeScript / JavaScript SDK,由 Discourse 的 OpenAPI 规范生成。这使得它非常易于使用:

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: 修复了许多 bug,主要与 PUT 请求和重定向有关。

:white_check_mark: 发布到 JSR,质量分数为 100%。所有版本也仍然共同发布到 NPM。

:white_check_mark: 改进了 TSDocs。在可用时包含 description,而不仅仅是 summary。还有 @module 文档和 @example

:white_check_mark: 在 Deno v2 中开发,以获得快速便捷的开发体验。每次提交时仍在 node 中进行全面测试,但对备用运行时也很友好!

:white_check_mark: NPM 每周下载量为 425 次(但可能主要是由于机器人和发布频率 :sweat_smile:)。

我现在差不多完成了。仍然想在验证安全(以及可能的类型强制转换)方面投入更多工作,但这已在实际项目中使用并取得了良好效果。请就 bug 或功能请求提出任何问题,祝大家愉快地使用 Discourse!:tada:

3 个赞