70 lines
1.5 KiB
TypeScript
70 lines
1.5 KiB
TypeScript
/**
|
||
* API 配置管理
|
||
*
|
||
* 通过环境变量配置后端服务地址与超时时间。
|
||
* 原始 Dart: lib/core/net/service_manager.dart
|
||
*/
|
||
import { AppEnvUtil, type AppEnv } from "@/utils/app-env";
|
||
|
||
export type { AppEnv };
|
||
|
||
export interface ApiConfig {
|
||
/** 后端 API 基础 URL(含协议) */
|
||
baseUrl: string;
|
||
/** WebSocket 基础 URL */
|
||
wsUrl: string;
|
||
/** 连接超时(ms) */
|
||
connectTimeout: number;
|
||
/** 接收超时(ms) */
|
||
receiveTimeout: number;
|
||
/** 发送超时(ms) */
|
||
sendTimeout: number;
|
||
}
|
||
|
||
/**
|
||
* 超时常量
|
||
*/
|
||
export class TimeoutConstants {
|
||
private constructor() {}
|
||
static readonly shortTimeout = 30000;
|
||
static readonly longTimeout = 60000;
|
||
}
|
||
|
||
/**
|
||
* 解析当前环境
|
||
*/
|
||
export function getAppEnv(): AppEnv {
|
||
return AppEnvUtil.current;
|
||
}
|
||
|
||
/**
|
||
* 获取当前 API 配置
|
||
*/
|
||
export function getApiConfig(): ApiConfig {
|
||
const baseUrl =
|
||
process.env.NEXT_PUBLIC_API_BASE_URL ?? "http://172.16.48.49:3002";
|
||
const wsUrl =
|
||
process.env.NEXT_PUBLIC_WS_BASE_URL ?? "ws://172.16.48.49:3002/ws";
|
||
|
||
const connectTimeout = Number.parseInt(
|
||
process.env.NEXT_PUBLIC_API_CONNECT_TIMEOUT ?? "30000",
|
||
10
|
||
);
|
||
const receiveTimeout = Number.parseInt(
|
||
process.env.NEXT_PUBLIC_API_RECEIVE_TIMEOUT ?? "60000",
|
||
10
|
||
);
|
||
const sendTimeout = Number.parseInt(
|
||
process.env.NEXT_PUBLIC_API_SEND_TIMEOUT ?? "30000",
|
||
10
|
||
);
|
||
|
||
return {
|
||
baseUrl,
|
||
wsUrl,
|
||
connectTimeout,
|
||
receiveTimeout,
|
||
sendTimeout,
|
||
};
|
||
}
|