Discourse2 sur npm : une enveloppe TypeScript pour l'API Discourse

J’ai publié à l’origine « discourse2 » sur npm il y a un an, mais je lui ai récemment consacré beaucoup plus d’attention. Il s’agit essentiellement d’un SDK TypeScript / JavaScript pour l’API Discourse, généré à partir de la spécification OpenAPI de Discourse. Cela le rend très facile à utiliser :

discourse completion

discourse getTopic type

L’utilisation ressemble à ceci :

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

Il existe également une démo en direct sur CodeSandbox.

Fonctionnalités :

  • L’API Discourse entière (telle que publiée dans la spécification OpenAPI).
  • Toujours à jour : la spécification OpenAPI est vérifiée quotidiennement pour les modifications, et le package se reconstruit et se publie automatiquement en cas de modifications. La récupération la plus récente est indiquée par un badge en haut du README : Discourse API update date
  • Fonctionne dans les environnements serveur et navigateur* (*utile pour interroger des données publiques sans clés API et sur l’origine pertinente, par exemple les derniers sujets, etc.)

Veuillez lui donner une étoile sur GitHub afin que je puisse évaluer l’intérêt et décider combien de temps y consacrer. Vos commentaires sont les bienvenus. Il y a quelques particularités, comme mentionné dans la section Notes du README.

10 « J'aime »

J’adore le projet, merci beaucoup :heart:

1 « J'aime »

Salut à tous, merci pour tous les likes et le soutien. Quelques mises à jour :

:white_check_mark: 86% de couverture de tests ; principalement des tests E2E sur une instance Discourse réelle. Je pense que tout ce qui fonctionne avec l’utilisateur system est couvert, je dois expérimenter avec d’autres utilisateurs pour certaines méthodes.

:white_check_mark: Correction d’un tas de bugs en cours de route, principalement liés aux requêtes PUT et aux redirections.

:white_check_mark: Publication sur JSR avec un score de qualité de 100%. Toutes les versions sont toujours publiées conjointement sur NPM également.

:white_check_mark: Amélioration des TSDocs. Inclusion de la description également lorsque disponible, et pas seulement du summary. Également des documents @module et des @example.

:white_check_mark: Développement dans Deno v2 pour une expérience de développement rapide et pratique. Toujours entièrement testé dans node à chaque commit, mais compatible avec les runtimes alternatifs !

:white_check_mark: 425 téléchargements hebdomadaires sur NPM (mais probablement surtout dus aux bots et à la fréquence des versions :sweat_smile:).

J’en ai presque terminé pour le moment. Je veux encore passer un peu plus de temps sur la sécurité de la validation (et peut-être une certaine coercition de type), mais cela est utilisé sur des projets réels avec de bons résultats. Veuillez ouvrir des issues pour les bugs ou les demandes de fonctionnalités, et bon discours ! :tada:

3 « J'aime »