52 lines
1.9 KiB
TypeScript
52 lines
1.9 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: 站点根地址
|
||
*/
|
||
|
||
import { IS_DEVELOPMENT, IS_PRODUCTION } from "../runtime-env";
|
||
|
||
/** 根域名,用于推导默认值。如 nomadro.com、hackrobot.cn */
|
||
export const ROOT_DOMAIN =
|
||
process.env.ROOT_DOMAIN || process.env.NEXT_PUBLIC_ROOT_DOMAIN || "hackrobot.cn";
|
||
|
||
/** 支付 API 默认地址。运行环境由 APP_ENV / NEXT_PUBLIC_APP_ENV 显式控制 */
|
||
export const DEFAULT_PAYMENT_API_URL = IS_DEVELOPMENT
|
||
? "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 (IS_PRODUCTION && /^(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 = IS_DEVELOPMENT
|
||
? "http://localhost:3001"
|
||
: `https://${ROOT_DOMAIN}`;
|
||
|
||
/** MinIO 端点默认主机 */
|
||
export const DEFAULT_MINIO_HOST = "127.0.0.1";
|
||
|
||
/** MinIO 公开访问默认主机 */
|
||
export const DEFAULT_MINIO_PUBLIC_HOST = `minio.${ROOT_DOMAIN}`;
|
||
|
||
/** meetup(目的地)站链接 */
|
||
export const MEETUP_URL = `https://meetup.${ROOT_DOMAIN}/`;
|
||
|
||
/** vip(异度星球)站链接 */
|
||
export const VIP_URL = `https://vip.${ROOT_DOMAIN}/`;
|