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 섹션에 언급된 몇 가지 특이한 점은 있습니다.

프로젝트 정말 좋아요. 감사합니다 :heart:

여러분, 좋아요와 지지해 주셔서 감사합니다. 업데이트 사항 몇 가지 공유드립니다:

: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:).

지금으로서는 이 프로젝트 작업을 거의 마무리했습니다. 검증 안전성(그리고 아마도 일부 타입 강제 변환)에 대해 조금 더 작업을 하고 싶지만, 실제 프로젝트에서 좋은 효과로 사용되고 있습니다. 버그나 기능 요청에 대한 이슈를 열어 주시면 감사하겠습니다. 즐거운 Discourse 경험 되세요! :tada: