DevToolsConnector
Defined in: connector.ts:131
RxDB DevTools 连接器。
当前协议只支持一个 RxDB 实例;同实例重复初始化是幂等操作。
Constructors
Constructor
new DevToolsConnector(options?): DevToolsConnector;
Defined in: connector.ts:201
Parameters
| Parameter | Type | Description |
|---|---|---|
options | DevToolsOptions | 连接器配置,缺省项见 DevToolsOptions 各成员的 @defaultValue |
Returns
DevToolsConnector
Throws
RangeError 当 options.maxBufferSize 不是正安全整数时(由 EventBuffer 抛出)
Accessors
capabilities
Get Signature
get capabilities(): DevToolsCapability;
Defined in: connector.ts:193
本页授予 DevTools 的命令能力档。
Remarks
语义见 DevToolsCapability;握手时随 payload 一并告知 DevTools。
Returns
connected
Get Signature
get connected(): boolean;
Defined in: connector.ts:172
DevTools 是否已确认握手。
Remarks
false 时事件进 buffer 而不是发到消息总线;收到 HANDSHAKE_ACK 后
buffer 会一次性冲出。disconnect 与 DISCONNECT 命令都会把它置回 false。
Returns
boolean
enabled
Get Signature
get enabled(): boolean;
Defined in: connector.ts:183
连接器是否启用。
Remarks
构造时由 DevToolsOptions.enabled 决定;opaque origin 下未显式开启
DevToolsOptions.allowOpaqueOrigin 时,init 会把它降为 false。
Returns
boolean
Methods
disconnect()
disconnect(): void;
Defined in: connector.ts:259
断开 connector 通信并清理本地监听。
Returns
void
Remarks
不会调用 RxDB.disconnectAll() —— 那是 DISCONNECT_RXDB 命令的职责。
本方法只撤销 init 的副作用:发一条 DISCONNECT、摘掉 message 监听与
全部事件监听、取消在途查询订阅、删掉全局 helper、清空 buffer 并把 sequence 归零。
调用后可以再次 init(sequence 从 0 重新开始,属于新会话)。
DISCONNECT 在关端口之前发,且刻意走当前信道(还握着手就走私有端口)——
先关端口的话这条告别消息会被丢进已关闭的信道,对端只能等超时。
init()
init(rxdb, getEntityMetadata?): void;
Defined in: connector.ts:227
初始化连接器并注册唯一的 RxDB 实例。
Parameters
| Parameter | Type | Description |
|---|---|---|
rxdb | DevToolsRxDB | 要观测的 RxDB 实例;@aiao/rxdb 的 RxDB 可直接传入,无需断言 |
getEntityMetadata? | GetEntityMetadataFn | 实体元数据读取函数(通常是 @aiao/rxdb 的 getEntityMetadata)。省略时连接器不知道任何实体,INSPECT_DB 回 null、 QUERY_ENTITY 回"实体不存在",且加密字段不会被遮罩(无从得知哪些字段是密文) |
Returns
void
Throws
Error 当已注册了另一个 RxDB 实例时;同实例重复调用是幂等的
Throws
由 getEntityMetadata 透传 —— 上游 getEntityMetadata 对未装饰的类 fail-fast
Remarks
enabled === false、非浏览器环境(window === undefined)时直接返回,
不注册任何监听。opaque origin 且未开启 DevToolsOptions.allowOpaqueOrigin
时打一次 warning 并把连接器降为停用 —— 详见 DevToolsOptions.allowOpaqueOrigin。
副作用:注册 window 的 message 监听、订阅 RXDB_EVENT_TYPES 全部事件、
在 window.__AIAO_RXDB_DEVTOOLS__ 上挂断开 helper、并立刻发出一次握手。
全部由 disconnect 撤销。