WorkingTreeEnableIfEmptyResult
type WorkingTreeEnableIfEmptyResult =
| {
capability: CommitCapabilityInfo;
kind: "enabled";
}
| {
capability: CommitCapabilityInfo;
kind: "already_enabled";
}
| {
kind: "not_empty";
};
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/working-tree-facade.ts:96
WorkingTreeManager.enableIfEmpty 的三种结局。
Union Members
Type Literal
{
capability: CommitCapabilityInfo;
kind: "enabled";
}
capability
readonly capability: CommitCapabilityInfo;
启用后的能力信息
kind
readonly kind: "enabled";
判别位:本次调用完成了启用
Type Literal
{
capability: CommitCapabilityInfo;
kind: "already_enabled";
}
capability
readonly capability: CommitCapabilityInfo;
现状的能力信息
kind
readonly kind: "already_enabled";
判别位:库本来就已启用,本次调用什么都没改
Type Literal
{
kind: "not_empty";
}
kind
readonly kind: "not_empty";
判别位:库里已有内容,按规则不自动启用;手动 enable() 仍可用
Remarks
做成判别联合而不是 { enabled: boolean; … }:三种结局各有各的载荷——enabled 与
already_enabled 带能力信息,not_empty 什么都没有。拍平成一个对象就要给「没发生的
那次启用」编造一份能力信息(或可空字段),调用方被迫处理四种组合,其中两种是假的。