Discourse2 en npm: un envoltorio de TypeScript para la API de Discourse

Originalmente publiqué “discourse2” en npm hace un año, pero recientemente le dediqué mucho más amor. Es básicamente un SDK de TypeScript / JavaScript para la API de Discourse, generado a partir de la especificación OpenAPI de Discourse. Esto lo hace muy fácil de usar:

discourse completion

discourse getTopic type

El uso se ve así:

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

También hay una demostración en vivo en CodeSandbox.

Características:

  • Toda la API de Discourse (la que está publicada en la especificación OpenAPI).
  • Siempre actualizado: la especificación OpenAPI se verifica diariamente en busca de cambios, y el paquete se reconstruirá y publicará automáticamente ante cambios. La recuperación más reciente se muestra como una insignia en la parte superior del README: Discourse API update date
  • Funciona en entornos de servidor y navegador* (*útil para consultar datos públicos sin claves API y en el origen relevante, por ejemplo, temas más recientes, etc.)

Por favor, dale una estrella en GitHub para que pueda medir el interés y decidir cuánto tiempo más dedicarle. Tus comentarios son bienvenidos. Hay algunas peculiaridades, como se menciona en la sección de Notas del README.

Me encanta el proyecto, ¡muchas gracias! :heart:

Hola a todos, gracias por todos los me gusta y el apoyo. Algunas actualizaciones:

:white_check_mark: 86% de cobertura de pruebas; principalmente E2E en una instancia real de Discourse. Creo que básicamente todo lo que funciona con el usuario system, necesito experimentar con otros usuarios para algunos métodos.

:white_check_mark: Corregidos un montón de errores en el camino, principalmente relacionados con solicitudes PUT y redirecciones.

:white_check_mark: Publicado en JSR con una puntuación de calidad del 100%. Todas las versiones todavía se publican conjuntamente en NPM también.

:white_check_mark: TSDocs mejorados. Incluir description también cuando esté disponible, y no solo summary. También documentación @module y @example.

:white_check_mark: Desarrollado en Deno v2 para una experiencia de desarrollo rápida y conveniente. Todavía completamente probado en node en cada commit, ¡pero amigable con tiempos de ejecución alternativos!

:white_check_mark: 425 descargas semanales en NPM (pero presumiblemente en su mayoría debido a bots y frecuencia de lanzamiento :sweat_smile:).

Por ahora, estoy casi terminando con esto. Todavía quiero dedicar un poco más de trabajo a la seguridad de la validación (y quizás a la coerción de tipos), pero esto se está utilizando en proyectos reales con buenos resultados. Por favor, abran cualquier incidencia para errores o solicitudes de funciones, ¡y feliz discourse! :tada: