@aiao/rxdb 0.0.2 → 0.0.4

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.
Files changed (89) hide show
  1. package/LICENSE +21 -0
  2. package/{RxDB.d.ts → dist/RxDB.d.ts} +39 -11
  3. package/dist/RxDB.d.ts.map +1 -0
  4. package/{RxDBError.d.ts → dist/RxDBError.d.ts} +2 -0
  5. package/dist/RxDBError.d.ts.map +1 -0
  6. package/{entity → dist/entity}/@Entity.d.ts +4 -9
  7. package/dist/entity/@Entity.d.ts.map +1 -0
  8. package/{entity → dist/entity}/@TreeEntity.d.ts +5 -4
  9. package/dist/entity/@TreeEntity.d.ts.map +1 -0
  10. package/{entity → dist/entity}/EntityBase.d.ts +4 -1
  11. package/dist/entity/EntityBase.d.ts.map +1 -0
  12. package/{entity → dist/entity}/EntityManager.d.ts +33 -9
  13. package/dist/entity/EntityManager.d.ts.map +1 -0
  14. package/{entity → dist/entity}/EntityStatus.d.ts +26 -19
  15. package/dist/entity/EntityStatus.d.ts.map +1 -0
  16. package/dist/entity/TreeEntityBase.d.ts +15 -0
  17. package/dist/entity/TreeEntityBase.d.ts.map +1 -0
  18. package/{entity → dist/entity}/entity-metadata-options.interface.d.ts +67 -72
  19. package/dist/entity/entity-metadata-options.interface.d.ts.map +1 -0
  20. package/{entity → dist/entity}/entity-metadata.interface.d.ts +5 -14
  21. package/dist/entity/entity-metadata.interface.d.ts.map +1 -0
  22. package/{entity → dist/entity}/entity.interface.d.ts +10 -1
  23. package/dist/entity/entity.interface.d.ts.map +1 -0
  24. package/{entity → dist/entity}/entity.utils.d.ts +9 -2
  25. package/dist/entity/entity.utils.d.ts.map +1 -0
  26. package/{entity → dist/entity}/entity_proxy_helper.d.ts +3 -2
  27. package/dist/entity/entity_proxy_helper.d.ts.map +1 -0
  28. package/{entity → dist/entity}/entity_relation_helper.d.ts +4 -3
  29. package/dist/entity/entity_relation_helper.d.ts.map +1 -0
  30. package/{entity → dist/entity}/generate_many_to_many_entity.d.ts +5 -4
  31. package/dist/entity/generate_many_to_many_entity.d.ts.map +1 -0
  32. package/{entity → dist/entity}/transition-metadata.d.ts +6 -5
  33. package/dist/entity/transition-metadata.d.ts.map +1 -0
  34. package/dist/index.d.ts +38 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +3386 -0
  37. package/{repository → dist/repository}/Repository.d.ts +14 -20
  38. package/dist/repository/Repository.d.ts.map +1 -0
  39. package/{repository → dist/repository}/RepositoryBase.d.ts +6 -5
  40. package/dist/repository/RepositoryBase.d.ts.map +1 -0
  41. package/dist/repository/TreeRepository.d.ts +29 -0
  42. package/dist/repository/TreeRepository.d.ts.map +1 -0
  43. package/dist/repository/query-options.interface.d.ts +47 -0
  44. package/dist/repository/query-options.interface.d.ts.map +1 -0
  45. package/{repository → dist/repository}/query.interface.d.ts +18 -10
  46. package/dist/repository/query.interface.d.ts.map +1 -0
  47. package/dist/repository/query.utils.d.ts +27 -0
  48. package/dist/repository/query.utils.d.ts.map +1 -0
  49. package/dist/repository/relation-query.interface.d.ts +63 -0
  50. package/dist/repository/relation-query.interface.d.ts.map +1 -0
  51. package/{repository → dist/repository}/repository.interface.d.ts +9 -18
  52. package/dist/repository/repository.interface.d.ts.map +1 -0
  53. package/dist/repository/tree-repository.interface.d.ts +66 -0
  54. package/dist/repository/tree-repository.interface.d.ts.map +1 -0
  55. package/{rxdb-adapter.d.ts → dist/rxdb-adapter.d.ts} +30 -6
  56. package/dist/rxdb-adapter.d.ts.map +1 -0
  57. package/{rxdb-events.d.ts → dist/rxdb-events.d.ts} +9 -82
  58. package/dist/rxdb-events.d.ts.map +1 -0
  59. package/{rxdb-plugin.d.ts → dist/rxdb-plugin.d.ts} +2 -1
  60. package/dist/rxdb-plugin.d.ts.map +1 -0
  61. package/{rxdb-utils.d.ts → dist/rxdb-utils.d.ts} +15 -3
  62. package/dist/rxdb-utils.d.ts.map +1 -0
  63. package/{rxdb.interface.d.ts → dist/rxdb.interface.d.ts} +3 -10
  64. package/dist/rxdb.interface.d.ts.map +1 -0
  65. package/{rxdb.private.d.ts → dist/rxdb.private.d.ts} +14 -14
  66. package/dist/rxdb.private.d.ts.map +1 -0
  67. package/{schema → dist/schema}/SchemaManager.d.ts +8 -4
  68. package/dist/schema/SchemaManager.d.ts.map +1 -0
  69. package/dist/system/VersionManager.d.ts +35 -0
  70. package/dist/system/VersionManager.d.ts.map +1 -0
  71. package/dist/system/branch.d.ts +17 -0
  72. package/dist/system/branch.d.ts.map +1 -0
  73. package/dist/system/change.d.ts +78 -0
  74. package/dist/system/change.d.ts.map +1 -0
  75. package/dist/system/migration.d.ts +27 -0
  76. package/dist/system/migration.d.ts.map +1 -0
  77. package/dist/system/types.d.ts +335 -0
  78. package/dist/system/types.d.ts.map +1 -0
  79. package/package.json +26 -12
  80. package/entity/TreeEntityBase.d.ts +0 -7
  81. package/index.d.ts +0 -26
  82. package/index.js +0 -1779
  83. package/repository/TreeRepository.d.ts +0 -28
  84. package/repository/query-options.interface.d.ts +0 -53
  85. package/repository/query.utils.d.ts +0 -19
  86. package/repository/tree-query-options.interface.d.ts +0 -9
  87. package/repository/tree-repository.interface.d.ts +0 -26
  88. package/system/change.d.ts +0 -13
  89. package/system/migration.d.ts +0 -9
