@aiao/rxdb 0.0.3 → 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 +3 -2
  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 -68
  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 +4 -3
  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 -5
  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/{repository → dist/repository}/relation-query.interface.d.ts +1 -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 -9
  81. package/index.d.ts +0 -33
  82. package/index.js +0 -1789
  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,4 +1,5 @@
1
1
  import { SetNonNullable } from 'type-fest';
2
+ import { RxDBContext } from '../rxdb.interface.js';
2
3
  /**
3
4
  * 判断相等
4
5
  */
@@ -70,18 +71,30 @@ export interface RuleGroup<T = any, K extends keyof T = keyof T, RT = Rule<T, K,
70
71
  combinator: 'and' | 'or';
71
72
  rules: Array<RuleGroup<T, K, RT> | RT>;
72
73
  }
74
+ export interface RuleGroupCustom<T, K, RT> {
75
+ combinator: 'and' | 'or';
76
+ rules: Array<RuleGroupCustom<T, K, RT> | RT>;
77
+ }
73
78
  /**
74
79
  * 所有操作符
75
80
  */
76
81
  export type OperatorName = '=' | '!=' | '<' | '>' | '<=' | '>=' | 'contains' | 'notContain' | 'beginWith' | 'notBeginWith' | 'endWith' | 'notEndWith' | 'null' | 'notNull' | 'in' | 'notIn' | 'between' | 'notBetween';
77
82
  /**
78
- * 操作类型
83
+ * 查询上下文
79
84
  */
80
- export type MutationType = 'create' | 'update' | 'remove';
85
+ export type IQueryContext = RxDBContext;
81
86
  /**
82
- * 查询上下文
87
+ * 操作上下文
83
88
  */
84
- export interface IQueryContext {
85
- userId?: string;
89
+ export interface IMutationContext extends RxDBContext {
90
+ /**
91
+ * 是否返回数据
92
+ */
93
+ returning?: false;
94
+ /**
95
+ * 自定义更新时间
96
+ */
97
+ updatedAt?: Date;
86
98
  }
87
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"}
@@ -60,3 +60,4 @@ export type RelationBooleanRules<K, VT> = RuleEqualNullable<K, VT>;
60
60
  */
61
61
  export type RelationDateRules<K, VT> = RuleEqualNullable<K, VT> | RuleNumberNonNullable<K, VT> | RuleIn<K, VT> | RuleBetween<K, VT>;
62
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"}