跳到主要内容

EntitySyncResolver

Defined in: packages/rxdb/src/sync-contract/entity-sync-resolver.ts:30

实体生效同步配置的唯一解析入口。

Remarks​

优先级固定为:实例对该实体的显式覆盖 > 实体装饰器的 sync > 数据库默认 sync, 且只写在 createEntitySyncResolver 一处。核心与插件的每个同步消费者(主适配器选择、 元数据校验、仓储构造、批量写路由、推拉调度、同步状态)都经它取值 —— 各自回读 metadata.sync 的那一刻,同一个实体就会在不同子系统里归属两种策略。

每个 RxDB 实例持有自己的一份(RxDB.entitySync),覆盖只对该实例生效。

Properties​

databaseSync​

readonly databaseSync: SyncOptions | undefined;

Defined in: packages/rxdb/src/sync-contract/entity-sync-resolver.ts:32

数据库级默认 sync(rxdb.config.sync)

Methods​

resolve()​

resolve(target): SyncOptions | undefined;

Defined in: packages/rxdb/src/sync-contract/entity-sync-resolver.ts:45

解析目标实体的生效同步配置。

Parameters​

ParameterTypeDescription
targetEntitySyncTarget实体类或实体元数据

Returns​

SyncOptions | undefined

生效配置;实体与数据库都没有配置时为 undefined

Remarks​

返回的是选中的那份配置原样,不含 EntitySyncResolver.resolveType 的继承特例: 继承数据库默认 None + local + remote 时这里的 type 仍是 None,而 resolveType 判为 full。要判同步类型用 resolveType,别读这里的 .type。


resolveType()​

resolveType(target): RepositorySyncType;

Defined in: packages/rxdb/src/sync-contract/entity-sync-resolver.ts:57

解析目标实体的生效同步类型。

Parameters​

ParameterTypeDescription
targetEntitySyncTarget实体类或实体元数据

Returns​

RepositorySyncType

同步类型,判定口径与 getSyncType 相同

Remarks​

只有「继承数据库默认配置」时才适用 None + local + remote ⇒ full 那条特例; 覆盖与装饰器一样是显式声明,按字面判定。