WorkingTreeCapturePort
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry.ts:320
捕获所需的持久化操作
Remarks
端口是注入的:捕获自己不开事务、不选适配器,它只在调用方给的那个事务上下文里按顺序发这 几笔。真实事务的原子性由适配器保证(conformance 套件在 6 个后端上核验),本模块负责的是 顺序、条件与副作用范围。
实现方在构造时就绑定到当前分支,所以方法签名里没有 branch——
captureCrudWrite 会先校验 token,确认这条分支正是调用方以为的那条。
Methods
bumpWorkingTreeRevision()
bumpWorkingTreeRevision(entryCountDelta): Promise<number>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry.ts:354
递增 workingTreeRevision,并把 entryCount 加上增量
Parameters
| Parameter | Type | Description |
|---|---|---|
entryCountDelta | number | 本次折叠给出的条目数变化 |
Returns
Promise<number>
递增之后的 workingTreeRevision
persistEntry()
persistEntry(row, entryCountDelta): Promise<void>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry.ts:346
落盘折叠结果
Parameters
| Parameter | Type | Description |
|---|---|---|
row | WorkingTreeEntryRow | undefined | 折叠后的行;undefined 表示删除该实体的单元(净无变化) |
entryCountDelta | number | 与 row 同来自一次折叠,原样转交 |
Returns
Promise<void>
readActiveBranchToken()
readActiveBranchToken(): Promise<ActiveBranchToken>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry.ts:330
读取库里当前持久化的 active 分支 token
Returns
Promise<ActiveBranchToken>
当前的分支身份
Remarks
必须读持久化状态。BroadcastChannel 或内存里的副本都不跨进程重启,
而这条校验要拦的恰恰是「另一个 realm 在期间切过分支」。
readEntry()
readEntry(key): Promise<WorkingTreeEntryRow | undefined>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/write-entry.ts:338
读取该实体已有的未提交单元
Parameters
| Parameter | Type | Description |
|---|---|---|
key | WorkingTreeEntryKey | 实体身份三元组 |
Returns
Promise<WorkingTreeEntryRow | undefined>
已有单元;没有则为 undefined