UNPKG

@uk/tool

Version:
26 lines (23 loc) 771 B
import { isNode } from "." if (isNode) { const dotenv = require('dotenv'); dotenv.config(); } export function envConfig<TEnv, TCustom>(envConf: TEnv, customConf?: TCustom): TEnv & TCustom { for (const name in envConf) { if (name in process.env) { let val: any = envConf[name]; switch (typeof val) { case 'number': const num = +(process.env[name] || NaN); if (!isNaN(num)) val = num; break; default: val = process.env[name]; break; } envConf[name] = val as any; } } return customConf ? Object.assign(envConf, customConf) : envConf as (TEnv & TCustom); }