let userConfig; try { userConfig = await import("./v0-user-next.config"); } catch (e) { // ignore error } /** @type {import('next').NextConfig} */ const nextConfig = { eslint: { ignoreDuringBuilds: true, }, typescript: { ignoreBuildErrors: true, }, images: { unoptimized: true, }, experimental: { webpackBuildWorker: true, parallelServerBuildTraces: true, parallelServerCompiles: true, }, // Load environment variables env: { IMAP_USER: process.env.IMAP_USER, IMAP_PASSWORD: process.env.IMAP_PASSWORD, IMAP_HOST: process.env.IMAP_HOST, IMAP_PORT: process.env.IMAP_PORT, }, // Ensure environment variables are available in API routes serverRuntimeConfig: { IMAP_USER: process.env.IMAP_USER, IMAP_PASSWORD: process.env.IMAP_PASSWORD, IMAP_HOST: process.env.IMAP_HOST, IMAP_PORT: process.env.IMAP_PORT, }, // Make environment variables available to the client publicRuntimeConfig: { IMAP_HOST: process.env.IMAP_HOST, IMAP_PORT: process.env.IMAP_PORT, } }; mergeConfig(nextConfig, userConfig); function mergeConfig(nextConfig, userConfig) { if (!userConfig) { return; } for (const key in userConfig) { if ( typeof nextConfig[key] === "object" && !Array.isArray(nextConfig[key]) ) { nextConfig[key] = { ...nextConfig[key], ...userConfig[key], }; } else { nextConfig[key] = userConfig[key]; } } } export default nextConfig;