import { getExpirationInSeconds } from "#lib/utils"; import { validateJWTConfig } from "#lib/validation"; import type { JWTConfig } from "#types/config"; function createJWTConfig(): JWTConfig { const jwtSecret = process.env.JWT_SECRET || ""; const jwtExpiration = process.env.JWT_EXPIRATION || "1h"; const jwtIssuer = process.env.JWT_ISSUER || ""; const jwtAlgorithm = process.env.JWT_ALGORITHM || "HS256"; const configForValidation: JWTConfig = { secret: jwtSecret, expiration: getExpirationInSeconds(jwtExpiration), issuer: jwtIssuer, algorithm: jwtAlgorithm, }; const validation = validateJWTConfig(configForValidation); if (!validation.valid) { throw new Error(`JWT Configuration Error: ${validation.error}`); } return configForValidation; } export const jwt = createJWTConfig();