跳到主要内容

IPGliteClient

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:209

PGlite 客户端的最小公开契约。

抽象出 PGliteClient 的核心方法,便于在测试中替换 mock 或在跨适配器代码中 以接口形式注入。所有方法签名都直接转发到底层 @electric-sql/pglite 同名 API。

Properties​

pendingNotificationCount?​

readonly optional pendingNotificationCount?: number;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:291

尚未分发的 NOTIFY 行事件数量。

Methods​

describeQuery()?​

optional describeQuery(query, options?): Promise<DescribeQueryResult>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:254

描述查询

Parameters​

ParameterTypeDescription
querystring要描述的查询
options?QueryOptions-

Returns​

Promise<DescribeQueryResult>

查询结果类型的描述

Remarks​

可选:DescribeQueryResult 里挂着解析器函数,跨不了结构化克隆,因此 US-208 的桌面 代理客户端提供不了它。适配器自身一处都没调用,声明成必需只会把「本地实现不了」 变成「必须编一个假的」。


disconnect()​

disconnect(): Promise<void>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:311

Returns​

Promise<void>


exec()​

exec(query, options?): Promise<Results[]>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:242

执行 SQL 查询,可以包含多个语句 使用 PostgreSQL 的"简单查询"协议消息

Parameters​

ParameterTypeDescription
querystring要执行的查询
options?QueryOptions-

Returns​

Promise<Results[]>

查询的结果


forceClose()​

forceClose(): Promise<void>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:310

不执行持久化同步,直接释放客户端资源。

Returns​

Promise<void>


hasStoragePeer()?​

optional hasStoragePeer(): boolean;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:278

当前 realm 中是否有其他客户端持有同一份持久化存储。

Returns​

boolean


init()​

init(dbName, options): Promise<void>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:210

Parameters​

ParameterType
dbNamestring
optionsPGliteClientOptions

Returns​

Promise<void>


liveQuery()?​

optional liveQuery<T>(
query,
params?,
callback?
): Promise<LiveQuery<T>>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:303

创建 PGlite live query,数据变化时自动回调

Type Parameters​

Type Parameter
T

Parameters​

ParameterTypeDescription
querystringSQL
params?unknown[] | null参数
callback?(results) => void结果回调

Returns​

Promise<LiveQuery<T>>

Remarks​

可选:LiveQuery 句柄带着订阅与 unsubscribe,代理实现需要自建一整套跨进程订阅 生命周期。RxDBAdapterPGlite.liveQuery 已按能力判定并快速失败。


query()​

query<T>(
query,
params?,
options?
): Promise<Results<T>>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:219

执行单个 SQL 语句 使用 PostgreSQL 的"扩展查询"协议消息

Type Parameters​

Type Parameter
T

Parameters​

ParameterTypeDescription
querystring要执行的查询语句
params?unknown[]查询的可选参数
options?QueryOptions-

Returns​

Promise<Results<T>>

查询的结果


runExclusive()?​

optional runExclusive<T>(fn): Promise<T>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:275

独占运行函数,在函数运行期间不允许其他事务或查询 这在使用 execProtocol 方法时特别有用,因为它们不会被阻塞, 也不会阻塞事务和查询使用的锁

Type Parameters​

Type Parameter
T

Parameters​

ParameterTypeDescription
fn() => Promise<T>要运行的函数

Returns​

Promise<T>

函数的结果

Remarks​

可选,理由与 IPGliteClient.describeQuery 同类但更硬:fn 是调用方的闭包, 跨进程传不过去;真要代理,只能让 renderer 在整个 fn 期间扣住主进程那条唯一连接, 而 renderer 崩溃时这把锁就永远松不开了。


snapshotDataDir()?​

optional snapshotDataDir<T>(fn): Promise<T>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:288

在一致快照上读取数据目录。

Type Parameters​

Type Parameter
T

Parameters​

ParameterType
fn(items) => Promise<T>

Returns​

Promise<T>

Remarks​

可选:主线程 PGlite 直接遍历 Emscripten 文件系统,桌面代理客户端由 host 在事务快照上逐块流回; Worker 客户端不提供,RxDBAdapterPGlite.backup 据此报 unsupported_combination。 fn 返回之前快照一直有效,期间数据库被独占。


sql()​

sql<T>(sqlStrings, ...params): Promise<Results<T>>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:234

执行单个 SQL 语句,类似于 query,但使用模板语句,其中模板值将被视为参数

使用 PostgreSQL 的"扩展查询"协议消息

Type Parameters​

Type Parameter
T

Parameters​

ParameterType
sqlStringsTemplateStringsArray
...paramsunknown[]

Returns​

Promise<Results<T>>

查询的结果

Example​

const results = await db.sql`SELECT * FROM ${identifier`foo`} WHERE id = ${id}`

transaction()​

transaction<T>(callback): Promise<T>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:261

执行事务

Type Parameters​

Type Parameter
T

Parameters​

ParameterTypeDescription
callback(tx) => Promise<T>接收事务对象的回调函数

Returns​

Promise<T>

事务的结果


version()​

version(): Promise<string>;

Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:312

Returns​

Promise<string>