SqliteClient
Defined in: packages/rxdb-adapter-sqlite/src/SqliteOfficialClient.ts:13
官方 sqlite-wasm 的 oo1 客户端。
Remarks
生命周期、事务队列、变更事件批处理与 OPFS fallback 由 Oo1ClientBase 统一实现。
Extends
Constructors
Constructor
new SqliteClient(): SqliteClient;
Returns
SqliteClient
Inherited from
Properties
db
protected db: Oo1Database;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:69
Inherited from
sqlite3
protected sqlite3: Oo1Static;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:68
Inherited from
Accessors
clientName
Get Signature
get protected clientName(): string;
Defined in: packages/rxdb-adapter-sqlite/src/SqliteOfficialClient.ts:14
错误信息中使用的简短标识(例如 'sqliteai')。
Returns
string
Overrides
Methods
addEventListener()
addEventListener(type, handler): void;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:76
对外覆盖,与 SqliteClientLike 签名保持一致。 委托给 EventDispatcher 中的泛型实现。
Parameters
| Parameter | Type |
|---|---|
type | SQLiteChangeType |
handler | (event) => void |
Returns
void
Inherited from
Oo1ClientBase.addEventListener
beginSystemMigrationTransactionSql()
beginSystemMigrationTransactionSql(): string;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:86
获取系统 schema 升级时后端支持的最高强度锁。
Returns
string
Inherited from
Oo1ClientBase.beginSystemMigrationTransactionSql
beginTransactionSql()
beginTransactionSql(): string;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:79
开启事务时使用的 SQL,默认 'BEGIN;'。
Returns
string
Remarks
后端可覆写以插入自身特有的锁策略前置语句——例如 wa-sqlite 的
IDBBatchAtomicVFS/OPFSAdaptiveVFS 选用 shared+hint 锁策略时,
需要在拿共享锁阶段先发 PRAGMA write_hint; 才能在 SHARED→RESERVED
升级时避免 SQLITE_BUSY(见 wa-sqlite WebLocksMixin)。
Comlink 远端客户端即便实现是同步的也会返回 Promise,注册方必须 await。
Inherited from
Oo1ClientBase.beginTransactionSql
describeBlankDatabase()
describeBlankDatabase(): Promise<SqliteBlankDatabase>;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:92
在同一个模块上开一条临时 :memory: 连接,描述引擎新建空库本来的样子。
Returns
Promise<SqliteBlankDatabase>
空库的对象列表与描述
Inherited from
Oo1ClientBase.describeBlankDatabase
disconnect()
disconnect(): Promise<void>;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:93
Returns
Promise<void>
Inherited from
dispatchEvent()
dispatchEvent<T>(type, data): void;
Defined in: packages/utils/dist/tools/event.d.ts:60
同步派发事件。
遍历的是快照而非实时集合:监听器在处理过程中 addEventListener 不会自喂
本轮迭代(否则单次同步派发可被第三方监听器无限延长,UTL-011)。
Type Parameters
| Type Parameter |
|---|
T extends keyof Oo1ClientEvents |
Parameters
| Parameter | Type | Description |
|---|---|---|
type | T | 事件名 |
data | Oo1ClientEvents[T] | 事件数据 |
Returns
void
Throws
监听器抛出的任意异常,原样向上冒泡;其后的监听器不再执行
Inherited from
execute()
execute(sql, bindings?): Promise<SqliteSuccessResult>;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:102
执行 SQL。
Parameters
| Parameter | Type | Description |
|---|---|---|
sql | string | SQL 语句 |
bindings? | SQLiteCompatibleType[] | 绑定参数 |
Returns
Promise<SqliteSuccessResult>
执行结果
Throws
客户端已断开,或尚未 init 完成
Inherited from
hasEventListener()
hasEventListener<T>(type, listener): boolean;
Defined in: packages/utils/dist/tools/event.d.ts:40
查询监听器是否已注册。不会为未知事件名建立集合。
Type Parameters
| Type Parameter |
|---|
T extends keyof Oo1ClientEvents |
Parameters
| Parameter | Type | Description |
|---|---|---|
type | T | 事件名 |
listener | EventListener<Oo1ClientEvents[T]> | 监听器 |
Returns
boolean
是否已注册
Inherited from
Oo1ClientBase.hasEventListener
init()
init(dbName, options?): Promise<void>;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:77
Parameters
| Parameter | Type |
|---|---|
dbName | string |
options? | SqliteLoadOptions |
Returns
Promise<void>
Inherited from
loadModule()
protected loadModule(options?): Promise<Oo1Static>;
Defined in: packages/rxdb-adapter-sqlite/src/SqliteOfficialClient.ts:18
加载并初始化底层的 sqlite-wasm 模块。
Parameters
| Parameter | Type |
|---|---|
options? | SqliteLoadOptions |
Returns
Promise<Oo1Static>
Overrides
normalizeRowId()
protected normalizeRowId(rowId): bigint;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:111
把 sqlite3_update_hook 输出的 rowId 统一成 bigint。
@sqlite.org/sqlite-wasm 在 rowId 较小时可能给出普通 number,
官方客户端会覆盖本方法强制转成 bigint;运行时本身总输出 bigint 的子类可以保留默认。
Parameters
| Parameter | Type |
|---|---|
rowId | number | bigint |
Returns
bigint
Inherited from
removeAllEventListeners()
removeAllEventListeners(): void;
Defined in: packages/utils/dist/tools/event.d.ts:62
清空所有事件名下的全部监听器。
Returns
void
Inherited from
Oo1ClientBase.removeAllEventListeners
removeEventListener()
removeEventListener<T>(type, listener): void;
Defined in: packages/utils/dist/tools/event.d.ts:49
移除监听器。未知事件名或未注册的监听器都是无操作,且不会建立空集合。
若在 dispatchEvent 过程中移除,被移除者仍会收到本次事件(快照语义)。
Type Parameters
| Type Parameter |
|---|
T extends keyof Oo1ClientEvents |
Parameters
| Parameter | Type | Description |
|---|---|---|
type | T | 事件名 |
listener | EventListener<Oo1ClientEvents[T]> | 监听器 |
Returns
void
Inherited from
Oo1ClientBase.removeEventListener
setChangeEventsMuted()
setChangeEventsMuted(muted): void;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:85
暂停 / 恢复变更事件采集。
Parameters
| Parameter | Type | Description |
|---|---|---|
muted | boolean | true 时 update hook 直接忽略写入,不入批也不派发 |
Returns
void
Inherited from
Oo1ClientBase.setChangeEventsMuted
version()
version(): Promise<string>;
Defined in: packages/rxdb-adapter-sqlite-core/dist/Oo1ClientBase.d.ts:78
Returns
Promise<string>