@aiao/rxdb 0.0.5 → 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/RxDB.d.ts +118 -21
- package/dist/RxDB.d.ts.map +1 -1
- package/dist/RxDBError.d.ts.map +1 -1
- package/dist/entity/@Entity.d.ts +1 -1
- package/dist/entity/@Entity.d.ts.map +1 -1
- package/dist/entity/@TreeEntity.d.ts +2 -21
- package/dist/entity/@TreeEntity.d.ts.map +1 -1
- package/dist/entity/EntityBase.d.ts +59 -11
- package/dist/entity/EntityBase.d.ts.map +1 -1
- package/dist/entity/EntityManager.d.ts +18 -25
- package/dist/entity/EntityManager.d.ts.map +1 -1
- package/dist/entity/EntityStatus.d.ts +149 -107
- package/dist/entity/EntityStatus.d.ts.map +1 -1
- package/dist/entity/EntityStatus.interface.d.ts +59 -0
- package/dist/entity/EntityStatus.interface.d.ts.map +1 -0
- package/dist/entity/TreeEntityBase.d.ts +32 -5
- package/dist/entity/TreeEntityBase.d.ts.map +1 -1
- package/dist/entity/entity.interface.d.ts +23 -34
- package/dist/entity/entity.interface.d.ts.map +1 -1
- package/dist/entity/entity.utils.d.ts +23 -2
- package/dist/entity/entity.utils.d.ts.map +1 -1
- package/dist/entity/{generate_many_to_many_entity.d.ts → many_to_many_entity.d.ts} +3 -3
- package/dist/entity/many_to_many_entity.d.ts.map +1 -0
- package/dist/entity/{entity-metadata-options.interface.d.ts → metadata-options.interface.d.ts} +312 -35
- package/dist/entity/metadata-options.interface.d.ts.map +1 -0
- package/dist/entity/{transition-metadata.d.ts → metadata-transition.d.ts} +3 -3
- package/dist/entity/metadata-transition.d.ts.map +1 -0
- package/dist/entity/{entity-metadata.interface.d.ts → metadata.interface.d.ts} +8 -2
- package/dist/entity/metadata.interface.d.ts.map +1 -0
- package/dist/entity/metadata_cascade_default.d.ts +54 -0
- package/dist/entity/metadata_cascade_default.d.ts.map +1 -0
- package/dist/entity/proxy.d.ts +7 -0
- package/dist/entity/proxy.d.ts.map +1 -0
- package/dist/entity/{entity_relation_helper.d.ts → relation_helper.d.ts} +2 -2
- package/dist/entity/relation_helper.d.ts.map +1 -0
- package/dist/entity/tree-entity.interface.d.ts +5 -0
- package/dist/entity/tree-entity.interface.d.ts.map +1 -0
- package/dist/gateway/RxDBTabsGateway.d.ts +52 -0
- package/dist/gateway/RxDBTabsGateway.d.ts.map +1 -0
- package/dist/gateway/gateway.interface.d.ts +43 -0
- package/dist/gateway/gateway.interface.d.ts.map +1 -0
- package/dist/index.d.ts +19 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6579 -2876
- package/dist/query/entity_type_dependencies.d.ts +22 -0
- package/dist/query/entity_type_dependencies.d.ts.map +1 -0
- package/dist/query/merge-update-basic.d.ts +30 -0
- package/dist/query/merge-update-basic.d.ts.map +1 -0
- package/dist/query/merge-update-tree.d.ts +86 -0
- package/dist/query/merge-update-tree.d.ts.map +1 -0
- package/dist/query/merge-update.utils.d.ts +52 -0
- package/dist/query/merge-update.utils.d.ts.map +1 -0
- package/dist/query/merge_create.d.ts +19 -0
- package/dist/query/merge_create.d.ts.map +1 -0
- package/dist/query/merge_remove.d.ts +6 -0
- package/dist/query/merge_remove.d.ts.map +1 -0
- package/dist/query/merge_update.d.ts +24 -0
- package/dist/query/merge_update.d.ts.map +1 -0
- package/dist/query/need_refresh_create.d.ts +11 -0
- package/dist/query/need_refresh_create.d.ts.map +1 -0
- package/dist/query/need_refresh_remove.d.ts +6 -0
- package/dist/query/need_refresh_remove.d.ts.map +1 -0
- package/dist/query/need_refresh_update.d.ts +11 -0
- package/dist/query/need_refresh_update.d.ts.map +1 -0
- package/dist/query/query-matching.utils.d.ts +60 -0
- package/dist/query/query-matching.utils.d.ts.map +1 -0
- package/dist/query/query-relation.utils.d.ts +44 -0
- package/dist/query/query-relation.utils.d.ts.map +1 -0
- package/dist/query/query-rules-builder.d.ts +68 -0
- package/dist/query/query-rules-builder.d.ts.map +1 -0
- package/dist/query/query-tree.utils.d.ts +54 -0
- package/dist/query/query-tree.utils.d.ts.map +1 -0
- package/dist/repository/QueryManager.d.ts +69 -0
- package/dist/repository/QueryManager.d.ts.map +1 -0
- package/dist/repository/QueryManager.interface.d.ts +106 -0
- package/dist/repository/QueryManager.interface.d.ts.map +1 -0
- package/dist/repository/QueryTask.d.ts +150 -0
- package/dist/repository/QueryTask.d.ts.map +1 -0
- package/dist/repository/Repository.d.ts +38 -44
- package/dist/repository/Repository.d.ts.map +1 -1
- package/dist/repository/RepositoryBase.d.ts +8 -8
- package/dist/repository/RepositoryBase.d.ts.map +1 -1
- package/dist/repository/TreeRepository.d.ts +29 -4
- package/dist/repository/TreeRepository.d.ts.map +1 -1
- package/dist/repository/fingerprint.utils.d.ts +28 -0
- package/dist/repository/fingerprint.utils.d.ts.map +1 -0
- package/dist/repository/query-options.interface.d.ts +88 -16
- package/dist/repository/query-options.interface.d.ts.map +1 -1
- package/dist/repository/query.interface.d.ts +107 -37
- package/dist/repository/query.interface.d.ts.map +1 -1
- package/dist/repository/relation-query.interface.d.ts +20 -1
- package/dist/repository/relation-query.interface.d.ts.map +1 -1
- package/dist/repository/repository.interface.d.ts +4 -29
- package/dist/repository/repository.interface.d.ts.map +1 -1
- package/dist/repository/tree-repository.interface.d.ts +34 -30
- package/dist/repository/tree-repository.interface.d.ts.map +1 -1
- package/dist/rxdb-adapter.d.ts +100 -16
- package/dist/rxdb-adapter.d.ts.map +1 -1
- package/dist/rxdb-events.d.ts +335 -66
- package/dist/rxdb-events.d.ts.map +1 -1
- package/dist/rxdb-plugin.d.ts +2 -2
- package/dist/rxdb-plugin.d.ts.map +1 -1
- package/dist/rxdb-utils.d.ts +20 -9
- package/dist/rxdb-utils.d.ts.map +1 -1
- package/dist/rxdb.interface.d.ts +5 -9
- package/dist/rxdb.interface.d.ts.map +1 -1
- package/dist/rxdb.private.d.ts +7 -36
- package/dist/rxdb.private.d.ts.map +1 -1
- package/dist/schema/SchemaManager.d.ts +5 -4
- package/dist/schema/SchemaManager.d.ts.map +1 -1
- package/dist/system/branch.d.ts +124 -7
- package/dist/system/branch.d.ts.map +1 -1
- package/dist/system/change.d.ts +605 -33
- package/dist/system/change.d.ts.map +1 -1
- package/dist/system/migration.d.ts +61 -11
- package/dist/system/migration.d.ts.map +1 -1
- package/dist/system/repository-sync.d.ts +95 -0
- package/dist/system/repository-sync.d.ts.map +1 -0
- package/dist/system/system.interface.d.ts +25 -0
- package/dist/system/system.interface.d.ts.map +1 -0
- package/dist/system/types.d.ts +234 -139
- package/dist/system/types.d.ts.map +1 -1
- package/dist/system/types.local.d.ts +156 -0
- package/dist/system/types.local.d.ts.map +1 -0
- package/dist/system/types.remote.d.ts +103 -0
- package/dist/system/types.remote.d.ts.map +1 -0
- package/dist/version/HistoryManager.d.ts +238 -0
- package/dist/version/HistoryManager.d.ts.map +1 -0
- package/dist/version/LWWConflictResolver.d.ts +41 -0
- package/dist/version/LWWConflictResolver.d.ts.map +1 -0
- package/dist/version/VersionManager.d.ts +407 -0
- package/dist/version/VersionManager.d.ts.map +1 -0
- package/dist/version/VersionManager.interface.d.ts +428 -0
- package/dist/version/VersionManager.interface.d.ts.map +1 -0
- package/dist/version/VersionManager.utils.d.ts +14 -0
- package/dist/version/VersionManager.utils.d.ts.map +1 -0
- package/dist/version/bulk-sync.d.ts +97 -0
- package/dist/version/bulk-sync.d.ts.map +1 -0
- package/dist/version/check-repository-updates.d.ts +53 -0
- package/dist/version/check-repository-updates.d.ts.map +1 -0
- package/dist/version/compact-changes.d.ts +45 -0
- package/dist/version/compact-changes.d.ts.map +1 -0
- package/dist/version/conflict.d.ts +75 -0
- package/dist/version/conflict.d.ts.map +1 -0
- package/dist/version/create_branch.d.ts +13 -0
- package/dist/version/create_branch.d.ts.map +1 -0
- package/dist/version/dependency-graph.d.ts +132 -0
- package/dist/version/dependency-graph.d.ts.map +1 -0
- package/dist/version/find_switch_branch_step.d.ts +53 -0
- package/dist/version/find_switch_branch_step.d.ts.map +1 -0
- package/dist/version/get-all-repository-sync-status.d.ts +58 -0
- package/dist/version/get-all-repository-sync-status.d.ts.map +1 -0
- package/dist/version/get-repository-sync-status.d.ts +74 -0
- package/dist/version/get-repository-sync-status.d.ts.map +1 -0
- package/dist/version/pull-repository.d.ts +99 -0
- package/dist/version/pull-repository.d.ts.map +1 -0
- package/dist/version/pull.d.ts +11 -0
- package/dist/version/pull.d.ts.map +1 -0
- package/dist/version/push-repository.d.ts +93 -0
- package/dist/version/push-repository.d.ts.map +1 -0
- package/dist/version/push.d.ts +11 -0
- package/dist/version/push.d.ts.map +1 -0
- package/dist/version/remove_branch.d.ts +8 -0
- package/dist/version/remove_branch.d.ts.map +1 -0
- package/dist/version/switch_branch_actions.d.ts +17 -0
- package/dist/version/switch_branch_actions.d.ts.map +1 -0
- package/dist/version/sync-repository.d.ts +57 -0
- package/dist/version/sync-repository.d.ts.map +1 -0
- package/dist/version/sync-type-utils.d.ts +145 -0
- package/dist/version/sync-type-utils.d.ts.map +1 -0
- package/dist/version/topological-sort.d.ts +70 -0
- package/dist/version/topological-sort.d.ts.map +1 -0
- package/dist/version/version.utils.d.ts +4 -0
- package/dist/version/version.utils.d.ts.map +1 -0
- package/package.json +4 -3
- package/README.md +0 -1
- package/dist/entity/entity-metadata-options.interface.d.ts.map +0 -1
- package/dist/entity/entity-metadata.interface.d.ts.map +0 -1
- package/dist/entity/entity_proxy_helper.d.ts +0 -49
- package/dist/entity/entity_proxy_helper.d.ts.map +0 -1
- package/dist/entity/entity_relation_helper.d.ts.map +0 -1
- package/dist/entity/generate_many_to_many_entity.d.ts.map +0 -1
- package/dist/entity/transition-metadata.d.ts.map +0 -1
- package/dist/repository/query.utils.d.ts +0 -27
- package/dist/repository/query.utils.d.ts.map +0 -1
- package/dist/system/VersionManager.d.ts +0 -35
- package/dist/system/VersionManager.d.ts.map +0 -1
|
@@ -3,45 +3,117 @@ import { RuleGroup } from './query.interface.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* 排序
|
|
5
5
|
*/
|
|
6
|
-
export interface OrderBy<
|
|
7
|
-
|
|
6
|
+
export interface OrderBy<T extends string = string> {
|
|
7
|
+
/**
|
|
8
|
+
* 排序字段
|
|
9
|
+
*/
|
|
10
|
+
field: T;
|
|
11
|
+
/**
|
|
12
|
+
* 排序方式
|
|
13
|
+
*/
|
|
8
14
|
sort: 'asc' | 'desc';
|
|
9
15
|
}
|
|
10
16
|
/**
|
|
11
17
|
* FindOne 查询选项
|
|
12
18
|
*/
|
|
13
|
-
export interface FindOneOptions<T extends EntityType = any,
|
|
14
|
-
where:
|
|
15
|
-
orderBy?: OrderBy<
|
|
19
|
+
export interface FindOneOptions<T extends EntityType = any, U = RuleGroup<InstanceType<T>>, W extends string = string> {
|
|
20
|
+
where: U;
|
|
21
|
+
orderBy?: OrderBy<W>[];
|
|
16
22
|
}
|
|
17
23
|
/**
|
|
18
24
|
* FindOneOrFail 查询选项
|
|
19
25
|
*/
|
|
20
|
-
export interface FindOneOrFailOptions<T extends EntityType = any,
|
|
21
|
-
where:
|
|
22
|
-
orderBy?: OrderBy<
|
|
26
|
+
export interface FindOneOrFailOptions<T extends EntityType = any, U = RuleGroup<InstanceType<T>>, W extends string = string> {
|
|
27
|
+
where: U;
|
|
28
|
+
orderBy?: OrderBy<W>[];
|
|
23
29
|
}
|
|
24
30
|
/**
|
|
25
31
|
* Find 查询选项
|
|
26
32
|
*/
|
|
27
|
-
export interface FindOptions<T extends EntityType = any,
|
|
28
|
-
where:
|
|
29
|
-
orderBy?: OrderBy<
|
|
33
|
+
export interface FindOptions<T extends EntityType = any, U = RuleGroup<InstanceType<T>>, W extends string = string> {
|
|
34
|
+
where: U;
|
|
35
|
+
orderBy?: OrderBy<W>[];
|
|
36
|
+
/**
|
|
37
|
+
* 获取数据量
|
|
38
|
+
* @default 100
|
|
39
|
+
*/
|
|
30
40
|
limit?: number;
|
|
41
|
+
/**
|
|
42
|
+
* 分页偏离量
|
|
43
|
+
* @default 0
|
|
44
|
+
*/
|
|
31
45
|
offset?: number;
|
|
32
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* FindByCursor 查询选项
|
|
49
|
+
*/
|
|
50
|
+
export interface FindByCursorOptions<T extends EntityType = any, U = RuleGroup<InstanceType<T>>, W extends string = string> {
|
|
51
|
+
where: U;
|
|
52
|
+
/**
|
|
53
|
+
* 排序条件
|
|
54
|
+
* 指针查询的时候必须包含唯一值的排序例如: id 作为最后一个排序参数,不然无法定位指针
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* orderBy: [
|
|
58
|
+
* { field: 'createdAt', sort: 'DESC' },
|
|
59
|
+
* { field: 'id', sort: 'ASC' } // 必须包含唯一值排序
|
|
60
|
+
* ]
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
orderBy: OrderBy<W>[];
|
|
64
|
+
/**
|
|
65
|
+
* 获取这个实体之前的实体
|
|
66
|
+
*/
|
|
67
|
+
before?: InstanceType<T>;
|
|
68
|
+
/**
|
|
69
|
+
* 获取这个实体之后的实体
|
|
70
|
+
*/
|
|
71
|
+
after?: InstanceType<T>;
|
|
72
|
+
/**
|
|
73
|
+
* 获取数据量
|
|
74
|
+
* 注意:limit 首次返回会 <=100, 但是第二次,增量场景下并不一定保持 100 他会根据实际情况变化
|
|
75
|
+
* 例如:页面滚动触发有两个 FindByCursor 查询组成了一组数据,这时候有个数据被创建且数据满足第一个查询条件
|
|
76
|
+
* 那么更新后的数据量就会比 limit 多 1, 第二个 FindByCursor 开头的指针是不会变的,所以没有影响第二个结果集
|
|
77
|
+
* @default 100
|
|
78
|
+
*/
|
|
79
|
+
limit?: number;
|
|
80
|
+
}
|
|
33
81
|
/**
|
|
34
82
|
* FindAll 查询选项
|
|
35
83
|
*/
|
|
36
|
-
export interface FindAllOptions<T extends EntityType = any,
|
|
37
|
-
|
|
38
|
-
|
|
84
|
+
export interface FindAllOptions<T extends EntityType = any, U = RuleGroup<InstanceType<T>>, W extends string = string> {
|
|
85
|
+
/**
|
|
86
|
+
* 查询条件
|
|
87
|
+
* 用于过滤查询结果
|
|
88
|
+
* 支持组合查询
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* where: {
|
|
92
|
+
* combinator: 'and',
|
|
93
|
+
* rules: [
|
|
94
|
+
* { field: 'status', operator: '=', value: 'active' },
|
|
95
|
+
* { field: 'createdAt', operator: '>=', value: '2023-01-01' }
|
|
96
|
+
* ]
|
|
97
|
+
* }
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
where: U;
|
|
101
|
+
/**
|
|
102
|
+
* 排序条件
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* orderBy: [
|
|
106
|
+
* { field: 'createdAt', sort: 'desc' },
|
|
107
|
+
* { field: 'id', sort: 'asc' } // 必须包含唯一值排序
|
|
108
|
+
* ]
|
|
109
|
+
*/
|
|
110
|
+
orderBy?: OrderBy<W>[];
|
|
39
111
|
}
|
|
40
112
|
/**
|
|
41
113
|
* Count 查询选项
|
|
42
114
|
*/
|
|
43
|
-
export interface CountOptions<T extends EntityType = any,
|
|
44
|
-
where:
|
|
115
|
+
export interface CountOptions<T extends EntityType = any, U = RuleGroup<InstanceType<T>>> {
|
|
116
|
+
where: U;
|
|
45
117
|
groupBy?: string[];
|
|
46
118
|
}
|
|
47
119
|
//# sourceMappingURL=query-options.interface.d.ts.map
|
|
@@ -1 +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;
|
|
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;AAEjD;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAChD;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IACnH,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CACnC,CAAC,SAAS,UAAU,GAAG,GAAG,EAC1B,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC9B,CAAC,SAAS,MAAM,GAAG,MAAM;IAEzB,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IAChH,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAClC,CAAC,SAAS,UAAU,GAAG,GAAG,EAC1B,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC9B,CAAC,SAAS,MAAM,GAAG,MAAM;IAEzB,KAAK,EAAE,CAAC,CAAC;IAET;;;;;;;;;;OAUG;IACH,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAExB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IACnH;;;;;;;;;;;;;;OAcG;IACH,KAAK,EAAE,CAAC,CAAC;IAET;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACtF,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB"}
|
|
@@ -1,84 +1,117 @@
|
|
|
1
|
-
import { SetNonNullable } from 'type-fest';
|
|
2
1
|
import { RxDBContext } from '../rxdb.interface.js';
|
|
2
|
+
/**
|
|
3
|
+
* 字符串类型的键
|
|
4
|
+
*/
|
|
5
|
+
type StringKey<T> = keyof T & string;
|
|
3
6
|
/**
|
|
4
7
|
* 判断相等
|
|
5
8
|
*/
|
|
6
|
-
interface RuleEqualNullable<T, K extends
|
|
9
|
+
interface RuleEqualNullable<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> {
|
|
7
10
|
field: K;
|
|
8
11
|
operator: '=' | '!=';
|
|
9
|
-
value: VT
|
|
12
|
+
value: Exclude<VT, undefined>;
|
|
10
13
|
}
|
|
11
14
|
/**
|
|
12
15
|
* 字符串比较
|
|
13
16
|
*/
|
|
14
|
-
interface RuleStringNonNullable<T, K extends
|
|
17
|
+
interface RuleStringNonNullable<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> {
|
|
15
18
|
field: K;
|
|
16
|
-
operator: '<' | '>' | '<=' | '>=' | 'contains' | '
|
|
17
|
-
value:
|
|
19
|
+
operator: '<' | '>' | '<=' | '>=' | 'contains' | 'notContains' | 'startsWith' | 'notStartsWith' | 'endsWith' | 'notEndsWith';
|
|
20
|
+
value: Exclude<VT, undefined | null>;
|
|
18
21
|
}
|
|
19
22
|
/**
|
|
20
23
|
* 数值比较
|
|
21
24
|
*/
|
|
22
|
-
interface RuleNumberNonNullable<T, K extends
|
|
25
|
+
interface RuleNumberNonNullable<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> {
|
|
23
26
|
field: K;
|
|
24
27
|
operator: '<' | '>' | '<=' | '>=';
|
|
25
|
-
value:
|
|
28
|
+
value: Exclude<VT, undefined | null>;
|
|
26
29
|
}
|
|
27
30
|
/**
|
|
28
31
|
* in
|
|
29
32
|
*/
|
|
30
|
-
interface RuleIn<T, K extends
|
|
33
|
+
interface RuleIn<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> {
|
|
31
34
|
field: K;
|
|
32
35
|
operator: 'in' | 'notIn';
|
|
33
|
-
value:
|
|
36
|
+
value: Exclude<VT, undefined | null>[];
|
|
34
37
|
}
|
|
35
38
|
/**
|
|
36
39
|
* between
|
|
37
40
|
*/
|
|
38
|
-
interface RuleBetween<T, K extends
|
|
41
|
+
interface RuleBetween<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> {
|
|
39
42
|
field: K;
|
|
40
43
|
operator: 'between' | 'notBetween';
|
|
41
|
-
value: [
|
|
44
|
+
value: [Exclude<VT, undefined | null>, Exclude<VT, undefined | null>];
|
|
42
45
|
}
|
|
43
46
|
/**
|
|
44
|
-
*
|
|
45
|
-
*/
|
|
46
|
-
export type UUIDRules<T, K extends keyof T = keyof T, VT = T[K]> = RuleEqualNullable<T, K> | RuleIn<T, K, VT>;
|
|
47
|
-
/**
|
|
48
|
-
* string
|
|
49
|
-
*/
|
|
50
|
-
export type StringRules<T, K extends keyof T = keyof T, VT = T[K]> = RuleEqualNullable<T, K, VT> | RuleStringNonNullable<T, K, VT> | RuleIn<T, K, VT> | RuleBetween<T, K, VT>;
|
|
51
|
-
/**
|
|
52
|
-
* number
|
|
53
|
-
*/
|
|
54
|
-
export type NumberRules<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>;
|
|
55
|
-
/**
|
|
56
|
-
* Boolean
|
|
47
|
+
* 数值比较
|
|
57
48
|
*/
|
|
58
|
-
|
|
49
|
+
interface RuleJSONSimple<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> {
|
|
50
|
+
field: K;
|
|
51
|
+
operator: 'contains' | 'notContains';
|
|
52
|
+
value: Exclude<VT, undefined | null>;
|
|
53
|
+
}
|
|
59
54
|
/**
|
|
60
|
-
*
|
|
55
|
+
* EXISTS / NOT EXISTS
|
|
56
|
+
* 用于查询关系字段是否存在满足条件的关联实体
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* // 基础用法 - 查询有子菜单的菜单
|
|
60
|
+
* { field: 'children', operator: 'exists' }
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* // 带条件 - 查询有激活状态子菜单的菜单
|
|
64
|
+
* {
|
|
65
|
+
* field: 'children',
|
|
66
|
+
* operator: 'exists',
|
|
67
|
+
* where: {
|
|
68
|
+
* combinator: 'and',
|
|
69
|
+
* rules: [{ field: 'active', operator: '=', value: true }]
|
|
70
|
+
* }
|
|
71
|
+
* }
|
|
61
72
|
*/
|
|
62
|
-
|
|
73
|
+
interface RuleExists<T, K extends StringKey<T> = StringKey<T>> {
|
|
74
|
+
/**
|
|
75
|
+
* 关系字段名
|
|
76
|
+
* 必须是实体上定义的关系字段(通过 @Relation 装饰器)
|
|
77
|
+
*/
|
|
78
|
+
field: K;
|
|
79
|
+
/**
|
|
80
|
+
* EXISTS 操作符
|
|
81
|
+
*/
|
|
82
|
+
operator: 'exists' | 'notExists';
|
|
83
|
+
/**
|
|
84
|
+
* 子查询条件(可选)
|
|
85
|
+
* 用于过滤关联实体
|
|
86
|
+
*
|
|
87
|
+
* 类型自动推断:
|
|
88
|
+
* - 1:N 关系: T[K] extends Array<infer U> ? U : never
|
|
89
|
+
* - N:1 关系: T[K]
|
|
90
|
+
* - 1:1 关系: T[K]
|
|
91
|
+
* - N:M 关系: T[K] extends Array<infer U> ? U : never
|
|
92
|
+
*/
|
|
93
|
+
where?: RuleGroup<T[K] extends Array<infer U> ? U : T[K]>;
|
|
94
|
+
}
|
|
63
95
|
/**
|
|
64
96
|
* 查询规则
|
|
65
97
|
*/
|
|
66
|
-
export type Rule<T = any, K extends
|
|
98
|
+
export type Rule<T = any, K extends StringKey<T> = StringKey<T>, VT = T[K]> = RuleEqualNullable<T, K, VT> | RuleStringNonNullable<T, K, VT> | RuleNumberNonNullable<T, K, VT> | RuleIn<T, K, VT> | RuleBetween<T, K, VT> | RuleJSONSimple<T, K, VT> | RuleExists<T, K>;
|
|
67
99
|
/**
|
|
68
|
-
*
|
|
100
|
+
* 查询规则组(基础)
|
|
101
|
+
* 用于生成的类型文件,可以组合出更多复杂的类型
|
|
69
102
|
*/
|
|
70
|
-
export interface
|
|
71
|
-
combinator: 'and' | 'or';
|
|
72
|
-
rules: Array<RuleGroup<T, K, RT> | RT>;
|
|
73
|
-
}
|
|
74
|
-
export interface RuleGroupCustom<T, K, RT> {
|
|
103
|
+
export interface RuleGroupBase<T, K, RT> {
|
|
75
104
|
combinator: 'and' | 'or';
|
|
76
|
-
rules: Array<
|
|
105
|
+
rules: Array<RuleGroupBase<T, K, RT> | RT>;
|
|
77
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* 查询规则组(自动计算类型)
|
|
109
|
+
*/
|
|
110
|
+
export type RuleGroup<T = any, K extends StringKey<T> = StringKey<T>, RT = Rule<T, K, T[K]>> = RuleGroupBase<T, K, RT>;
|
|
78
111
|
/**
|
|
79
112
|
* 所有操作符
|
|
80
113
|
*/
|
|
81
|
-
export type OperatorName = '=' | '!=' | '<' | '>' | '<=' | '>=' | 'contains' | '
|
|
114
|
+
export type OperatorName = '=' | '!=' | '<' | '>' | '<=' | '>=' | 'contains' | 'notContains' | 'startsWith' | 'notStartsWith' | 'endsWith' | 'notEndsWith' | 'null' | 'notNull' | 'in' | 'notIn' | 'between' | 'notBetween' | 'exists' | 'notExists';
|
|
82
115
|
/**
|
|
83
116
|
* 查询上下文
|
|
84
117
|
*/
|
|
@@ -95,6 +128,43 @@ export interface IMutationContext extends RxDBContext {
|
|
|
95
128
|
* 自定义更新时间
|
|
96
129
|
*/
|
|
97
130
|
updatedAt?: Date;
|
|
131
|
+
createdAt?: Date;
|
|
98
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* UUID
|
|
135
|
+
*/
|
|
136
|
+
export type UUIDRules<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> = RuleEqualNullable<T, K, VT> | RuleIn<T, K, VT>;
|
|
137
|
+
/**
|
|
138
|
+
* string
|
|
139
|
+
*/
|
|
140
|
+
export type StringRules<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> = RuleEqualNullable<T, K, VT> | RuleStringNonNullable<T, K, VT> | RuleIn<T, K, VT> | RuleBetween<T, K, VT>;
|
|
141
|
+
/**
|
|
142
|
+
* number
|
|
143
|
+
*/
|
|
144
|
+
export type NumberRules<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> = RuleEqualNullable<T, K, VT> | RuleNumberNonNullable<T, K, VT> | RuleIn<T, K, VT> | RuleBetween<T, K, VT>;
|
|
145
|
+
/**
|
|
146
|
+
* integer
|
|
147
|
+
*/
|
|
148
|
+
export type IntegerRules<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> = RuleEqualNullable<T, K, VT> | RuleNumberNonNullable<T, K, VT> | RuleIn<T, K, VT> | RuleBetween<T, K, VT>;
|
|
149
|
+
/**
|
|
150
|
+
* Boolean
|
|
151
|
+
*/
|
|
152
|
+
export type BooleanRules<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> = RuleEqualNullable<T, K, VT>;
|
|
153
|
+
/**
|
|
154
|
+
* Date
|
|
155
|
+
*/
|
|
156
|
+
export type DateRules<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> = RuleEqualNullable<T, K, VT> | RuleNumberNonNullable<T, K, VT> | RuleIn<T, K, VT> | RuleBetween<T, K, VT>;
|
|
157
|
+
/**
|
|
158
|
+
* stringArray
|
|
159
|
+
*/
|
|
160
|
+
export type StringArrayRules<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> = RuleIn<T, K, VT>;
|
|
161
|
+
/**
|
|
162
|
+
* numberArray
|
|
163
|
+
*/
|
|
164
|
+
export type NumberArrayRules<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> = RuleIn<T, K, VT>;
|
|
165
|
+
/**
|
|
166
|
+
* keyValue
|
|
167
|
+
*/
|
|
168
|
+
export type KeyValueRules<T, K extends StringKey<T> = StringKey<T>, VT = T[K]> = RuleJSONSimple<T, K, VT>;
|
|
99
169
|
export {};
|
|
100
170
|
//# sourceMappingURL=query.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.interface.d.ts","sourceRoot":"","sources":["../../src/repository/query.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"query.interface.d.ts","sourceRoot":"","sources":["../../src/repository/query.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ interface RuleEqualNullable<K, VT> {
|
|
|
12
12
|
*/
|
|
13
13
|
interface RuleStringNonNullable<K, VT> {
|
|
14
14
|
field: K;
|
|
15
|
-
operator: '<' | '>' | '<=' | '>=' | 'contains' | '
|
|
15
|
+
operator: '<' | '>' | '<=' | '>=' | 'contains' | 'notContains' | 'startsWith' | 'notStartsWith' | 'endsWith' | 'notEndsWith';
|
|
16
16
|
value: SetNonNullable<VT>;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
@@ -59,5 +59,24 @@ export type RelationBooleanRules<K, VT> = RuleEqualNullable<K, VT>;
|
|
|
59
59
|
* Date
|
|
60
60
|
*/
|
|
61
61
|
export type RelationDateRules<K, VT> = RuleEqualNullable<K, VT> | RuleNumberNonNullable<K, VT> | RuleIn<K, VT> | RuleBetween<K, VT>;
|
|
62
|
+
/**
|
|
63
|
+
* EXISTS / NOT EXISTS
|
|
64
|
+
* 用于查询关系字段是否存在满足条件的关联实体
|
|
65
|
+
* @example
|
|
66
|
+
* // 查询有子菜单的菜单
|
|
67
|
+
* { field: 'children', operator: 'exists' }
|
|
68
|
+
* // 查询有激活状态子菜单的菜单
|
|
69
|
+
* { field: 'children', operator: 'exists', where: { rules: [{ field: 'active', operator: '=', value: true }] } }
|
|
70
|
+
*/
|
|
71
|
+
interface RuleExists<K extends string, SubRG> {
|
|
72
|
+
field: K;
|
|
73
|
+
operator: 'exists' | 'notExists';
|
|
74
|
+
where?: SubRG;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Relation EXISTS Rules
|
|
78
|
+
* SubRG 类型参数应为关联实体的 RuleGroup 类型
|
|
79
|
+
*/
|
|
80
|
+
export type RelationExistsRules<K extends string, SubRG> = RuleExists<K, SubRG>;
|
|
62
81
|
export {};
|
|
63
82
|
//# sourceMappingURL=relation-query.interface.d.ts.map
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"relation-query.interface.d.ts","sourceRoot":"","sources":["../../src/repository/relation-query.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,43 +1,18 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
1
|
import { EntityStaticType, EntityType } from '../entity/entity.interface.js';
|
|
3
|
-
import { CountOptions, FindAllOptions, FindOneOptions, FindOneOrFailOptions, FindOptions } from './query-options.interface.js';
|
|
4
2
|
/**
|
|
5
3
|
* 数据仓库管理接口
|
|
6
4
|
*/
|
|
7
5
|
export interface IRepository<T extends EntityType> {
|
|
8
|
-
/**
|
|
9
|
-
* 根据 id 获取实体
|
|
10
|
-
* @param id
|
|
11
|
-
*/
|
|
12
|
-
get(id: EntityStaticType<T, 'idType'>): Observable<InstanceType<T>>;
|
|
13
|
-
/**
|
|
14
|
-
* 查找一个实体
|
|
15
|
-
* @param options
|
|
16
|
-
*/
|
|
17
|
-
findOne(options: FindOneOptions<T>): Observable<InstanceType<T> | undefined>;
|
|
18
|
-
/**
|
|
19
|
-
* 查找一个实体,查不到就抛出错误
|
|
20
|
-
* @param options
|
|
21
|
-
*/
|
|
22
|
-
findOneOrFail(options: FindOneOrFailOptions<T>): Observable<InstanceType<T>>;
|
|
23
6
|
/**
|
|
24
7
|
* 查询多个实体
|
|
25
|
-
* @param
|
|
26
|
-
* @param options
|
|
27
|
-
*/
|
|
28
|
-
find(options: FindOptions<T>): Observable<InstanceType<T>[]>;
|
|
29
|
-
/**
|
|
30
|
-
* 查询所有实体
|
|
31
|
-
* @param where
|
|
32
|
-
* @param options
|
|
8
|
+
* @param options 查询选项
|
|
33
9
|
*/
|
|
34
|
-
|
|
10
|
+
find(options: EntityStaticType<T, 'findOptions'>): Promise<InstanceType<T>[]>;
|
|
35
11
|
/**
|
|
36
12
|
* 查询实体数量
|
|
37
|
-
* @param
|
|
38
|
-
* @param options
|
|
13
|
+
* @param options 查询选项
|
|
39
14
|
*/
|
|
40
|
-
count(options
|
|
15
|
+
count(options: EntityStaticType<T, 'countOptions'>): Promise<number>;
|
|
41
16
|
/**
|
|
42
17
|
* 创建实体
|
|
43
18
|
* @param entity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.interface.d.ts","sourceRoot":"","sources":["../../src/repository/repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"repository.interface.d.ts","sourceRoot":"","sources":["../../src/repository/repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,UAAU;IAC/C;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE9E;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAErE;;;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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
1
|
import { EntityStaticType, EntityType } from '../entity/entity.interface.js';
|
|
3
2
|
import { RuleGroup } from './query.interface.js';
|
|
4
3
|
import { IRepository } from './repository.interface.js';
|
|
@@ -7,30 +6,29 @@ import { IRepository } from './repository.interface.js';
|
|
|
7
6
|
*/
|
|
8
7
|
export interface FindTreeOptions<T extends EntityType = any, WhereType = RuleGroup<InstanceType<T>>> {
|
|
9
8
|
/**
|
|
10
|
-
*
|
|
9
|
+
* 查询的根实体 ID
|
|
11
10
|
*/
|
|
12
|
-
|
|
11
|
+
entityId?: EntityStaticType<T, 'idType'> | null;
|
|
13
12
|
/**
|
|
14
13
|
* 查询条件
|
|
15
14
|
*/
|
|
16
15
|
where?: WhereType;
|
|
17
16
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* 树结构查询配置
|
|
25
|
-
*/
|
|
26
|
-
export interface FindTreeRootOptions<T extends EntityType = any, WhereType = RuleGroup<InstanceType<T>>> {
|
|
27
|
-
/**
|
|
28
|
-
* 查询条件
|
|
29
|
-
*/
|
|
30
|
-
where?: WhereType;
|
|
31
|
-
/**
|
|
32
|
-
* 查询级别
|
|
17
|
+
* 查询级别(包含当前节点)
|
|
18
|
+
* - 0: 当前节点 1,parentId 为 null 是查询所有根节点,2,parentId=xxx 时只有当前节点
|
|
19
|
+
* - 1: 当前节点 + 直接子节点(1 层深度)
|
|
20
|
+
* - 2: 当前节点 + 子节点 + 孙子节点(2 层深度)
|
|
21
|
+
* - n: 查询到第 n 层深度
|
|
33
22
|
* @default 0
|
|
23
|
+
* Maximum: 100
|
|
24
|
+
*
|
|
25
|
+
* 注意:层级数包含当前节点本身
|
|
26
|
+
* 例如 level=1 会返回:当前节点 + 其直接子节点
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* - 当 level 未提供时,默认 0
|
|
30
|
+
* - 当 level < 0 时,会被规范化为 0
|
|
31
|
+
* - 当 level > 100 时,会被限制为 100
|
|
34
32
|
*/
|
|
35
33
|
level?: number;
|
|
36
34
|
}
|
|
@@ -38,29 +36,35 @@ export interface FindTreeRootOptions<T extends EntityType = any, WhereType = Rul
|
|
|
38
36
|
* 树结构仓库接口
|
|
39
37
|
*/
|
|
40
38
|
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
39
|
/**
|
|
50
40
|
* 查询子孙实体
|
|
41
|
+
*
|
|
42
|
+
* @remarks
|
|
43
|
+
* - 指定 entityId 时:包含当前节点 + 子孙节点
|
|
44
|
+
* - 不指定 entityId 时:返回所有根节点及其子孙
|
|
51
45
|
*/
|
|
52
|
-
findDescendants(options: FindTreeOptions<T>):
|
|
46
|
+
findDescendants(options: FindTreeOptions<T>): Promise<InstanceType<T>[]>;
|
|
53
47
|
/**
|
|
54
48
|
* 查询子孙实体数量
|
|
49
|
+
*
|
|
50
|
+
* @remarks
|
|
51
|
+
* - 指定 entityId 时:**不包含当前节点**,只统计后代数量
|
|
52
|
+
* - 不指定 entityId 时:统计所有根节点及其后代的总数
|
|
55
53
|
*/
|
|
56
|
-
countDescendants(options: FindTreeOptions<T>):
|
|
54
|
+
countDescendants(options: FindTreeOptions<T>): Promise<number>;
|
|
57
55
|
/**
|
|
58
56
|
* 查询祖先节点
|
|
57
|
+
*
|
|
58
|
+
* @remarks
|
|
59
|
+
* 指定 entityId 时:包含当前节点 + 祖先节点
|
|
59
60
|
*/
|
|
60
|
-
findAncestors(options: FindTreeOptions<T>):
|
|
61
|
+
findAncestors(options: FindTreeOptions<T>): Promise<InstanceType<T>[]>;
|
|
61
62
|
/**
|
|
62
63
|
* 查询祖先节点数量
|
|
64
|
+
*
|
|
65
|
+
* @remarks
|
|
66
|
+
* 指定 entityId 时:**不包含当前节点**,只统计祖先数量
|
|
63
67
|
*/
|
|
64
|
-
countAncestors(options: FindTreeOptions<T>):
|
|
68
|
+
countAncestors(options: FindTreeOptions<T>): Promise<number>;
|
|
65
69
|
}
|
|
66
70
|
//# sourceMappingURL=tree-repository.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-repository.interface.d.ts","sourceRoot":"","sources":["../../src/repository/tree-repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tree-repository.interface.d.ts","sourceRoot":"","sources":["../../src/repository/tree-repository.interface.ts"],"names":[],"mappings":"AAAA,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,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IAEhD;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC3E;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEzE;;;;;;OAMG;IACH,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/D;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEvE;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D"}
|