UNPKG

@mikandev/next-discord-auth

Version:
36 lines (35 loc) 1.34 kB
let globalConfig = null; export function setup(config) { if (!config || !config.redirectUri || !config.jwtSecret) { throw new Error("Invalid configuration. 'redirectUri' and 'jwtSecret' are required."); } if (!config.clientId || !config.clientSecret) { if (!process.env.AUTH_DISCORD_ID || !process.env.AUTH_DISCORD_SECRET) { throw new Error("You must provide 'clientId' and 'clientSecret' in the config or set them as environment variables AUTH_DISCORD_ID and AUTH_DISCORD_SECRET."); } } if (globalConfig) { console.warn("Global config is already set. Overwriting existing config."); } globalConfig = { clientId: config.clientId ?? process.env.AUTH_DISCORD_ID ?? (() => { throw new Error("clientId is required"); })(), clientSecret: config.clientSecret ?? process.env.AUTH_DISCORD_SECRET ?? (() => { throw new Error("clientSecret is required"); })(), scopes: config.scopes ?? ["identify", "email"], redirectUri: config.redirectUri, jwtSecret: config.jwtSecret, }; } export function getGlobalConfig() { if (!globalConfig) { throw new Error("Global config has not been set."); } return globalConfig; }