import { withPayload } from '@payloadcms/next/withPayload'

/** @type {import('next').NextConfig} */
const nextConfig = {
  // Skip type checking during build (done separately in CI)
  typescript: {
    ignoreBuildErrors: true,
  },
  // Skip ESLint during build to save memory
  eslint: {
    ignoreDuringBuilds: true,
  },
  // Reduce memory usage during build
  experimental: {
    // Use fewer workers for builds on low-memory systems
    workerThreads: false,
    cpus: 1,
  },
  // Webpack configuration for TypeScript/ESM compatibility
  webpack: (webpackConfig) => {
    webpackConfig.resolve.extensionAlias = {
      '.cjs': ['.cts', '.cjs'],
      '.js': ['.ts', '.tsx', '.js', '.jsx'],
      '.mjs': ['.mts', '.mjs'],
    }

    return webpackConfig
  },
}

export default withPayload(nextConfig, { devBundleServerPackages: false })
