Официальная библиотека @depsapi/deps-js предоставляет удобный изоморфный интерфейс для работы с Deps API, работая как в Node.js, так и в браузерах и Deno.
Библиотека разработана и поддерживается командой Deps API.

Установка

pnpm install @depsapi/deps-js
Рекомендуется использовать Node.js v20 (LTS) или выше.

Быстрый старт

Простой пример получения статуса API.
main.js
import { DepsClient } from "@depsapi/deps-js";

async function main() {
    // Обязательно используйте ваш API ключ
    const client = new DepsClient({ apiKey: "YOUR_API_KEY" });

    const status = await client.status.get();
    console.log(status);
}

main();

Ключевые особенности

Библиотека @depsapi/deps-js разработана для максимальной эффективности и удобства разработчика.

Изоморфность

Работает в Node.js, Deno и современных браузерах без дополнительной настройки.

Типизация

Полная поддержка TypeScript для предсказуемости и удобства разработки.

Легковесность

Минимальный размер благодаря использованию ofetch, не перегружая ваши проекты.

Модульность

API разделено на логические модули для лучшей организации кода.

Примеры использования

players.js
import { DepsClient } from "@depsapi/deps-js";

async function main() {
    const client = new DepsClient({ apiKey: "YOUR_API_KEY" });

    try {
        const player = await client.player.find({ serverId: 5, nickname: "Nicolas_Reed" });
        console.log(`Найден игрок: ${player.nickname}, уровень: ${player.level}`);
        
        const isOnline = await client.player.isOnline({ serverId: 5, nickname: "Nicolas_Reed" });
        console.log(`Игрок онлайн: ${isOnline}`);

    } catch (error) {
        if (error.data?.errorCode === 'PLAYER_NOT_FOUND') {
             console.log("Игрок с таким никнеймом не найден.");
        } else {
            console.error(`Произошла ошибка: ${error.message}`);
        }
    }
}

main();

Обработка исключений

Библиотека выбрасывает типизированные исключения для удобной обработки ошибок.
errors.js
import { DepsClient, DepsApiError, ValidationError } from '@depsapi/deps-js';

async function main() {
    const client = new DepsClient({ apiKey: "INVALID_API_KEY" });

    try {
      await client.player.find({ serverId: 1, nickname: 'some_player' });
    } catch (error) {
      if (error instanceof ValidationError) {
        console.error('Ошибка валидации:', error.data);
      } else if (error instanceof DepsApiError) {
        if (error.data?.errorCode === 'UNAUTHORIZED') {
            console.error("Ошибка: Неверный или просроченный API ключ.");
        } else if (error.data?.errorCode === 'TOO_MANY_REQUESTS') {
            console.error(`Превышен лимит запросов. Попробуйте позже.`);
        } else {
            console.error('Ошибка API:', error.message, error.data);
        }
      } else {
        console.error('Произошла неизвестная ошибка:', error);
      }
    }
}

main();
Основные ошибки: ValidationError (ошибки валидации входных данных), DepsApiError (обертка для всех ошибок API).

Расширенная настройка клиента

Вы можете тонко настроить клиент DepsClient при его инициализации, передав нужные параметры в конструктор.
config.js
import { DepsClient } from "@depsapi/deps-js";

const client = new DepsClient({
    apiKey: "YOUR_API_KEY",
    baseUrl: "https://api.depscian.tech",
});
ПараметрТипПо умолчаниюОписание
apiKeystring-Обязательный. Ваш API-ключ.
baseUrlstringhttps://api.depscian.techБазовый URL API.