import { Logger } from '@mybricks/rocker-commons'; import { AnyType } from '../types'; function getEnv() { return process.env.NODE_ENV; } function isProd() { return process.env.NODE_ENV === 'production'; } function getRealHostName(requestHeaders) { let hostName = requestHeaders.host; if(requestHeaders['x-forwarded-host']) { hostName = requestHeaders['x-forwarded-host']; } else if(requestHeaders['x-host']) { hostName = requestHeaders['x-host'].replace(':443', ''); } return hostName; } function getMybricksDomain(request?: AnyType) { return 'https://my.mybricks.world'; let hostName = getRealHostName(request.headers); let protocol = request.headers['x-scheme'] ? 'https' : 'http'; // let protocol = request.headers['connection'] === 'upgrade' ? 'https' : 'http' return `${protocol}://${hostName}`; } function getRealDomain(request) { let hostName = getRealHostName(request.headers); Logger.info(`[物料中心] getRealDomain headers: ${request.headers}`); const { origin } = request.headers; Logger.info(`[物料中心] getRealDomain origin: ${origin}`); if (origin) return origin; // let protocol = request.headers['x-scheme'] ? 'https' : 'http' /** TODO: 暂时写死 https */ let protocol = request.headers?.['connection'].toLowerCase() === 'upgrade' ? 'https' : 'http'; let domain = `${protocol}://${hostName}`; Logger.info(`[物料中心] getRealDomain domain: ${domain}`); return domain; } export { getEnv, isProd, getMybricksDomain, getRealDomain };