@aiao/rxdb-adapter-pglite 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PGliteClient.d.ts +11 -2
- package/dist/PGliteClient.d.ts.map +1 -1
- package/dist/RxDBAdapterPGlite.d.ts +15 -16
- package/dist/RxDBAdapterPGlite.d.ts.map +1 -1
- package/dist/execute_helper.d.ts +70 -0
- package/dist/execute_helper.d.ts.map +1 -0
- package/dist/handle_rxdb_change.d.ts +26 -0
- package/dist/handle_rxdb_change.d.ts.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2403 -1884
- package/dist/pglite.interface.d.ts +37 -0
- package/dist/pglite.interface.d.ts.map +1 -1
- package/dist/pglite.utils.d.ts +46 -12
- package/dist/pglite.utils.d.ts.map +1 -1
- package/dist/query/find_by_row_ids_sql.d.ts +15 -0
- package/dist/query/find_by_row_ids_sql.d.ts.map +1 -0
- package/dist/query/join_sql.d.ts +10 -5
- package/dist/query/join_sql.d.ts.map +1 -1
- package/dist/query/query_sql.d.ts +3 -3
- package/dist/query/query_sql.d.ts.map +1 -1
- package/dist/repository/PGliteRepository.d.ts +3 -1
- package/dist/repository/PGliteRepository.d.ts.map +1 -1
- package/dist/repository/PGliteRepositoryBase.d.ts +8 -0
- package/dist/repository/PGliteRepositoryBase.d.ts.map +1 -1
- package/dist/rxdb_adapter_mutations.d.ts +72 -0
- package/dist/rxdb_adapter_mutations.d.ts.map +1 -0
- package/dist/sql_dialect.d.ts +77 -0
- package/dist/sql_dialect.d.ts.map +1 -0
- package/dist/table/{create_sql.d.ts → create_table_sql.d.ts} +1 -1
- package/dist/table/create_table_sql.d.ts.map +1 -0
- package/dist/table/create_tables_sql.d.ts +31 -0
- package/dist/table/create_tables_sql.d.ts.map +1 -0
- package/dist/table/notify_function_sql.d.ts +46 -0
- package/dist/table/notify_function_sql.d.ts.map +1 -0
- package/dist/table/remove_trigger_sql.d.ts +41 -0
- package/dist/table/remove_trigger_sql.d.ts.map +1 -0
- package/dist/table/trigger_sql.d.ts +0 -2
- package/dist/table/trigger_sql.d.ts.map +1 -1
- package/dist/transaction_pglite_result.d.ts +102 -0
- package/dist/transaction_pglite_result.d.ts.map +1 -0
- package/dist/version/create_branch.d.ts +24 -0
- package/dist/version/create_branch.d.ts.map +1 -0
- package/dist/{rxdb_adapter_switch_transaction_id.d.ts → version/switch_transaction_id.d.ts} +3 -3
- package/dist/version/switch_transaction_id.d.ts.map +1 -0
- package/package.json +7 -7
- package/dist/rxdb_adapter_create_branch.d.ts +0 -7
- package/dist/rxdb_adapter_create_branch.d.ts.map +0 -1
- package/dist/rxdb_adapter_switch_transaction_id.d.ts.map +0 -1
- package/dist/table/create_sql.d.ts.map +0 -1
package/dist/PGliteClient.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
|
+
import { EventDispatcher } from '../packages/utils/src/index.ts';
|
|
1
2
|
import { DescribeQueryResult, QueryOptions, Results, Transaction } from '@electric-sql/pglite';
|
|
2
|
-
import { PGliteClientOptions } from './pglite.interface.js';
|
|
3
|
+
import { PGliteChangeEvent, PGliteChangeType, PGliteClientOptions } from './pglite.interface.js';
|
|
4
|
+
/**
|
|
5
|
+
* PGlite 客户端事件映射
|
|
6
|
+
*/
|
|
7
|
+
export interface PGliteClientEvents {
|
|
8
|
+
[PGliteChangeType.INSERT]: PGliteChangeEvent;
|
|
9
|
+
[PGliteChangeType.UPDATE]: PGliteChangeEvent;
|
|
10
|
+
[PGliteChangeType.DELETE]: PGliteChangeEvent;
|
|
11
|
+
}
|
|
3
12
|
export interface IPGliteClient {
|
|
4
13
|
init(dbName: string, options: PGliteClientOptions): Promise<void>;
|
|
5
14
|
/**
|
|
@@ -54,7 +63,7 @@ export interface IPGliteClient {
|
|
|
54
63
|
disconnect(): Promise<void>;
|
|
55
64
|
version(): Promise<string>;
|
|
56
65
|
}
|
|
57
|
-
export declare class PGliteClient implements IPGliteClient {
|
|
66
|
+
export declare class PGliteClient extends EventDispatcher<PGliteClientEvents> implements IPGliteClient {
|
|
58
67
|
#private;
|
|
59
68
|
init(dbName: string, options: PGliteClientOptions): Promise<void>;
|
|
60
69
|
sql<T>(sqlStrings: TemplateStringsArray, ...params: any[]): Promise<Results<T>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PGliteClient.d.ts","sourceRoot":"","sources":["../src/PGliteClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAU,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEvG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PGliteClient.d.ts","sourceRoot":"","sources":["../src/PGliteClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { EntityType, IRepository, IRxDBAdapter, RestoreEntityOptions,
|
|
1
|
+
import { EntityType, IRepository, IRxDBAdapter, RestoreEntityOptions, RxDBMutationsMap, SwitchBranchOptions, SwitchVersionActions, RxDB, RxDBAdapterLocalBase, RxDBBranch, RxDBChange, TransactionFun } from '../packages/rxdb/src/index.ts';
|
|
2
2
|
import { Results } from '@electric-sql/pglite';
|
|
3
3
|
import { ADAPTER_NAME, PGliteClientOptions, PgliteTableColumn } from './pglite.interface.js';
|
|
4
|
+
import { PGliteRepository } from './repository/PGliteRepository.js';
|
|
4
5
|
/**
|
|
5
6
|
* RxDB PGlite 适配器
|
|
6
7
|
*
|
|
@@ -23,6 +24,10 @@ export declare class RxDBAdapterPGlite extends RxDBAdapterLocalBase implements I
|
|
|
23
24
|
* @param options - PGlite 客户端配置选项
|
|
24
25
|
*/
|
|
25
26
|
constructor(rxdb: RxDB, options: PGliteClientOptions);
|
|
27
|
+
mutations<T extends EntityType>(mutations: RxDBMutationsMap<T>): Promise<InstanceType<T>[]>;
|
|
28
|
+
mergeChanges(actions: SwitchVersionActions, localChanges?: Omit<RxDBChange, 'id'>[], disableTriggers?: boolean): Promise<void>;
|
|
29
|
+
getRxDBChangeSequence(): Promise<number>;
|
|
30
|
+
setRxDBChangeSequence(sequence: number): Promise<void>;
|
|
26
31
|
/**
|
|
27
32
|
* 批量删除实体
|
|
28
33
|
*
|
|
@@ -67,19 +72,8 @@ export declare class RxDBAdapterPGlite extends RxDBAdapterLocalBase implements I
|
|
|
67
72
|
* @param fromChangeId - 从指定变更 ID 创建分支(可选,默认从当前分支的最新状态)
|
|
68
73
|
* @throws {RxdbAdapterPGliteError} 分支 ID 已存在或源分支未找到
|
|
69
74
|
*/
|
|
70
|
-
createBranch(branchId: string, fromChangeId?: number): Promise<
|
|
71
|
-
|
|
72
|
-
* 切换分支
|
|
73
|
-
*
|
|
74
|
-
* 切换到不同的分支,使后续的变更记录到目标分支:
|
|
75
|
-
* 1. 验证当前分支和目标分支
|
|
76
|
-
* 2. 重建所有实体表的触发器(更新为新的分支 ID)
|
|
77
|
-
* 3. 更新分支激活状态
|
|
78
|
-
*
|
|
79
|
-
* @param branchId - 目标分支 ID
|
|
80
|
-
* @throws {RxdbAdapterPGliteError} 分支未找到
|
|
81
|
-
*/
|
|
82
|
-
switchBranch(branchId: string): Promise<void>;
|
|
75
|
+
createBranch(branchId: string, fromChangeId?: number): Promise<InstanceType<typeof RxDBBranch>>;
|
|
76
|
+
switchBranch(_options: SwitchBranchOptions): Promise<void>;
|
|
83
77
|
/**
|
|
84
78
|
* 恢复实体到指定状态
|
|
85
79
|
*
|
|
@@ -145,13 +139,13 @@ export declare class RxDBAdapterPGlite extends RxDBAdapterLocalBase implements I
|
|
|
145
139
|
*
|
|
146
140
|
* @returns 分支仓库实例
|
|
147
141
|
*/
|
|
148
|
-
localRxDBBranch():
|
|
142
|
+
localRxDBBranch(): PGliteRepository<typeof RxDBBranch>;
|
|
149
143
|
/**
|
|
150
144
|
* 获取本地变更仓库
|
|
151
145
|
*
|
|
152
146
|
* @returns 变更仓库实例
|
|
153
147
|
*/
|
|
154
|
-
localRxDBChange():
|
|
148
|
+
localRxDBChange(): PGliteRepository<typeof RxDBChange>;
|
|
155
149
|
/**
|
|
156
150
|
* 执行事务
|
|
157
151
|
*
|
|
@@ -180,6 +174,11 @@ export declare class RxDBAdapterPGlite extends RxDBAdapterLocalBase implements I
|
|
|
180
174
|
* @returns 查询结果
|
|
181
175
|
*/
|
|
182
176
|
query(sql: string, bindings?: any[]): Promise<Results<any>>;
|
|
177
|
+
/**
|
|
178
|
+
* 内部查询方法 (Public Alias)
|
|
179
|
+
* 供核心同步逻辑使用,绕过队列直接查询
|
|
180
|
+
*/
|
|
181
|
+
internalQuery(sql: string, params?: any[]): Promise<Results<any>>;
|
|
183
182
|
}
|
|
184
183
|
/**
|
|
185
184
|
* 扩展 RxDBAdapters 接口
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RxDBAdapterPGlite.d.ts","sourceRoot":"","sources":["../src/RxDBAdapterPGlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"RxDBAdapterPGlite.d.ts","sourceRoot":"","sources":["../src/RxDBAdapterPGlite.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { IPGliteClient } from './PGliteClient.js';
|
|
2
|
+
/**
|
|
3
|
+
* SQL 执行结果
|
|
4
|
+
*
|
|
5
|
+
* 包含查询结果、受影响行数和执行时间
|
|
6
|
+
*/
|
|
7
|
+
export interface ExecuteResult<T = any> {
|
|
8
|
+
/** 查询结果行 */
|
|
9
|
+
rows: T[];
|
|
10
|
+
/** 受影响的行数 */
|
|
11
|
+
rowsAffected: number;
|
|
12
|
+
/** 执行耗时(毫秒) */
|
|
13
|
+
elapsed: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 统一的 SQL 执行辅助函数
|
|
17
|
+
*
|
|
18
|
+
* 提供以下功能:
|
|
19
|
+
* 1. **性能监控**:使用 `performance.now()` 精确测量查询执行时间
|
|
20
|
+
* 2. **错误转换**:捕获 PGlite 错误并转换为 `RxdbAdapterPGliteError`
|
|
21
|
+
* 3. **统一接口**:返回标准化的结果格式
|
|
22
|
+
*
|
|
23
|
+
* ## 使用示例
|
|
24
|
+
*
|
|
25
|
+
* ### 基础查询
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const result = await execute_helper(client, 'SELECT * FROM users');
|
|
28
|
+
* console.log(result.rows); // 查询结果
|
|
29
|
+
* console.log(result.rowsAffected); // 受影响行数
|
|
30
|
+
* console.log(result.elapsed); // 执行时间(ms)
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* ### 参数化查询
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const result = await execute_helper(
|
|
36
|
+
* client,
|
|
37
|
+
* 'SELECT * FROM users WHERE id = $1',
|
|
38
|
+
* ['user-id']
|
|
39
|
+
* );
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* ### 错误处理
|
|
43
|
+
* ```typescript
|
|
44
|
+
* try {
|
|
45
|
+
* await execute_helper(client, 'INVALID SQL');
|
|
46
|
+
* } catch (error) {
|
|
47
|
+
* if (error instanceof RxdbAdapterPGliteError) {
|
|
48
|
+
* console.log(error.code); // INVALID_SQL
|
|
49
|
+
* console.log(error.originalError); // 原始 PGlite 错误
|
|
50
|
+
* }
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* ## 性能考虑
|
|
55
|
+
*
|
|
56
|
+
* - `performance.now()` 提供微秒级精度,开销极小
|
|
57
|
+
* - 错误转换只在异常路径触发,对正常查询无影响
|
|
58
|
+
* - 结果对象创建开销可忽略(< 0.1ms)
|
|
59
|
+
*
|
|
60
|
+
* @param client - PGlite 客户端实例
|
|
61
|
+
* @param sql - SQL 语句
|
|
62
|
+
* @param params - 可选的查询参数(使用 $1, $2 等占位符)
|
|
63
|
+
* @returns 包含 rows, rowsAffected, elapsed 的执行结果
|
|
64
|
+
* @throws {RxdbAdapterPGliteError} SQL 执行失败时抛出
|
|
65
|
+
*
|
|
66
|
+
* @see {@link IPGliteClient}
|
|
67
|
+
* @see {@link RxdbAdapterPGliteError}
|
|
68
|
+
*/
|
|
69
|
+
export declare function execute_helper<T = any>(client: IPGliteClient, sql: string, params?: any[]): Promise<ExecuteResult<T>>;
|
|
70
|
+
//# sourceMappingURL=execute_helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute_helper.d.ts","sourceRoot":"","sources":["../src/execute_helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IACpC,YAAY;IACZ,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,aAAa;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAsB,cAAc,CAAC,CAAC,GAAG,GAAG,EAC1C,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CA4B3B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { EntityType } from '../packages/rxdb/src/index.ts';
|
|
2
|
+
import { PGliteChangeEvent } from './pglite.interface.js';
|
|
3
|
+
import { RxDBAdapterPGlite } from './RxDBAdapterPGlite.js';
|
|
4
|
+
/**
|
|
5
|
+
* 处理 PGlite 数据库变更事件
|
|
6
|
+
*
|
|
7
|
+
* 工作流程:
|
|
8
|
+
* 1. 解析表名获取 EntityType
|
|
9
|
+
* 2. 通过 `repository.findByRowIds()` 查询受影响的实体
|
|
10
|
+
* 3. 特殊处理 RxDBChange 表:
|
|
11
|
+
* - 转换 patch/inversePatch 字段
|
|
12
|
+
* - 触发被变更实体的事件
|
|
13
|
+
* - 触发 RxDBChange 自身的 INSERT 事件
|
|
14
|
+
* 4. 普通表:直接触发实体事件
|
|
15
|
+
*
|
|
16
|
+
* @param adapter - PGlite 适配器实例
|
|
17
|
+
* @param event - PGlite NOTIFY 变更事件
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* 此函数异步执行,错误会被捕获并记录到控制台。
|
|
21
|
+
*
|
|
22
|
+
* @see {@link PGliteChangeEvent}
|
|
23
|
+
* @see {@link RxDBChange}
|
|
24
|
+
*/
|
|
25
|
+
export declare const handle_rxdb_change: <T extends EntityType = any>(adapter: RxDBAdapterPGlite, event: PGliteChangeEvent) => void;
|
|
26
|
+
//# sourceMappingURL=handle_rxdb_change.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle_rxdb_change.d.ts","sourceRoot":"","sources":["../src/handle_rxdb_change.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAIL,UAAU,EAMX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAoB,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAoG3D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,UAAU,GAAG,GAAG,EAC3D,SAAS,iBAAiB,EAC1B,OAAO,iBAAiB,SA6GzB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
+
export * from './pglite.interface.js';
|
|
2
|
+
export * from './pglite.utils.js';
|
|
1
3
|
export { RxdbAdapterPGliteError } from './pglite.utils.js';
|
|
4
|
+
export * from './PGliteClient.js';
|
|
2
5
|
export * from './RxDBAdapterPGlite.js';
|
|
6
|
+
export * from './sql_dialect.js';
|
|
7
|
+
export { create_tables_sql } from './table/create_tables_sql.js';
|
|
8
|
+
export * from './table/notify_function_sql.js';
|
|
9
|
+
export { remove_all_triggers_sql, remove_trigger_sql } from './table/remove_trigger_sql.js';
|
|
3
10
|
export { generate_trigger_sql } from './table/trigger_sql.js';
|
|
4
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
|