49 lines
1.8 KiB
TypeScript
49 lines
1.8 KiB
TypeScript
/**
|
||
* 域名与根域配置 - 特色标识
|
||
* 更换域名(如 *.hackrobot.cn -> *.nomadro.com)时,只需设置 ROOT_DOMAIN 或各独立变量
|
||
*
|
||
* 环境变量:
|
||
* - ROOT_DOMAIN: 根域名,如 nomadro.com,用于推导 Cookie、API 等默认值
|
||
* - AUTH_COOKIE_DOMAIN: Cookie 根域,如 .nomadro.com(优先于 ROOT_DOMAIN)
|
||
* - PAYMENT_API_URL: 支付 API 地址
|
||
* - NEXT_PUBLIC_POCKETBASE_URL: PocketBase 地址
|
||
* - NEXT_PUBLIC_SITE_URL: 站点根地址
|
||
*/
|
||
|
||
const isDev = process.env.NODE_ENV === "development";
|
||
|
||
/** 根域名,用于推导默认值。如 nomadro.com、hackrobot.cn */
|
||
export const ROOT_DOMAIN =
|
||
process.env.ROOT_DOMAIN || process.env.NEXT_PUBLIC_ROOT_DOMAIN || "hackrobot.cn";
|
||
|
||
/** 支付 API 默认地址。生产环境固定为 api.${ROOT_DOMAIN},避免 .env 中 127.0.0.1 导致支付失败 */
|
||
export const DEFAULT_PAYMENT_API_URL = isDev
|
||
? "http://127.0.0.1:8007"
|
||
: `https://api.${ROOT_DOMAIN}`;
|
||
|
||
/** 生产环境若 PAYMENT_API_URL 指向 localhost,则忽略并使用 api 域名 */
|
||
export function resolvePaymentApiUrl(): string {
|
||
const url = process.env.PAYMENT_API_URL || DEFAULT_PAYMENT_API_URL;
|
||
if (!isDev && /^(https?:\/\/)?(127\.0\.0\.1|localhost)(:\d+)?(\/|$)/i.test(url)) {
|
||
return `https://api.${ROOT_DOMAIN}`;
|
||
}
|
||
return url;
|
||
}
|
||
|
||
/** PocketBase 默认地址 */
|
||
export const DEFAULT_POCKETBASE_URL = `https://pocketbase.${ROOT_DOMAIN}`;
|
||
|
||
/** 站点根地址默认值 */
|
||
export const DEFAULT_SITE_URL = isDev
|
||
? "http://localhost:3001"
|
||
: `https://${ROOT_DOMAIN}`;
|
||
|
||
/** MinIO 端点默认主机 */
|
||
export const DEFAULT_MINIO_HOST = `minioweb.${ROOT_DOMAIN}`;
|
||
|
||
/** meetup(目的地)站链接 */
|
||
export const MEETUP_URL = `https://meetup.${ROOT_DOMAIN}/`;
|
||
|
||
/** vip(异度星球)站链接 */
|
||
export const VIP_URL = `https://vip.${ROOT_DOMAIN}/`;
|