@@ -1,11 +1,10 @@
1
1
  import { BehaviorSubject, Observable } from 'rxjs';
2
- import { SyncOptions } from '../entity/entity-metadata-options.interface';
3
- import { EntityType } from '../entity/entity.interface';
4
- import { RxDB } from '../RxDB';
5
- import { IRxDBAdapter, RxDBAdapterLocalBase, RxDBAdapterRemoteBase } from '../rxdb-adapter';
6
- import { CountOptions, FindAllOptions, FindByCursorOptions, FindOneOptions, FindOneOrFailOptions, FindOptions, GetOptions } from './query-options.interface';
7
- import { RuleGroup } from './query.interface';
8
- import { IRepository } from './repository.interface';
2
+ import { SyncOptions } from '../entity/entity-metadata-options.interface.js';
3
+ import { EntityStaticType, EntityType } from '../entity/entity.interface.js';
4
+ import { IRxDBAdapter, RxDBAdapterLocalBase, RxDBAdapterRemoteBase } from '../rxdb-adapter.js';
5
+ import { RxDB } from '../RxDB.js';
6
+ import { CountOptions, FindAllOptions, FindOneOptions, FindOneOrFailOptions, FindOptions } from './query-options.interface.js';
7
+ import { IRepository } from './repository.interface.js';
9
8
  /**
10
9
  * 实体仓库
11
10
  * 根据配置决策实体的具体操作
@@ -42,48 +41,42 @@ export declare class Repository<T extends EntityType, RT extends IRepository<T>
42
41
  * @param id
43
42
  * @param options
44
43
  */
45
- get(id: string, options?: GetOptions): Observable<InstanceType<T>>;
44
+ get(id: EntityStaticType<T, 'idType'>): Observable<InstanceType<T>>;
46
45
  /**
47
46
  * 查找一个实体
48
47
  * @param where
49
48
  * @param options
50
49
  */
51
- findOne(where: RuleGroup<InstanceType<T>>, options?: FindOneOptions): Observable<InstanceType<T> | undefined>;
50
+ findOne(options: FindOneOptions<T>): Observable<InstanceType<T> | undefined>;
52
51
  /**
53
52
  * 查找一个实体,查不到就抛出错误
54
53
  * @param where
55
54
  * @param options
56
55
  */
57
- findOneOrFail(where: RuleGroup<InstanceType<T>>, options?: FindOneOrFailOptions): Observable<InstanceType<T>>;
56
+ findOneOrFail(options: FindOneOrFailOptions<T>): Observable<InstanceType<T>>;
58
57
  /**
59
58
  * 查询多个实体
60
59
  * @param where
61
60
  * @param options
62
61
  */
63
- find(where: RuleGroup<InstanceType<T>>, options?: FindOptions): Observable<InstanceType<T>[]>;
62
+ find(options: FindOptions<T>): Observable<InstanceType<T>[]>;
64
63
  /**
65
64
  * 查询所有实体
66
65
  * @param where
67
66
  * @param options
68
67
  */
