import Cookies from 'js-cookie'; import { isBrowser } from './browser'; import { parseCookie, setClientCookie } from './cookie'; const PROD_API_DOMAIN = process.env.NEXT_PUBLIC_PROD_API_DOMAIN ?? process.env.REACT_APP_PROD_API_DOMAIN; const TEST_API_DOMAIN = process.env.NEXT_PUBLIC_TEST_API_DOMAIN ?? process.env.REACT_APP_TEST_API_DOMAIN; export const isInternalTestUrl = PROD_API_DOMAIN !== TEST_API_DOMAIN; // 是否是内部的测试链接 const DEV_ENVIRONMENT_KEY = 'devEnvironment'; export function getServiceDomain() { const prodApiDomain = PROD_API_DOMAIN || 'dodoex.io'; if (!isBrowser) { return prodApiDomain; } if (window && window.location && window.location.hostname) return window.location.hostname.includes('dodoex.co') ? 'dodoex.co' : prodApiDomain; return prodApiDomain; } export function getServiceDomainDev() { return TEST_API_DOMAIN || 'dodoex.io'; } /** 该函数只能用于客户端才能获取准确的环境,服务端使用 getIsDevEnvironmentServerSide 获取 */ export function getIsDevEnvironment() { if (!isBrowser) { return process.env.NODE_ENV === 'development'; } // 浏览器端 if (isInternalTestUrl) { const isDevEnvironment = Cookies.get(DEV_ENVIRONMENT_KEY); if (isDevEnvironment) { return true; } return false; } return false; } export function getIsDevEnvironmentServerSide(cookie: string) { const isDevEnvironment = parseCookie(cookie)[DEV_ENVIRONMENT_KEY]; if (isDevEnvironment) { return true; } return false; } export function setDevEnvironment(isDev: boolean) { setClientCookie({ key: DEV_ENVIRONMENT_KEY, value: isDev ? '1' : '', }); }