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étodo | Retorno | Descrição |
|---|---|---|
start(client) | void | Inicia o envio automático de estatísticas e heartbeats. |
stop() | void | Para 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) | void | Processa 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.