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.

10 Me gusta

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

1 me gusta

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:

3 Me gusta