69
- findAll(where: RuleGroup<InstanceType<T>>, options?: FindAllOptions): Observable<InstanceType<T>[]>;
70
- /**
71
- * 通过指针查询实体
72
- * @param where
73
- * @param options
74
- */
75
- findByCursor(where: RuleGroup<InstanceType<T>>, options?: FindByCursorOptions): Observable<InstanceType<T>[]>;
68
+ findAll(options: FindAllOptions<T>): Observable<InstanceType<T>[]>;
76
69
  /**
77
70
  * 查询实体数量
78
71
  * @param where
79
72
  * @param options
80
73
  */
81
- count(where: RuleGroup<InstanceType<T>>, options?: CountOptions): Observable<number>;
74
+ count(options: CountOptions<T>): Observable<number>;
82
75
  /**
83
76
  * 事务保存
84
77
  * @param entities 需要保存的实体
85
78
  */
86
- transactionSave(entities: InstanceType<T>[]): Promise<any>;
79
+ saveMany(entities: InstanceType<T>[]): Promise<InstanceType<T>[]>;
87
80
  /**
88
81
  * 创建实体
89
82
  * @param entity
@@ -106,3 +99,4 @@ export declare class Repository<T extends EntityType, RT extends IRepository<T>
106
99
  protected _setLocalEntityStatus: (entity: InstanceType<T>) => boolean;
107
100
  protected _setLocalEntitiesStatus: (entities: InstanceType<T>[]) => void;
108
101
  }
102
+ //# sourceMappingURL=Repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Repository.d.ts","sourceRoot":"","sources":["../../src/repository/Repository.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { EntityType, UUID } from '../entity/entity.interface';
2
- import { RxDB } from '../RxDB';
1
+ import { EntityStaticType, EntityType } from '../entity/entity.interface.js';
2
+ import { RxDB } from '../RxDB.js';
3
3
  /**
4
4
  * 数据仓库
5
5
  * 用来协调数据存取
@@ -13,20 +13,21 @@ export declare abstract class RepositoryBase<T extends EntityType> {
13
13
  * @param data 实体数据
14
14
  */
15
15
  createEntityRef(data: Partial<InstanceType<T>> & {
16
- id: UUID;
16
+ id: EntityStaticType<T, 'idType'>;
17
17
  }): any;
18
18
  /**
19
19
  * 获取实体实例
20
20
  * @param id 实体的 ID
21
21
  */
22
- getEntityRef(id: UUID): InstanceType<T> | undefined;
22
+ getEntityRef(id: EntityStaticType<T, 'idType'>): InstanceType<T> | undefined;
23
23
  /**
24
24
  * 获取实体实例
25
25
  * @param id 实体的 ID
26
26
  */
27
- hasEntityRef(id: UUID): boolean;
27
+ hasEntityRef(id: EntityStaticType<T, 'idType'>): boolean;
28
28
  /**
29
29
  * 更新实体
30
30
  */
31
31
  updateEntity(entity: InstanceType<T>, newValue: Partial<InstanceType<T>>): void;
32
32
  }
