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
| Parameter | Type | Description |
|---|---|---|
query | string | 要描述的查询 |
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
| Parameter | Type | Description |
|---|---|---|
query | string | 要执行的查询 |
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
| Parameter | Type |
|---|---|
dbName | string |
options | PGliteClientOptions |
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
| Parameter | Type | Description |
|---|---|---|
query | string | SQL |
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
| Parameter | Type | Description |
|---|---|---|
query | string | 要执行的查询语句 |
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
| Parameter | Type | Description |
|---|---|---|
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
| Parameter | Type |
|---|---|
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
| Parameter | Type |
|---|---|
sqlStrings | TemplateStringsArray |
...params | unknown[] |
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
| Parameter | Type | Description |
|---|---|---|
callback | (tx) => Promise<T> | 接收事务对象的回调函数 |
Returns
Promise<T>
事务的结果
version()
version(): Promise<string>;
Defined in: packages/rxdb-adapter-pglite/src/PGliteClient.ts:312
Returns
Promise<string>