Discourse2 auf npm: ein TypeScript-Wrapper für die Discourse API

Ich habe „discourse2“ vor einem Jahr auf npm veröffentlicht, aber vor kurzem habe ich ihm viel mehr Aufmerksamkeit geschenkt. Es ist im Grunde ein TypeScript / JavaScript SDK für die Discourse API, das aus dem OpenAPI-Spec von Discourse generiert wurde. Das macht die Arbeit damit sehr einfach:

discourse completion

discourse getTopic type

Die Verwendung sieht so aus:

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);

Es gibt auch eine Live-Demo auf CodeSandbox.

Funktionen:

  • Die gesamte Discourse API (die im OpenAPI-Spec veröffentlicht ist).
  • Immer aktuell: Der OpenAPI-Spec wird täglich auf Änderungen geprüft, und das Paket baut und veröffentlicht sich bei Änderungen automatisch neu. Die letzte Abfrage wird als Badge oben in der README angezeigt: Discourse API update date
  • Funktioniert sowohl in Server- als auch in Browser*-Umgebungen (*nützlich für Abfragen öffentlicher Daten ohne API-Schlüssel und mit relevantem Ursprung, z. B. die neuesten Themen usw.)

Bitte geben Sie ihm einen Stern auf GitHub, damit ich das Interesse einschätzen und entscheiden kann, wie viel Zeit ich noch dafür aufwenden soll. Feedback ist willkommen. Es gibt ein paar Eigenheiten, wie im Abschnitt Hinweise in der README erwähnt.

10 „Gefällt mir“

Ich liebe das Projekt, vielen Dank :heart:

1 „Gefällt mir“

Hallo zusammen, danke für all die Likes und die Unterstützung. Ein paar Updates:

:white_check_mark: 86% Testabdeckung; hauptsächlich E2E auf einer echten Discourse-Instanz. Ich denke, im Grunde alles, was mit dem system-Benutzer funktioniert, ich muss für einige Methoden mit anderen Benutzern experimentieren.

:white_check_mark: Eine Reihe von Fehlern behoben auf dem Weg, hauptsächlich im Zusammenhang mit PUT-Anfragen und Weiterleitungen.

:white_check_mark: Auf JSR mit 100% Qualitätsbewertung veröffentlicht. Alle Versionen werden weiterhin gemeinsam auf NPM veröffentlicht.

:white_check_mark: TSDocs verbessert. Fügen Sie auch description hinzu, wenn verfügbar, und nicht nur summary. Auch @module-Dokumente und @example.

:white_check_mark: Entwickelt in Deno v2 für eine schnelle und bequeme Entwicklungserfahrung. Immer noch vollständig in node bei jedem Commit getestet, aber alternativ laufzeitfreundlich!

:white_check_mark: 425 wöchentliche Downloads auf NPM (aber vermutlich hauptsächlich aufgrund von Bots und der Veröffentlichungsfrequenz :sweat_smile:).

Ich bin damit für den Moment so gut wie fertig. Ich möchte noch etwas mehr Arbeit in die Validierungssicherheit (und vielleicht etwas Typumwandlung) investieren, aber dies wird mit guten Ergebnissen in realen Projekten eingesetzt. Bitte eröffnen Sie alle Issues für Fehler oder Funktionswünsche und viel Spaß beim Diskursieren! :tada:

3 „Gefällt mir“