islandflow/apps/web/next.config.mjs
dirtydishes f716b8556f
Some checks failed
CI / Validate (pull_request) Failing after 22s
consolidate dev origin and terminal fetch handling
2026-06-13 18:38:12 -04:00

38 lines
1.1 KiB
JavaScript

import { networkInterfaces } from "node:os";
import { PHASE_DEVELOPMENT_SERVER } from "next/constants.js";
const configuredAllowedDevOrigins = () => {
return (process.env.NEXT_ALLOWED_DEV_ORIGINS ?? "")
.split(",")
.map((origin) => origin.trim())
.filter(Boolean);
};
const localIpv4DevOrigins = () => {
return Object.values(networkInterfaces())
.flat()
.filter((address) => address?.family === "IPv4")
.map((address) => address.address);
};
const allowedDevOrigins = () => {
return Array.from(
new Set(["localhost", "127.0.0.1", ...localIpv4DevOrigins(), ...configuredAllowedDevOrigins()])
);
};
/**
* Keep dev and production build artifacts separate to avoid chunk/runtime
* mismatches when `next dev` and `next build` are run in overlapping sessions.
*
* @param {string} phase
* @returns {import("next").NextConfig}
*/
export default function nextConfig(phase) {
const isDev = phase === PHASE_DEVELOPMENT_SERVER;
return {
allowedDevOrigins: isDev ? allowedDevOrigins() : undefined,
distDir: isDev ? ".next-dev" : ".next"
};
}