@aalis/api-host-config
v0.1.0
Published
宿主配置文档契约:host-config 服务描述符与配置文档类型(AalisConfig,供各域 declaration merging)
Readme
@aalis/api-host-config
宿主配置文档契约:host-config 服务描述符、HostConfig 读写面与配置文档类型 AalisConfig。不含服务实现。
角色
hostConfig:服务描述符。Node 宿主@aalis/runtime把配置文档(aalis.config.yaml)以它独占登记在根上;别的宿主要让插件读写文档,自己提供。管理类插件(WebUI、市场、CLI、authority)在uses里声明它。HostConfig:文档读写面加save()。写方法只改文档;管理动作只改运行态。要跨重启保留,调用方两边都写。AalisConfig:配置文档类型,也是各域业务字段做 declaration merging 的目标。ConfigSaveRefusedError/isConfigSaveRefused(err):配置源有尚未生效的外部修改、宿主为免覆盖而拒写时save()的拒绝原因,以及用来把它与写入失败区分的判据。判据按错误的name判定,进程里装有两份本包时也认得。
安装
pnpm add @aalis/api-host-config使用
import { optional } from '@aalis/core';
import { hostConfig } from '@aalis/api-host-config';
// uses: { plugins: pluginsService, doc: optional(hostConfig) }
if (await plugins.require().disable(id)) {
const store = doc.current;
if (store) {
store.setPluginEnabled(id, false);
await store.save();
}
}扩展文档字段:
declare module '@aalis/api-host-config' {
interface AalisConfig {
myFeature?: { enabled: boolean };
}
}