* 读取环境变量字符串值;空字符串视为未设置。
* @param key 环境变量名
* @param fallback 未设置时的回退值
* @returns 环境变量值或回退值
*/
export function envString(key: string, fallback: string | undefined): string | undefined {
const v = process.env[key];
if (v === undefined || v === '') {
return fallback;
}
return v;
}
* 读取环境变量布尔值;空字符串或仅空白视为未设置。
* 接受:`1`、`true`、`yes`(`true` / `yes` 大小写不敏感)视为 `true`。
* @param key 环境变量名
* @param fallback 未设置时的回退值
* @returns 解析后的布尔值
*/
export function envBool(key: string, fallback: boolean): boolean {
const v = process.env[key];
if (v === undefined || v === '') {
return fallback;
}
const t = v.trim();
if (t === '') {
return fallback;
}
return t === '1' || t.toLowerCase() === 'true' || t.toLowerCase() === 'yes';
}
* 读取环境变量列表(逗号分隔);空字符串视为未设置。
* @param key 环境变量名
* @param fallback 未设置时的回退值
* @returns 解析后的字符串列表
*/
export function envStringList(key: string, fallback?: string[]): string[] | undefined {
const v = process.env[key];
if (v === undefined || v === '') {
return fallback;
}
const list = v
.split(',')
.map((item) => item.trim())
.filter(Boolean);
return list.length > 0 ? list : fallback;
}
* 读取环境变量正整数;空字符串视为未设置;小于 1 视为无效。
* @param key 环境变量名
* @param fallback 未设置/无效时的回退值
* @returns 解析后的正整数
*/
export function envPositiveInt(key: string, fallback: number): number {
const v = process.env[key];
if (v === undefined || v === '') {
return fallback;
}
const parsed = Number.parseInt(v, 10);
if (Number.isNaN(parsed) || parsed < 1) {
return fallback;
}
return parsed;
}
* 流式请求超时(毫秒),用于 `streamText({ abortSignal })`。
* 未设置或空字符串:使用 `fallback`;`0`:不启用超时(返回 `undefined`);非法值回退 `fallback`。
*/
export function envStreamTimeoutMs(key: string, fallback: number | undefined): number | undefined {
const v = process.env[key];
if (v === undefined || v === '') {
return fallback;
}
const parsed = Number.parseInt(v.trim(), 10);
if (Number.isNaN(parsed) || parsed < 0) {
return fallback;
}
if (parsed === 0) {
return undefined;
}
return parsed;
}
* 读取框架选择(Vue/Angular)。
* @param key 环境变量名
* @param fallback 默认框架
* @returns 解析后的框架
*/
export function envFramework(key: string, fallback: 'Vue' | 'Angular' | undefined): 'Vue' | 'Angular' {
const v = process.env[key];
if (v === 'Angular' || v === 'Vue') {
return v;
}
if (fallback === 'Angular' || fallback === 'Vue') {
return fallback;
}
return 'Vue';
}