33
+ //# sourceMappingURL=RepositoryBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RepositoryBase.d.ts","sourceRoot":"","sources":["../../src/repository/RepositoryBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE7E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC;;;GAGG;AACH,8BAAsB,cAAc,CAAC,CAAC,SAAS,UAAU;IAErD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI;IAC7B,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBADd,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,CAAC;IAGnC;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;KAAE;IAItF;;;OAGG;IACH,YAAY,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS;IAI5E;;;OAGG;IACH,YAAY,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,OAAO;IAIxD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAOzE"}
@@ -0,0 +1,29 @@
1
+ import { Observable } from 'rxjs';
2
+ import { EntityType } from '../entity/entity.interface.js';
3
+ import { Repository } from './Repository.js';
4
+ import { FindTreeOptions, FindTreeRootOptions, ITreeRepository } from './tree-repository.interface.js';
5
+ /**
6
+ * 树结构实体仓库
7
+ * 根据配置决策实体的具体操作
8
+ */
9
+ export declare class TreeRepository<T extends EntityType, RepositoryType extends ITreeRepository<T> = ITreeRepository<T>> extends Repository<T, RepositoryType> implements ITreeRepository<T> {
10
+ findRoot(options?: FindTreeRootOptions<T>): Observable<InstanceType<T>[]>;
11
+ countRoot(options?: FindTreeRootOptions<T>): Observable<number>;
12
+ /**
13
+ * 查询子孙
14
+ */
15
+ findDescendants(options: FindTreeOptions<T>): Observable<InstanceType<T>[]>;
16
+ /**
17
+ * 查询子孙数量
18
+ */
19
+ countDescendants(options: FindTreeOptions<T>): Observable<number>;
20
+ /**
21
+ * 查询祖先
22
+ */
23
+ findAncestors(options: FindTreeOptions<T>): Observable<InstanceType<T>[]>;
24
+ /**
25
+ * 查询祖先数量
26
+ */
27
+ countAncestors(options: FindTreeOptions<T>): Observable<number>;
28
+ }
29
+ //# sourceMappingURL=TreeRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeRepository.d.ts","sourceRoot":"","sources":["../../src/repository/TreeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEvG;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,UAAU,EAAE,cAAc,SAAS,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAC9G,SAAQ,UAAU,CAAC,CAAC,EAAE,cAAc,CACpC,YAAW,eAAe,CAAC,CAAC,CAAC;IAE7B,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAOzE,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAI/D;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAO3E;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAIjE;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAOzE;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;CAGhE"}
@@ -0,0 +1,47 @@
1
+ import { EntityType } from '../entity/entity.interface.js';
2
+ import { RuleGroup } from './query.interface.js';
3
+ /**
4
+ * 排序
5
+ */
6
+ export interface OrderBy<FieldType extends string = string> {
7
+ field: FieldType;
8
+ sort: 'asc' | 'desc';
9
+ }
10
+ /**
11
+ * FindOne 查询选项
12
+ */
13
+ export interface FindOneOptions<T extends EntityType = any, WhereType = RuleGroup<InstanceType<T>>, OrderByFieldType extends string = string> {
14
+ where: WhereType;
15
+ orderBy?: OrderBy<OrderByFieldType>[];
16
+ }
17
+ /**
18
+ * FindOneOrFail 查询选项
19
+ */
20
+ export interface FindOneOrFailOptions<T extends EntityType = any, WhereType = RuleGroup<InstanceType<T>>, OrderByFieldType extends string = string> {
21
+ where: WhereType;
22
+ orderBy?: OrderBy<OrderByFieldType>[];
23
+ }
24
+ /**
25
+ * Find 查询选项
26
+ */
27
+ export interface FindOptions<T extends EntityType = any, WhereType = RuleGroup<InstanceType<T>>, OrderByFieldType extends string = string> {
28
+ where: WhereType;
29
+ orderBy?: OrderBy<OrderByFieldType>[];
30
+ limit?: number;
31
+ offset?: number;
32
+ }
33
+ /**
34
+ * FindAll 查询选项
35
+ */
36
+ export interface FindAllOptions<T extends EntityType = any, WhereType = RuleGroup<InstanceType<T>>, OrderByFieldType extends string = string> {
37
+ where: WhereType;
38
+ orderBy?: OrderBy<OrderByFieldType>[];
39
+ }
40
+ /**
41
+ * Count 查询选项
42
+ */
43
+ export interface CountOptions<T extends EntityType = any, WhereType = RuleGroup<InstanceType<T>>> {
44
+ where: WhereType;
45
+ groupBy?: string[];
46
+ }
47
+ //# sourceMappingURL=query-options.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-options.interface.d.ts","sourceRoot":"","sources":["../../src/repository/query-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM;IACxD,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAC7B,CAAC,SAAS,UAAU,GAAG,GAAG,EAC1B,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACtC,gBAAgB,SAAS,MAAM,GAAG,MAAM;IAExC,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CACnC,CAAC,SAAS,UAAU,GAAG,GAAG,EAC1B,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACtC,gBAAgB,SAAS,MAAM,GAAG,MAAM;IAExC,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,UAAU,GAAG,GAAG,EAC1B,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACtC,gBAAgB,SAAS,MAAM,GAAG,MAAM;IAExC,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAC7B,CAAC,SAAS,UAAU,GAAG,GAAG,EAC1B,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACtC,gBAAgB,SAAS,MAAM,GAAG,MAAM;IAExC,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,EAAE,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9F,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB"}
@@ -1,5 +1,5 @@
1
1
  import { SetNonNullable } from 'type-fest';
2
- import { UUID } from '../entity/entity.interface';
2
+ import { RxDBContext } from '../rxdb.interface.js';
3
3
  /**
4
4
  * 判断相等
5
5
  */
@@ -60,10 +60,6 @@ export type BooleanRules<T, K extends keyof T = keyof T, VT = T[K]> = RuleEqualN
60
60
  * Date
61
61
  */
62
62
  export type DateRules<T, K extends keyof T = keyof T, VT = T[K]> = RuleEqualNullable<T, K, VT> | RuleNumberNonNullable<T, K, VT> | RuleIn<T, K, VT> | RuleBetween<T, K, VT>;
