Я опубликовал «discourse2» на npm год назад, но недавно уделил ему гораздо больше внимания. По сути, это TypeScript/JavaScript SDK для API Discourse, сгенерированное на основе спецификации OpenAPI проекта Discourse. Это делает работу с ним очень простой:
Использование выглядит следующим образом:
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);
Полная поддержка API Discourse (всё, что опубликовано в спецификации OpenAPI).
Всегда актуально: спецификация OpenAPI проверяется на наличие изменений ежедневно, а пакет автоматически пересобирается и публикуется при обнаружении изменений. Дата последнего обновления отображается в виде бейджа в верхней части README:
Работает как на сервере, так и в браузере* (полезно для запроса общедоступных данных без ключей API и с соответствующего источника, например, получение списка последних тем и т. д.)
Пожалуйста, поставьте звёздочку на GitHub, чтобы я мог оценить интерес и решить, сколько ещё времени уделить этому проекту. Отзывы приветствуются. Как указано в разделе Notes в README, есть несколько особенностей.
Всем привет, спасибо за все лайки и поддержку. Несколько обновлений:
86% покрытие тестами; в основном E2E на реальном экземпляре Discourse. Думаю, практически всё, что работает с пользователем system, нужно протестировать с другими пользователями для некоторых методов.
Исправили множество ошибок по пути, в основном связанных с PUT-запросами и перенаправлениями.
Опубликовано в JSR с оценкой качества 100%. Все версии по-прежнему публикуются совместно в NPM.
Улучшены TSDocs. Добавлено поле description, когда оно доступно, а не только summary. Также добавлена документация @module и примеры @example.
Разработка велась в Deno v2 для быстрого и удобного процесса разработки. Полное тестирование в node выполняется при каждом коммите, но среда также дружелюбна к альтернативным рантаймам!
425 еженедельных загрузок в NPM (но, вероятно, в основном из-за ботов и частоты релизов ).
На данный момент я почти завершил работу. Всё ещё хочу уделить немного больше времени безопасности валидации (и, возможно, некоторому приведению типов), но это уже используется в реальных проектах с хорошим эффектом. Пожалуйста, открывайте задачи для сообщений об ошибках или запросов новых функций. И удачного общения на Discourse!