Eu publiquei originalmente o "discourse2" no npm há um ano, mas recentemente dediquei muito mais atenção a ele. É basicamente um SDK TypeScript / JavaScript para a API do Discourse, gerado a partir da especificação OpenAPI do Discourse. Isso o torna muito fácil de usar:
O uso se parece com isto:
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);
Toda a API do Discourse (que é publicada na especificação OpenAPI).
Sempre atualizado: a especificação OpenAPI é verificada diariamente em busca de alterações, e o pacote se reconstrói e se publica automaticamente em caso de alterações. A recuperação mais recente é mostrada como um selo no topo do README:
Funciona em ambientes de servidor e navegador* (*útil para consultar dados públicos sem chaves de API e na origem relevante, por exemplo, tópicos mais recentes, etc.)
Por favor, dê uma estrela no GitHub para que eu possa avaliar o interesse e decidir quanto tempo mais dedicar a isso. Feedback é bem-vindo. Há algumas peculiaridades, como mencionado na seção Notas do README.
Olá a todos, obrigado por todos os likes e apoio. Algumas atualizações:
86% de cobertura de testes; principalmente E2E em uma instância real do Discourse. Acho que basicamente tudo que funciona com o usuário system, preciso experimentar com outros usuários para alguns métodos.
Corrigi vários bugs ao longo do caminho, principalmente relacionados a requisições PUT e redirecionamentos.
Publicado no JSR com 100% de pontuação de qualidade. Todas as versões ainda são publicadas conjuntamente no NPM também.
Melhorei os TSDocs. Inclua description também quando disponível, e não apenas summary. Também documentação @module e @example.
Desenvolvido em Deno v2 para uma experiência de desenvolvimento rápida e conveniente. Ainda totalmente testado em node a cada commit, mas amigável a runtimes alternativos!
425 downloads semanais no NPM (mas presumivelmente principalmente devido a bots e frequência de lançamento ).
Estou quase terminando por agora. Ainda quero dedicar um pouco mais de trabalho à segurança de validação (e talvez alguma coerção de tipo), mas isso está sendo usado em projetos reais com bons resultados. Por favor, abra quaisquer issues para bugs ou solicitações de recursos, e feliz discoursing!