Files
carmanagement/apps/admin/next.config.js
T
2026-05-25 03:12:19 -04:00

40 lines
1.2 KiB
JavaScript

/** @type {import('next').NextConfig} */
const apiOrigin = (process.env.API_INTERNAL_URL ?? process.env.API_URL ?? 'http://localhost:4000').replace(/\/api\/v1\/?$/, '')
const apiUrl = new URL(apiOrigin)
// In Docker dev the admin app runs on port 3002 while the marketplace proxy
// serves it from port 3000. When ADMIN_ASSET_PREFIX is set, Next emits
// absolute chunk URLs so /admin pages load their JS/CSS and HMR directly from
// port 3002, bypassing the proxy (which can't upgrade WebSocket connections).
const assetPrefix = process.env.ADMIN_ASSET_PREFIX || undefined
const nextConfig = {
basePath: '/admin',
...(assetPrefix ? { assetPrefix } : {}),
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'res.cloudinary.com',
},
{
protocol: apiUrl.protocol.replace(':', ''),
hostname: apiUrl.hostname,
...(apiUrl.port ? { port: apiUrl.port } : {}),
pathname: '/storage/**',
},
],
},
transpilePackages: ['@rentaldrivego/types'],
async rewrites() {
return [
{
source: '/api/:path*',
destination: `${apiOrigin}/api/:path*`,
},
]
},
}
module.exports = nextConfig