Bien démarrer

Auto-imports

Utilisez les utilitaires de glyria.js partout sans écrire la moindre instruction d'importation.

Que sont les auto-imports ?

Dans un projet TypeScript classique, vous devez importer manuellement chaque fonction ou classe que vous utilisez :

import { GlyriaCommand } from "@glyria/bot"
import { EmbedV2Builder } from "@glyria/bot"
import { GlyriaClient } from "@glyria/bot"

glyria.js élimine complètement cette contrainte. Chaque utilitaire du framework est automatiquement disponible comme variable globale — aucun import n'est nécessaire dans votre projet.

// aucun import — ça fonctionne directement
export default new GlyriaCommand()
  .setName("ping")
  .setDescription("Pong !")
  .execute(async (ctx) => {
    await ctx.reply({ content: "Pong !" })
  })

Comment cela fonctionne

glyria.js utilise deux mécanismes qui fonctionnent ensemble :

Injection à l'exécution — lorsque votre bot démarre, glyria.js injecte tous les utilitaires dans globalThis. Chaque fichier exécuté ensuite y a accès sans avoir besoin de les importer.

Déclarations de types — glyria.js génère un fichier .glyria/imports.d.ts qui informe TypeScript de l'existence de ces variables globales. Cela vous offre l'autocomplétion et la vérification de types complètes dans votre IDE.

Variables globales disponibles

Framework

Variable globaleDescription
GlyriaClientClient du bot Discord
GlyriaCommandConstructeur de commandes slash
GlyriaUserCommandConstructeur de commandes de menu contextuel (utilisateur)
GlyriaMessageCommandConstructeur de commandes de menu contextuel (message)
GlyriaEventConstructeur d'écouteurs d'événements
EmbedV2BuilderConstructeur d'Embed V2
GlyriaBusBus d'événements
globalBusSingleton du bus d'événements du framework
createReplyableContextUtilitaire de contexte répondable
useCommandsAccès au registre des commandes
defineGlyriaConfigUtilitaire de configuration
loggerLogger stylisé pour le terminal
hexToNumberConversion d'une couleur hexadécimale en nombre
EventsÉnumération Events de discord.js

discord.js

L'intégralité de la bibliothèque discord.js est disponible sous l'espace de noms djs — aucun import nécessaire :

djs.PermissionsBitField.Flags.BanMembers
djs.GatewayIntentBits.Guilds
djs.ButtonStyle.Primary
// ... tout ce que discord.js exporte

Variables globales utilisateur

Toute fonction exportée depuis src/utils/, src/composables/ ou src/index.ts est également auto-importée et disponible globalement.

// src/utils/useDatabase.ts
export const useDatabase = () => {
  return {
    find: (id: string) => { /* ... */ },
    save: (data: any) => { /* ... */ },
  }
}
// src/commands/ping.ts — aucun import nécessaire
export default new GlyriaCommand()
  .setName("ping")
  .execute(async (ctx) => {
    const db = useDatabase()
    const user = await db.find(ctx.user.id)
  })

Dossiers personnalisés

Par défaut, les dossiers src/utils/ et src/composables/ sont analysés. Vous pouvez ajouter vos propres dossiers dans glyria.config.ts :

export default defineGlyriaConfig({
  dev: {
    autoImportDirs: ['utils', 'composables', 'helpers', 'lib']
  }
})

Variables globales des modules

Les modules déclarés dans glyria.config.ts exposent également leurs exports comme variables globales, sous un espace de noms en PascalCase dérivé du nom du package.

// glyria.config.ts
export default defineGlyriaConfig({
  modules: ["@glyria/timers"]
})
// src/commands/remind.ts — aucun import nécessaire
Timers.createJob(() => {
  console.log("s'exécute chaque minute")
}, "* * * * *")
PackageEspace de noms
@glyria/timersTimers.*
@glyria/economyEconomy.*
@glyria/moderationModeration.*

L'espace de noms correspond toujours au nom du package sans son scope, converti en PascalCase. @glyria/timersTimers, @glyria/some-featureSomeFeature. ::

Régénération des auto-imports

Les auto-imports sont régénérés automatiquement en mode développement. Si vous ajoutez un nouvel utilitaire en production, exécutez :

npx glyria generate

Pour que l'autocomplétion fonctionne, assurez-vous que votre fichier tsconfig.json inclut le dossier .glyria/ :

{
  "include": ["src/**/*", ".glyria/**/*"]
}

::

Le fichier .glyria/imports.d.ts est généré automatiquement et sera écrasé à chaque exécution de glyria generate ou glyria dev. Ne le modifiez jamais manuellement. ::

Copyright © 2026