Referencia del tipo raíz
El objeto pasado a defineConfig debe satisfacer SpraxiumCoreConfig. Todos los campos son opcionales; cuando se omiten, el framework aplica un valor predeterminado razonable. La tabla de abajo cubre todas las claves de nivel superior.
| Campo | Tipo | Predeterminado | Finalidad |
|---|---|---|---|
| debug | boolean | false | Aumenta la verbosidad diagnóstica en todos los subsistemas. |
| logger | SpraxiumLoggerConfig | Predeterminados integrados | Controla la salida de logs, el enmascarado de tokens, el trazado de comandos y el transporte a Discord. |
| plugins | SpraxiumPlugin[] | Lista vacía | Entradas tipadas producidas por helpers de factory como defineHttp y defineSchedule. |
| prefix | PrefixConfig | Sin comandos de prefijo | Define el carácter de prefijo, la política de cooldown y el comportamiento de menciones. |
| exceptions | ExceptionOptions | Diseño predeterminado del framework | Mapea clases de excepción a diseños de respuesta y controla el logging de errores. |
| dev | SpraxiumDevConfig | Predeterminados razonables del watcher | Configura el entrypoint del watcher de desarrollo local, el debounce y los patrones de archivos. |
debug
El flag debug habilita salida diagnóstica adicional en todos los subsistemas. Cuando está activo, el framework emite líneas de traza extra durante la carga de módulos, la resolución de providers, el registro de comandos y el dispatch de interacciones. Esta salida está pensada para troubleshooting y no debería mantenerse activa en despliegues de producción de alto throughput.
El flag acepta un booleano simple o cualquier expresión ConfigEnv, para que puedas limitar la verbosidad a un entorno específico.
| Valor | Cuándo está activo |
|---|---|
| false | Siempre desactivado. Este es el valor predeterminado cuando se omite el campo. |
| true | Siempre activado, sin importar el entorno. Úsalo solo en entornos de prueba aislados. |
| env.isDev | Activo en desarrollo local. Cualquier valor de NODE_ENV distinto de production, neutral, staging o test. |
| env.isNeutral | Activo en staging y CI. NODE_ENV establecido en neutral, staging o test. Línea base recomendada para la mayoría de proyectos. |
| env.isProd | Activo solo en producción. Úsalo de forma deliberada y temporal cuando diagnostiques un problema en vivo. |
logger
El bloque logger controla la política de salida del logger integrado. No afecta la lógica de negocio. Las opciones más configuradas son maskTokens (reemplaza strings con apariencia de token por un placeholder seguro), commandLogging (emite una línea de traza en cada dispatch de comando) y discord (envía niveles de log seleccionados a un canal webhook).
import type { SpraxiumLoggerConfig } from '@spraxium/core';
export const loggerConfig: SpraxiumLoggerConfig = {
maskTokens: true,
commandLogging: true,
discord: {
type: 'channel',
webhookUrl: process.env.LOGGER_WEBHOOK!,
levels: ['error', 'warn'],
channelId: '1462519588775395429',
},
};plugins
El array plugins reúne entradas devueltas por factories de plugins. Cada entrada contiene un string namespace y una carga de configuración tipada; el framework usa ese namespace para enrutar la configuración al plugin correcto en runtime. Las factories de plugins y las opciones oficiales se cubren en la página de Registro de plugins.
dev
El bloque dev tiene una página de referencia dedicada más adelante en esta categoría, donde se cubren todos los campos del watcher, los nombres de archivo de configuración admitidos y cómo se resuelven los entornos al iniciar.
El bloque prefix está completamente documentado en la categoría de Comandos de prefijo. El bloque exceptions está completamente documentado en la categoría de Excepciones.