Package Exports
- archteturis
Readme
Archteturis
Archteturis e um framework TypeScript para criar bots Discord com discord.js v14. O pacote combina um runtime focado em slash commands com uma CLI oficial para gerar projetos prontos para desenvolvimento.
Recursos
- Runtime para carregar comandos e eventos com organizacao por pastas ou definicoes em memoria.
- CLI
archteturis initpara criar uma base TypeScript pronta para evoluir. - Estrutura inicial com
.env.example,tsconfig.jsone exemplos de comando e evento.
Requisitos
- Node.js 18.17 ou superior.
- Um bot Discord com token configurado em
DISCORD_TOKEN.
Inicio rapido
Para criar um novo bot do zero:
npx archteturis init meu-bot
cd meu-bot
npm install
npm run devPara adicionar o framework a um projeto existente:
npm i archteturis discord.js dotenvExemplo com carregamento por pastas
import "dotenv/config";
import { fileURLToPath } from "node:url";
import { createBot } from "archteturis";
const token = process.env.DISCORD_TOKEN;
if (!token) {
throw new Error("Defina DISCORD_TOKEN no .env");
}
await createBot({
token,
commandsPath: fileURLToPath(new URL("./commands", import.meta.url)),
eventsPath: fileURLToPath(new URL("./events", import.meta.url))
});Exemplo com definicoes em memoria
import "dotenv/config";
import { command, createBot, event } from "archteturis";
const ping = command({
name: "ping",
description: "Responde com Pong!",
async run(context) {
await context.reply("Pong!");
}
});
const ready = event({
name: "clientReady",
once: true,
run(client) {
client.archteturis.logger.info(`Bot pronto como ${client.user?.tag ?? "desconhecido"}.`);
}
});
const token = process.env.DISCORD_TOKEN;
if (!token) {
throw new Error("Defina DISCORD_TOKEN no .env");
}
await createBot({
token,
commands: [ping],
events: [ready]
});CLI
O comando archteturis init cria os arquivos base abaixo:
src/index.tssrc/commands/ping.tssrc/events/ready.ts.env.exampletsconfig.jsonpackage.json
Para gerar um projeto em uma nova pasta:
npx archteturis init meu-botPara gerar na pasta atual:
npx archteturis init .Para sobrescrever os arquivos base quando a pasta nao estiver vazia:
npx archteturis init . --forceValidacao antes de publicar
Antes de publicar no npm, rode:
npm run build
npm run pack:check