JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 46
  • Score
    100M100P100Q101437F
  • License MIT

TypeScript framework and starter CLI for building Discord bots with slash commands on discord.js v14.

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 init para criar uma base TypeScript pronta para evoluir.
  • Estrutura inicial com .env.example, tsconfig.json e 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 dev

Para adicionar o framework a um projeto existente:

npm i archteturis discord.js dotenv

Exemplo 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.ts
  • src/commands/ping.ts
  • src/events/ready.ts
  • .env.example
  • tsconfig.json
  • package.json

Para gerar um projeto em uma nova pasta:

npx archteturis init meu-bot

Para gerar na pasta atual:

npx archteturis init .

Para sobrescrever os arquivos base quando a pasta nao estiver vazia:

npx archteturis init . --force

Validacao antes de publicar

Antes de publicar no npm, rode:

npm run build
npm run pack:check