@wwkit/shared
v1.0.5
Published
Shared utilities for @wwkit packages — config loader, platform detection
Readme
@wwkit/shared
Shared utilities for @wwkit packages.
config-loader
多层配置加载器:内置 config.json5 + 环境变量注入内容 + 用户 config.json5 合并(用户优先)。
默认行为(无需配置):
- 深合并(
deepMerge),嵌套配置只覆盖用户改写的字段,保留其余默认 - 结果默认解析
{env:XXX}占位符(安全实践:密钥用环境变量引用,不落盘明文)
可选层(通过选项开启):
envContentVar:指定环境变量名,其内容作为"注入配置"这一层参与合并(同样走深合并+占位符解析)envDirVar:指定环境变量名,其值覆盖用户配置目录
import { createConfigLoader, getXdgConfigDir } from '@wwkit/shared'
const loader = createConfigLoader({
builtinConfigPath: path.join(__dirname, 'config.json5'),
userConfigDir: getXdgConfigDir('cft'),
envContentVar: 'MY_CONFIG_CONTENT', // 可选
envDirVar: 'MY_CONFIG_DIR', // 可选
})
loader.copyBuiltinConfig() // 复制内置→用户目录(不覆盖已存在)
const cfg = loader.getConfig() // 深合并 + 占位符解析导出的工具函数
deepMerge(base, override)— 深合并(嵌套对象合并,数组/标量覆盖)resolveEnvVars(value, env?)— 递归解析{env:XXX}占位符getXdgConfigDir(subdir)—~/.config/<subdir>或$XDG_CONFIG_HOME/<subdir>