63
- export type OneToOneRules<T, K extends keyof T = keyof T> = RuleEqualNullable<T, K, UUID> | RuleIn<T, K, UUID>;
64
- export type ManyToOneRules<T, K extends keyof T = keyof T> = RuleEqualNullable<T, K, UUID> | RuleIn<T, K, UUID>;
65
- export type OneToManyRules<T, K extends keyof T = keyof T> = RuleIn<T, K, UUID>;
66
- export type ManyToManyRules<T, K extends keyof T = keyof T> = RuleIn<T, K, UUID>;
67
63
  /**
68
64
  * 查询规则
69
65
  */
@@ -75,18 +71,30 @@ export interface RuleGroup<T = any, K extends keyof T = keyof T, RT = Rule<T, K,
75
71
  combinator: 'and' | 'or';
76
72
  rules: Array<RuleGroup<T, K, RT> | RT>;
77
73
  }
74
+ export interface RuleGroupCustom<T, K, RT> {
75
+ combinator: 'and' | 'or';
76
+ rules: Array<RuleGroupCustom<T, K, RT> | RT>;
77
+ }
78
78
  /**
79
79
  * 所有操作符
80
80
  */
81
81
  export type OperatorName = '=' | '!=' | '<' | '>' | '<=' | '>=' | 'contains' | 'notContain' | 'beginWith' | 'notBeginWith' | 'endWith' | 'notEndWith' | 'null' | 'notNull' | 'in' | 'notIn' | 'between' | 'notBetween';
82
82
  /**
83
- * 操作类型
83
+ * 查询上下文
84
84
  */
85
- export type MutationType = 'create' | 'update' | 'remove';
85
+ export type IQueryContext = RxDBContext;
86
86
  /**
87
- * 查询上下文
87
+ * 操作上下文
88
88
  */
