classifyWriteEntrance()
function classifyWriteEntrance(request): WriteEntranceDecision;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry-matrix.ts:304
判定一次写该不该落成工作树单元
Parameters
| Parameter | Type | Description |
|---|---|---|
request | WriteEntranceRequest | 谁在写、写哪一类表、写了哪些列 |
Returns
三种结论之一;总函数,任何组合都有结论,从不抛错
Remarks
顺序是契约的一部分:
- 能力位最先,先于入口许可。 FR-046 要的是零行为差异——没启用提交能力的库上,raw 写、
未知入口、
notifyExternalUpdate()都必须与没装这个特性时逐字节一致。放在入口许可之后 判断的话,未启用的库会开始拒绝它一直允许的写法:升级即故障,故障点在完全没打算用这个 功能的用户那里。 - 再按目标类短路。 系统表与 QueryCache 表上没有需要保护的东西,于是「谁在写」这个问题 只在版本化业务表上才需要回答。反过来(先按入口分派)要求每个入口分支各自再判一次目标类, 十一个分支就有十一次抄写机会。
判定是纯的:不读全局状态、不改入参,同一份输入判两次结论相同。
Example
classifyWriteEntrance({
entrance: 'remote_entity_apply',
targetClass: 'versioned',
operation: 'update',
columns: { kind: 'columns', names: ['remoteId'] },
untrackedFields: domain.untrackedFieldsOf('post'),
capabilityEnabled: true
});
// → `{ kind: 'no_capture', reason: 'no_net_change', revisionBump: false }`