Pular para o conteúdo principal

Guia do Pacote TypeScript

O pacote @botgate/botgate-stats-reporter possui suporte nativo a TypeScript, oferecendo definições de tipos completas para uma experiência de desenvolvimento superior e segura.

📦 Instalação

Abra o terminal no diretório do seu projeto e execute:

npm install @botgate/botgate-stats-reporter

🚀 Como utilizar

A integração em TypeScript é idêntica à de JavaScript, mas com a vantagem do autocomplete e validação de tipos.

Exemplo com Discord.js

import { Client, GatewayIntentBits } from "discord.js";
import { BotGateReporter } from "@botgate/botgate-stats-reporter";

const client = new Client({
intents: [GatewayIntentBits.Guilds],
});

// Instanciando o reporter com tipagem automática
const reporter = new BotGateReporter({
botId: "SEU_BOT_ID",
apiKey: "SUA_API_KEY",
lang: "pt-BR",
enableWebhooks: true,
debug: true,
});

client.once("ready", () => {
if (client.user) {
console.log(`Bot logado como ${client.user.tag}`);
// Inicia o monitoramento
reporter.start(client);
}
});

// Escutando eventos de voto tipados
reporter.on("vote", (vote) => {
console.log(`🎁 Recompensando ${vote.username} (${vote.user_id})`);
});

client.login("SEU_TOKEN_DISCORD");

⚙️ Tipagem e Interfaces

Se você precisar tipar manualmente as respostas da API, a biblioteca exporta diversas interfaces úteis:

import {
BotGateResponse,
BotInfoData,
VoteData,
TierInfo,
} from "@botgate/botgate-stats-reporter/dist/types";

// Exemplo: Obtendo informações tipadas do bot
const info = await reporter.getBotInfo();
if (info.success) {
const tier: TierInfo = info.data.tier;
console.log(`Plano atual: ${tier.name}`);
}

🛠️ Métodos do Reporter

MétodoRetornoDescrição
start(client)voidInicia o envio automático de estatísticas e heartbeats.
stop()voidPara todos os timers e processos em segundo plano.
getBotInfo()Promise<BotGateResponse>Retorna todos os dados do bot, incluindo plano (Tier).
getBotVotes(botId, limit)Promise<BotGateResponse>Busca os últimos votos e totais.
sendHeartbeat()Promise<BotGateResponse>Força o envio de um sinal de vida (Plano Business).
handleShardMessage(msg)voidProcessa mensagens IPC para emitir eventos de voto.

🧠 Sincronização e Reatividade

O SDK em TypeScript mantém todas as funcionalidades reativas da versão JavaScript, incluindo:

  • Hot-Swap de Tier: Ajuste automático de performance ao detectar mudanças de plano.
  • Auto-Configuração: Detecção de ambiente (Cloud Run, Local, etc) para setup de Webhook.
  • Error Resilience: Tratamento inteligente de Rate Limits (429) e retentativas automáticas.
  • Heartbeat Management: Controle automático do sinal de atividade conforme o nível do seu plano.