89
- export interface IQueryContext {
90
- userId?: string;
89
+ export interface IMutationContext extends RxDBContext {
90
+ /**
91
+ * 是否返回数据
92
+ */
93
+ returning?: false;
94
+ /**
95
+ * 自定义更新时间
96
+ */
97
+ updatedAt?: Date;
91
98
  }
92
99
  export {};
100
+ //# sourceMappingURL=query.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.interface.d.ts","sourceRoot":"","sources":["../../src/repository/query.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,UAAU,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,EAAE,CAAC;CACX;AAED;;GAEG;AACH,UAAU,qBAAqB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EACJ,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,UAAU,GACV,YAAY,GACZ,WAAW,GACX,cAAc,GACd,SAAS,GACT,YAAY,CAAC;IACjB,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,qBAAqB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACxD,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,UAAU,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7D,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,SAAS,GAAG,YAAY,CAAC;IACnC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAE9G;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAC7D,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC3B,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAChB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAC7D,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC3B,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAChB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAElG;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAC3D,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC3B,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAChB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAC5D,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC3B,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAChB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IACvC,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,GAAG,GACH,IAAI,GACJ,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,UAAU,GACV,YAAY,GACZ,WAAW,GACX,cAAc,GACd,SAAS,GACT,YAAY,GACZ,MAAM,GACN,SAAS,GACT,IAAI,GACJ,OAAO,GACP,SAAS,GACT,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
@@ -0,0 +1,27 @@
1
+ import { EntityType } from '../entity/entity.interface.js';
2
+ import { OrderBy } from './query-options.interface.js';
3
+ import { RuleGroup } from './query.interface.js';
4
+ /**
5
+ * 判断是否是 RuleGroup
6
+ */
7
+ export declare const isRuleGroup: (value: unknown) => value is RuleGroup<any>;
8
+ /**
9
+ * 判断实体是否匹配规则组
10
+ */
11
+ export declare const isEntityMatchWhere: <T extends EntityType>(entity: T, ruleGroup: RuleGroup<T>) => boolean;
12
+ /**
13
+ * 判断 entity 是否影响排序后的结果中
14
+ * @param entities 排序后的结果
15
+ * @param entity 需要判断的实体
16
+ * @param orderByArray 排序数组
17
+ * @returns
18
+ */
19
+ export declare const isEntityEffectOrderBy: <T extends EntityType>(entity: T, result: T[], orderByArray: OrderBy<string>[]) => boolean | undefined;
20
+ /**
21
+ * 计算排序
22
+ * @param result
23
+ * @param orderByArray
24
+ * @returns
25
+ */
26
+ export declare const calculateOrderBy: <T extends EntityType>(result: T[], orderBy: OrderBy<string>[]) => T[];
27
+ //# sourceMappingURL=query.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.utils.d.ts","sourceRoot":"","sources":["../../src/repository/query.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAQ,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,SAAS,CAAC,GAAG,CAA2C,CAAC;AAmE/G;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,UAAU,EAAE,QAAQ,CAAC,EAAE,WAAW,SAAS,CAAC,CAAC,CAAC,YACpC,CAAC;AAkCxD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,UAAU,EACxD,QAAQ,CAAC,EACT,QAAQ,CAAC,EAAE,EACX,cAAc,OAAO,CAAC,MAAM,CAAC,EAAE,wBAgBhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,OAAO,CAAC,MAAM,CAAC,EAAE,QAQ7F,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { SetNonNullable } from 'type-fest';
2
+ /**
3
+ * 判断相等
4
+ */
5
+ interface RuleEqualNullable<K, VT> {
6
+ field: K;
7
+ operator: '=' | '!=';
8
+ value: VT;
9
+ }
10
+ /**
11
+ * 字符串比较
12
+ */
13
+ interface RuleStringNonNullable<K, VT> {
14
+ field: K;
15
+ operator: '<' | '>' | '<=' | '>=' | 'contains' | 'notContain' | 'beginWith' | 'notBeginWith' | 'endWith' | 'notEndWith';
16
+ value: SetNonNullable<VT>;
17
+ }
18
+ /**
19
+ * 数值比较
20
+ */
21
+ interface RuleNumberNonNullable<K, VT> {
22
+ field: K;
23
+ operator: '<' | '>' | '<=' | '>=';
24
+ value: SetNonNullable<VT>;
25
+ }
26
+ /**
27
+ * in
28
+ */
29
+ interface RuleIn<K, VT> {
30
+ field: K;
31
+ operator: 'in' | 'notIn';
32
+ value: SetNonNullable<VT>[];
33
+ }
34
+ /**
35
+ * between
36
+ */
37
+ interface RuleBetween<K, VT> {
38
+ field: K;
39
+ operator: 'between' | 'notBetween';
40
+ value: [SetNonNullable<VT>, SetNonNullable<VT>];
41
+ }
42
+ /**
43
+ * UUID
44
+ */
45
+ export type RelationUUIDRules<K, VT> = RuleEqualNullable<K, VT> | RuleIn<K, VT>;
46
+ /**
47
+ * string
48
+ */
49
+ export type RelationStringRules<K, VT> = RuleEqualNullable<K, VT> | RuleStringNonNullable<K, VT> | RuleIn<K, VT> | RuleBetween<K, VT>;
50
+ /**
51
+ * number
52
+ */
53
+ export type RelationNumberRules<K, VT> = RuleEqualNullable<K, VT> | RuleNumberNonNullable<K, VT> | RuleIn<K, VT> | RuleBetween<K, VT>;
54
+ /**
55
+ * Boolean
56
+ */
57
+ export type RelationBooleanRules<K, VT> = RuleEqualNullable<K, VT>;
58
+ /**
59
+ * Date
60
+ */
61
+ export type RelationDateRules<K, VT> = RuleEqualNullable<K, VT> | RuleNumberNonNullable<K, VT> | RuleIn<K, VT> | RuleBetween<K, VT>;
62
+ export {};
63
+ //# sourceMappingURL=relation-query.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-query.interface.d.ts","sourceRoot":"","sources":["../../src/repository/relation-query.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C;;GAEG;AACH,UAAU,iBAAiB,CAAC,CAAC,EAAE,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,EAAE,CAAC;CACX;AAED;;GAEG;AACH,UAAU,qBAAqB,CAAC,CAAC,EAAE,EAAE;IACnC,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EACJ,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,UAAU,GACV,YAAY,GACZ,WAAW,GACX,cAAc,GACd,SAAS,GACT,YAAY,CAAC;IACjB,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,qBAAqB,CAAC,CAAC,EAAE,EAAE;IACnC,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,MAAM,CAAC,CAAC,EAAE,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,UAAU,WAAW,CAAC,CAAC,EAAE,EAAE;IACzB,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,SAAS,GAAG,YAAY,CAAC;IACnC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,EAAE,IAAI,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,EAAE,IACjC,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,GACxB,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,GAC5B,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GACb,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAEvB;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,EAAE,IACjC,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,GACxB,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,GAC5B,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GACb,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAEvB;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,EAAE,EAAE,IAAI,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,EAAE,IAC/B,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,GACxB,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,GAC5B,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GACb,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { Observable } from 'rxjs';
2
- import { EntityType } from '../entity/entity.interface';
3
- import { CountOptions, FindAllOptions, FindByCursorOptions, FindOneOptions, FindOneOrFailOptions, FindOptions, GetOptions } from './query-options.interface';
4
- import { RuleGroup } from './query.interface';
2
+ import { EntityStaticType, EntityType } from '../entity/entity.interface.js';
3
+ import { CountOptions, FindAllOptions, FindOneOptions, FindOneOrFailOptions, FindOptions } from './query-options.interface.js';
5
4
  /**
6
5
  * 数据仓库管理接口
7
6
  */
@@ -9,45 +8,36 @@ export interface IRepository<T extends EntityType> {
9
8
  /**
10
9
  * 根据 id 获取实体
11
10
  * @param id
12
- * @param options
13
11
  */
14
- get(id: string, options?: GetOptions): Observable<InstanceType<T>>;
12
+ get(id: EntityStaticType<T, 'idType'>): Observable<InstanceType<T>>;
15
13
  /**
16
14
  * 查找一个实体
17
- * @param where
18
15
  * @param options
19
16
  */
20
- findOne(where: RuleGroup<InstanceType<T>>, options?: FindOneOptions): Observable<InstanceType<T> | undefined>;
17
+ findOne(options: FindOneOptions<T>): Observable<InstanceType<T> | undefined>;
21
18
  /**
22
19
  * 查找一个实体,查不到就抛出错误
23
- * @param where
24
20
  * @param options
25
21
  */
26
- findOneOrFail(where: RuleGroup<InstanceType<T>>, options?: FindOneOrFailOptions): Observable<InstanceType<T>>;
22
+ findOneOrFail(options: FindOneOrFailOptions<T>): Observable<InstanceType<T>>;
27
23
  /**
28
24
  * 查询多个实体
29
25
  * @param where
30
26
  * @param options
31
27
  */
32
- find(where: RuleGroup<InstanceType<T>>, options?: FindOptions): Observable<InstanceType<T>[]>;
28
+ find(options: FindOptions<T>): Observable<InstanceType<T>[]>;
33
29
  /**
34
30
  * 查询所有实体
35
31
  * @param where
36
32
  * @param options
37
33
  */
38
- findAll(where: RuleGroup<InstanceType<T>>, options?: FindAllOptions): Observable<InstanceType<T>[]>;
39
- /**
40
- * 通过指针查询实体
41
- * @param where
42
- * @param options
43
- */
44
- findByCursor(where: RuleGroup<InstanceType<T>>, options?: FindByCursorOptions): Observable<InstanceType<T>[]>;
34
+ findAll(options: FindAllOptions<T>): Observable<InstanceType<T>[]>;
45
35
  /**
46
36
  * 查询实体数量
47
37
  * @param where
48
38
  * @param options
49
39
  */
50
- count(where: RuleGroup<InstanceType<T>>, options?: CountOptions): Observable<number>;
40
+ count(options?: CountOptions<T>): Observable<number>;
51
41
  /**
52
42
  * 创建实体
53
43
  * @param entity
@@ -82,3 +72,4 @@ export declare enum SyncStatus {
82
72
  */
83
73
  Never = "Never"
84
74
  }
75
+ //# sourceMappingURL=repository.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.interface.d.ts","sourceRoot":"","sources":["../../src/repository/repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,WAAW,EACZ,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,UAAU;IAC/C;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE7E;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE7D;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEnE;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAErD;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3F;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,MAAM,WAAW;IAEjB;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,KAAK,UAAU;CAChB"}
@@ -0,0 +1,66 @@
1
+ import { Observable } from 'rxjs';
2
+ import { EntityStaticType, EntityType } from '../entity/entity.interface.js';
3
+ import { RuleGroup } from './query.interface.js';
4
+ import { IRepository } from './repository.interface.js';
5
+ /**
6
+ * 树结构查询配置
7
+ */
8
+ export interface FindTreeOptions<T extends EntityType = any, WhereType = RuleGroup<InstanceType<T>>> {
9
+ /**
10
+ * 查询的根节点
11
+ */
12
+ entity: InstanceType<T> | EntityStaticType<T, 'idType'>;
13
+ /**
14
+ * 查询条件
15
+ */
16
+ where?: WhereType;
17
+ /**
18
+ * 查询级别
19
+ * @default 0
20
+ */
21
+ level?: number;
22
+ }
23
+ /**
24
+ * 树结构查询配置
25
+ */
26
+ export interface FindTreeRootOptions<T extends EntityType = any, WhereType = RuleGroup<InstanceType<T>>> {
27
+ /**
28
+ * 查询条件
29
+ */
30
+ where?: WhereType;
31
+ /**
32
+ * 查询级别
33
+ * @default 0
34
+ */
35
+ level?: number;
36
+ }
37
+ /**
38
+ * 树结构仓库接口
39
+ */
40
+ export interface ITreeRepository<T extends EntityType> extends IRepository<T> {
41
+ /**
42
+ * 查询根节点
43
+ */
44
+ findRoot(options?: FindTreeRootOptions<T>): Observable<InstanceType<T>[]>;
45
+ /**
46
+ * 查询根节点数量
47
+ */
48
+ countRoot(options?: FindTreeRootOptions<T>): Observable<number>;
49
+ /**
50
+ * 查询子孙实体
51
+ */
52
+ findDescendants(options: FindTreeOptions<T>): Observable<InstanceType<T>[]>;
53
+ /**
54
+ * 查询子孙实体数量
55
+ */
56
+ countDescendants(options: FindTreeOptions<T>): Observable<number>;
57
+ /**
58
+ * 查询祖先节点
59
+ */
60
+ findAncestors(options: FindTreeOptions<T>): Observable<InstanceType<T>[]>;
61
+ /**
62
+ * 查询祖先节点数量
63
+ */
64
+ countAncestors(options: FindTreeOptions<T>): Observable<number>;
65
+ }
66
+ //# sourceMappingURL=tree-repository.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-repository.interface.d.ts","sourceRoot":"","sources":["../../src/repository/tree-repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,EAAE,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACjG;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAExD;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,EAAE,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrG;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC3E;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE1E;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAEhE;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE5E;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAElE;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE1E;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;CACjE"}
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
- import { EntityType } from './entity/entity.interface';
3
- import { IRepository } from './repository/repository.interface';
4
- import { RxDB } from './RxDB';
2
+ import { EntityType } from './entity/entity.interface.js';
3
+ import { IRepository } from './repository/repository.interface.js';
4
+ import { RxDB } from './RxDB.js';
5
5
  /**
6
6
  * 事务回调函数
7
7
  */
@@ -30,7 +30,12 @@ export interface IRxDBAdapter {
30
30
  /**
31
31
  * 创建 table
32
32
  */
33
- createTable(EntityType: EntityType): Promise<boolean>;
33
+ createTables(EntityTypes: EntityType[], entities?: InstanceType<any>[]): Promise<boolean>;
34
+ /**
35
+ * 保存多个实体
36
+ * @param entities
37
+ */
38
+ saveMany<T extends EntityType>(entities: InstanceType<T>[]): Promise<InstanceType<T>[]>;
34
39
  /**
35
40
  * 判断 table 是否存在
36
41
  */
@@ -43,17 +48,35 @@ export declare abstract class RxDBAdapterBase {
43
48
  readonly rxdb: RxDB;
44
49
  constructor(rxdb: RxDB);
45
50
  }
51
+ export interface RestoreEntityOptions {
52
+ source: string;
53
+ }
46
54
  /**
47
- * 数据库适配器基类
55
+ * 数据库适配器基类(本地)
48
56
  */
49
57
  export declare abstract class RxDBAdapterLocalBase extends RxDBAdapterBase {
50
58
  /**
51
59
  * 执行事务
52
60
  */
53
61
  abstract transaction(fun: TransactionFun): Promise<any>;
62
+ /**
63
+ * 创建分支
64
+ */
65
+ abstract createBranch(branchId: string, fromChangeId?: number): Promise<void>;
66
+ /**
67
+ * 切换分支
68
+ * @param branchId
69
+ */
70
+ abstract switchBranch(branchId: string): Promise<void>;
71
+ /**
72
+ * 恢复实体
73
+ * @param entity
74
+ * @param options
75
+ */
76
+ abstract restoreEntity<T extends EntityType>(entity: InstanceType<T>, options: RestoreEntityOptions): Promise<InstanceType<T>>;
54
77
  }
55
78
  /**
56
- * 数据库适配器基类
79
+ * 数据库适配器基类(远程)
57
80
  */
58
81
  export declare abstract class RxDBAdapterRemoteBase extends RxDBAdapterBase {
59
82
  }
@@ -71,3 +94,4 @@ export type AdapterFactory = (rxDB: RxDB) => Promise<IRxDBAdapter> | IRxDBAdapte
71
94
  export interface RxDBAdapters {
72
95
  [name: string]: IRxDBAdapter;
73
96
  }
97
+ //# sourceMappingURL=rxdb-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rxdb-adapter.d.ts","sourceRoot":"","sources":["../src/rxdb-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;IAEpC;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,GAAG,EAAE,CAAC;IAE3F;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1F;;;OAGG;IACH,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAExF;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,8BAAsB,eAAe;aACP,IAAI,EAAE,IAAI;gBAAV,IAAI,EAAE,IAAI;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,8BAAsB,oBAAqB,SAAQ,eAAe;IAChE;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAEvD;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7E;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEtD;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,CAAC,SAAS,UAAU,EACzC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,8BAAsB,qBAAsB,SAAQ,eAAe;CAAG;AAEtE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;CAC9B"}