palico-bot/src/config.js
2026-06-28 22:44:04 +02:00

49 lines
1.3 KiB
JavaScript

const requiredVariables = [
"NODE_ENV",
"LOCATION",
"BOT_OWNER",
"DISCORD_GUILD_ID",
"SHINUWA_USER_ID",
"INVITE_LINK",
"WEB_SERVER_PORT",
"WEB_API_KEY",
"DISCORD_APPLICATION_ID",
"DISCORD_TOKEN",
"VOICE_CHANNEL_ID",
"TEXT_CHANNEL_ID",
"GAME_SERVERS_MESSAGE_ID",
];
const missingVariables = requiredVariables.filter(
(name) => !process.env[name]?.trim()
);
if (missingVariables.length > 0) {
throw new Error(
`Variables d'environnement manquantes : ${missingVariables.join(", ")}`
);
}
const webServerPort = Number(process.env.WEB_SERVER_PORT);
if (!Number.isInteger(webServerPort) || webServerPort <= 0) {
throw new Error("WEB_SERVER_PORT doit être un entier positif");
}
const config = Object.freeze({
environnement: process.env.NODE_ENV,
location: process.env.LOCATION,
botOwner: process.env.BOT_OWNER,
discordGuildId: process.env.DISCORD_GUILD_ID,
shinuwaUserId: process.env.SHINUWA_USER_ID,
inviteLink: process.env.INVITE_LINK,
webServerPort,
webApiKey: process.env.WEB_API_KEY,
applicationId: process.env.DISCORD_APPLICATION_ID,
token: process.env.DISCORD_TOKEN,
voiceChannelId: process.env.VOICE_CHANNEL_ID,
textChannelId: process.env.TEXT_CHANNEL_ID,
gameServersMessageId: process.env.GAME_SERVERS_MESSAGE_ID,
});
export { config };