@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"many_to_many_entity.d.ts","sourceRoot":"","sources":["../../src/entity/many_to_many_entity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,qBAAqB,EACrB,gCAAgC,EAGjC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,QAAQ,EAAE,gCAAgC,CAAC;CAC5C;AAED;;;;;;;;;;GAUG;AACH;;;;;GAKG;yBACa,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,KAAG,qBAAqB;AAAzF,wBAkDE"}
|
package/dist/entity/{entity-metadata-options.interface.d.ts → metadata-options.interface.d.ts}
RENAMED
|
@@ -4,7 +4,7 @@ import { EntityType, UUID } from './entity.interface.js';
|
|
|
4
4
|
* 值对象
|
|
5
5
|
* 存储键值队列
|
|
6
6
|
*/
|
|
7
|
-
export type
|
|
7
|
+
export type KeyValue = Record<string, number | Date | string | boolean>;
|
|
8
8
|
/**
|
|
9
9
|
* 实体字段基础值对象接口
|
|
10
10
|
* 定义实体属性的基本特性
|
|
@@ -89,8 +89,9 @@ export declare enum PropertyType {
|
|
|
89
89
|
numberArray = "numberArray",
|
|
90
90
|
/**
|
|
91
91
|
* 值对象
|
|
92
|
+
* 只存 key -> value 的键值对, 不支持嵌套, 不支持数组
|
|
92
93
|
*/
|
|
93
|
-
|
|
94
|
+
keyValue = "keyValue",
|
|
94
95
|
/**
|
|
95
96
|
* json
|
|
96
97
|
*/
|
|
@@ -112,6 +113,135 @@ export declare enum RelationKind {
|
|
|
112
113
|
MANY_TO_ONE = "m:1",
|
|
113
114
|
MANY_TO_MANY = "m:n"
|
|
114
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* 外键约束操作枚举
|
|
118
|
+
* 定义 SQLite 外键约束的级联行为
|
|
119
|
+
*
|
|
120
|
+
* SQLite 支持在外键定义时指定 ON DELETE 和 ON UPDATE 的行为
|
|
121
|
+
* 这些约束在数据库层面自动执行,无需应用层干预
|
|
122
|
+
*
|
|
123
|
+
* @see https://www.sqlite.org/foreignkeys.html
|
|
124
|
+
*/
|
|
125
|
+
export declare enum OnDeleteAction {
|
|
126
|
+
/**
|
|
127
|
+
* 不执行任何操作(默认)
|
|
128
|
+
* 当父表记录被删除时,不对子表记录做任何处理
|
|
129
|
+
* 如果存在引用,删除操作会失败(违反外键约束)
|
|
130
|
+
* @default
|
|
131
|
+
*/
|
|
132
|
+
NO_ACTION = "NO ACTION",
|
|
133
|
+
/**
|
|
134
|
+
* 限制删除
|
|
135
|
+
* 如果存在子表引用,则阻止删除父表记录
|
|
136
|
+
* 行为与 NO ACTION 类似,但检查时机更早
|
|
137
|
+
*/
|
|
138
|
+
RESTRICT = "RESTRICT",
|
|
139
|
+
/**
|
|
140
|
+
* 级联删除
|
|
141
|
+
* 删除父表记录时,自动删除所有引用该记录的子表记录
|
|
142
|
+
* @example 删除用户时自动删除其所有订单
|
|
143
|
+
* **Warning:** 谨慎使用,可能导致大量数据被删除
|
|
144
|
+
*/
|
|
145
|
+
CASCADE = "CASCADE",
|
|
146
|
+
/**
|
|
147
|
+
* 设置为 NULL
|
|
148
|
+
* 删除父表记录时,将子表中的外键字段设置为 NULL
|
|
149
|
+
* @example 删除分类时,将产品的 category_id 设为 NULL
|
|
150
|
+
* **Requires:** 外键字段必须允许 NULL 值
|
|
151
|
+
*/
|
|
152
|
+
SET_NULL = "SET NULL",
|
|
153
|
+
/**
|
|
154
|
+
* 设置为默认值
|
|
155
|
+
* 删除父表记录时,将子表中的外键字段设置为其默认值
|
|
156
|
+
* @example 删除部门时,将员工的 department_id 设为默认部门
|
|
157
|
+
* **Requires:** 外键字段必须定义 DEFAULT 值
|
|
158
|
+
*/
|
|
159
|
+
SET_DEFAULT = "SET DEFAULT"
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* 外键更新行为枚举
|
|
163
|
+
* 定义当父表主键被更新时的级联行为
|
|
164
|
+
*
|
|
165
|
+
* 在 SQLite 中,通常不建议更新主键值
|
|
166
|
+
* 大多数情况下使用 NO ACTION 或 RESTRICT
|
|
167
|
+
*/
|
|
168
|
+
export declare enum OnUpdateAction {
|
|
169
|
+
/**
|
|
170
|
+
* 不执行任何操作(默认)
|
|
171
|
+
* 当父表主键被更新时,不对子表外键做任何处理
|
|
172
|
+
* 如果存在引用,更新操作会失败(违反外键约束)
|
|
173
|
+
* @default
|
|
174
|
+
*/
|
|
175
|
+
NO_ACTION = "NO ACTION",
|
|
176
|
+
/**
|
|
177
|
+
* 限制更新
|
|
178
|
+
* 如果存在子表引用,则阻止更新父表主键
|
|
179
|
+
*/
|
|
180
|
+
RESTRICT = "RESTRICT",
|
|
181
|
+
/**
|
|
182
|
+
* 级联更新
|
|
183
|
+
* 更新父表主键时,自动更新所有子表中的对应外键值
|
|
184
|
+
* @example 更新用户ID时,自动更新所有订单的 user_id
|
|
185
|
+
* **Warning:** 性能开销较大,不推荐频繁使用
|
|
186
|
+
*/
|
|
187
|
+
CASCADE = "CASCADE",
|
|
188
|
+
/**
|
|
189
|
+
* 设置为 NULL
|
|
190
|
+
* 更新父表主键时,将子表中的外键字段设置为 NULL
|
|
191
|
+
* **Requires:** 外键字段必须允许 NULL 值
|
|
192
|
+
*/
|
|
193
|
+
SET_NULL = "SET NULL",
|
|
194
|
+
/**
|
|
195
|
+
* 设置为默认值
|
|
196
|
+
* 更新父表主键时,将子表中的外键字段设置为其默认值
|
|
197
|
+
* **Requires:** 外键字段必须定义 DEFAULT 值
|
|
198
|
+
*/
|
|
199
|
+
SET_DEFAULT = "SET DEFAULT"
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* 外键级联选项接口
|
|
203
|
+
* 定义关系的外键约束配置
|
|
204
|
+
*
|
|
205
|
+
* SQLite 外键约束是在数据库层面自动执行的
|
|
206
|
+
* 当父表记录发生变化时,数据库会根据配置自动处理子表记录
|
|
207
|
+
*/
|
|
208
|
+
export interface ICascadeOptions {
|
|
209
|
+
/**
|
|
210
|
+
* 删除时的级联行为
|
|
211
|
+
* 定义删除父表记录时如何处理子表的外键
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```typescript
|
|
215
|
+
* // 删除用户时级联删除订单
|
|
216
|
+
* onDelete: OnDeleteAction.CASCADE
|
|
217
|
+
*
|
|
218
|
+
* // 删除分类时将产品的分类ID设为NULL
|
|
219
|
+
* onDelete: OnDeleteAction.SET_NULL
|
|
220
|
+
*
|
|
221
|
+
* // 如果有订单则不允许删除用户
|
|
222
|
+
* onDelete: OnDeleteAction.RESTRICT
|
|
223
|
+
* ```
|
|
224
|
+
*
|
|
225
|
+
* @default 根据关系类型自动推断
|
|
226
|
+
*/
|
|
227
|
+
onDelete?: OnDeleteAction | `${OnDeleteAction.CASCADE}` | `${OnDeleteAction.NO_ACTION}` | `${OnDeleteAction.RESTRICT}` | `${OnDeleteAction.SET_DEFAULT}` | `${OnDeleteAction.SET_NULL}`;
|
|
228
|
+
/**
|
|
229
|
+
* 更新时的级联行为
|
|
230
|
+
* 定义更新父表主键时如何处理子表的外键
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* ```typescript
|
|
234
|
+
* // 更新用户ID时级联更新订单的user_id
|
|
235
|
+
* onUpdate: OnUpdateAction.CASCADE
|
|
236
|
+
*
|
|
237
|
+
* // 不允许更新主键(推荐)
|
|
238
|
+
* onUpdate: OnUpdateAction.RESTRICT
|
|
239
|
+
* ```
|
|
240
|
+
*
|
|
241
|
+
* @default OnUpdateAction.RESTRICT(推荐不更新主键)
|
|
242
|
+
*/
|
|
243
|
+
onUpdate?: OnUpdateAction | `${OnUpdateAction.CASCADE}` | `${OnUpdateAction.NO_ACTION}` | `${OnUpdateAction.RESTRICT}` | `${OnUpdateAction.SET_DEFAULT}` | `${OnUpdateAction.SET_NULL}`;
|
|
244
|
+
}
|
|
115
245
|
/**
|
|
116
246
|
* 标量类型
|
|
117
247
|
* 定义可以直接存储的基本数据类型
|
|
@@ -121,7 +251,7 @@ export type RxDBScalar = boolean | number | string | bigint | Date | Uint8Array;
|
|
|
121
251
|
* 实体关系基础类型接口
|
|
122
252
|
* 所有关系类型的基础接口
|
|
123
253
|
*/
|
|
124
|
-
interface EntityRelationMetadataBase extends ISortable {
|
|
254
|
+
interface EntityRelationMetadataBase extends ISortable, ICascadeOptions {
|
|
125
255
|
/**
|
|
126
256
|
* 名字
|
|
127
257
|
*/
|
|
@@ -136,7 +266,11 @@ interface EntityRelationMetadataBase extends ISortable {
|
|
|
136
266
|
*/
|
|
137
267
|
kind: RelationKind;
|
|
138
268
|
/**
|
|
139
|
-
*
|
|
269
|
+
* 关联的实体的命名空间
|
|
270
|
+
* 只能包含小写的英文字母
|
|
271
|
+
* 在 postgres 里会变成 schema
|
|
272
|
+
* 在 sqlite 会变成 table 的前缀
|
|
273
|
+
* @example "app", "system"
|
|
140
274
|
* @default "public"
|
|
141
275
|
*/
|
|
142
276
|
mappedNamespace?: Lowercase<string>;
|
|
@@ -148,13 +282,49 @@ interface EntityRelationMetadataBase extends ISortable {
|
|
|
148
282
|
/**
|
|
149
283
|
* 一对一关系元数据接口
|
|
150
284
|
* 定义两个实体之间的一对一关系
|
|
285
|
+
*
|
|
286
|
+
* ## 默认级联行为
|
|
287
|
+
* - onDelete: CASCADE - 删除父实体时级联删除子实体
|
|
288
|
+
* - onUpdate: RESTRICT - 不允许更新主键
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```typescript
|
|
292
|
+
* @Relation({
|
|
293
|
+
* name: 'profile',
|
|
294
|
+
* kind: RelationKind.ONE_TO_ONE,
|
|
295
|
+
* mappedEntity: 'Profile',
|
|
296
|
+
* nullable: false
|
|
297
|
+
* // onDelete 默认为 CASCADE
|
|
298
|
+
* // onUpdate 默认为 RESTRICT
|
|
299
|
+
* })
|
|
300
|
+
* profile!: Profile;
|
|
301
|
+
* ```
|
|
151
302
|
*/
|
|
152
303
|
interface EntityRelationOneToOneMetadataOptions extends EntityRelationMetadataBase, IEntityObject {
|
|
153
304
|
kind: RelationKind.ONE_TO_ONE;
|
|
305
|
+
default?: UUID | number | string | (() => UUID | number | string);
|
|
306
|
+
readonly?: boolean;
|
|
154
307
|
}
|
|
155
308
|
/**
|
|
156
309
|
* 一对多关系元数据接口
|
|
157
310
|
* 定义一个实体与多个实体之间的关系
|
|
311
|
+
*
|
|
312
|
+
* ## 默认级联行为
|
|
313
|
+
* - onDelete: CASCADE - 删除父实体时级联删除所有子实体
|
|
314
|
+
* - onUpdate: RESTRICT - 不允许更新主键
|
|
315
|
+
*
|
|
316
|
+
* @example
|
|
317
|
+
* ```typescript
|
|
318
|
+
* @Relation({
|
|
319
|
+
* name: 'items',
|
|
320
|
+
* kind: RelationKind.ONE_TO_MANY,
|
|
321
|
+
* mappedEntity: 'OrderItem',
|
|
322
|
+
* mappedProperty: 'order'
|
|
323
|
+
* // onDelete 默认为 CASCADE(删除订单时删除所有订单项)
|
|
324
|
+
* // onUpdate 默认为 RESTRICT
|
|
325
|
+
* })
|
|
326
|
+
* items!: OrderItem[];
|
|
327
|
+
* ```
|
|
158
328
|
*/
|
|
159
329
|
interface EntityRelationOneToManyMetadataOptions extends EntityRelationMetadataBase {
|
|
160
330
|
kind: RelationKind.ONE_TO_MANY;
|
|
@@ -166,9 +336,44 @@ interface EntityRelationOneToManyMetadataOptions extends EntityRelationMetadataB
|
|
|
166
336
|
/**
|
|
167
337
|
* 多对一关系元数据接口
|
|
168
338
|
* 定义多个实体与一个实体之间的关系
|
|
339
|
+
*
|
|
340
|
+
* ## 默认级联行为
|
|
341
|
+
* - nullable: false 时
|
|
342
|
+
* - onDelete: RESTRICT - 阻止删除父实体(保护数据完整性)
|
|
343
|
+
* - onUpdate: RESTRICT - 不允许更新主键
|
|
344
|
+
* - nullable: true 时
|
|
345
|
+
* - onDelete: SET_NULL - 删除父实体时将外键设为NULL
|
|
346
|
+
* - onUpdate: RESTRICT - 不允许更新主键
|
|
347
|
+
*
|
|
348
|
+
* @example
|
|
349
|
+
* ```typescript
|
|
350
|
+
* // nullable: false(默认)
|
|
351
|
+
* @Relation({
|
|
352
|
+
* name: 'order',
|
|
353
|
+
* kind: RelationKind.MANY_TO_ONE,
|
|
354
|
+
* mappedEntity: 'Order',
|
|
355
|
+
* nullable: false
|
|
356
|
+
* // onDelete 默认为 RESTRICT(订单有订单项时不允许删除)
|
|
357
|
+
* // onUpdate 默认为 RESTRICT
|
|
358
|
+
* })
|
|
359
|
+
* order!: Order;
|
|
360
|
+
*
|
|
361
|
+
* // nullable: true
|
|
362
|
+
* @Relation({
|
|
363
|
+
* name: 'category',
|
|
364
|
+
* kind: RelationKind.MANY_TO_ONE,
|
|
365
|
+
* mappedEntity: 'Category',
|
|
366
|
+
* nullable: true
|
|
367
|
+
* // onDelete 默认为 SET_NULL(删除分类时产品保留但分类ID设为NULL)
|
|
368
|
+
* // onUpdate 默认为 RESTRICT
|
|
369
|
+
* })
|
|
370
|
+
* category?: Category;
|
|
371
|
+
* ```
|
|
169
372
|
*/
|
|
170
373
|
interface EntityRelationManyToOneMetadataOptions extends EntityRelationMetadataBase, IEntityObject {
|
|
171
374
|
kind: RelationKind.MANY_TO_ONE;
|
|
375
|
+
default?: UUID | number | string | (() => UUID | number | string);
|
|
376
|
+
readonly?: boolean;
|
|
172
377
|
}
|
|
173
378
|
/**
|
|
174
379
|
* 多对多关系元数据接口
|
|
@@ -177,6 +382,24 @@ interface EntityRelationManyToOneMetadataOptions extends EntityRelationMetadataB
|
|
|
177
382
|
* 多对多关系允许一个实体的多个实例关联到另一个实体的多个实例。
|
|
178
383
|
* 例如:学生和课程的关系,一个学生可以选多门课程,一门课程可以有多个学生。
|
|
179
384
|
* 这种关系需要一个中间表来存储两个实体之间的关联关系。
|
|
385
|
+
*
|
|
386
|
+
* ## 默认级联行为
|
|
387
|
+
* - onDelete: RESTRICT - 阻止删除(需要手动处理中间表)
|
|
388
|
+
* - onUpdate: RESTRICT - 不允许更新主键
|
|
389
|
+
*
|
|
390
|
+
* @example
|
|
391
|
+
* ```typescript
|
|
392
|
+
* @Relation({
|
|
393
|
+
* name: 'courses',
|
|
394
|
+
* kind: RelationKind.MANY_TO_MANY,
|
|
395
|
+
* mappedEntity: 'Course',
|
|
396
|
+
* mappedProperty: 'students',
|
|
397
|
+
* junctionEntityType: StudentCourse
|
|
398
|
+
* // onDelete 默认为 RESTRICT(删除学生前需要先删除选课记录)
|
|
399
|
+
* // onUpdate 默认为 RESTRICT
|
|
400
|
+
* })
|
|
401
|
+
* courses!: Course[];
|
|
402
|
+
* ```
|
|
180
403
|
*/
|
|
181
404
|
interface EntityRelationManyToManyMetadataOptions extends EntityRelationMetadataBase {
|
|
182
405
|
kind: RelationKind.MANY_TO_MANY;
|
|
@@ -204,56 +427,68 @@ export type EntityRelationOneToManyMetadata = SetRequired<EntityRelationOneToMan
|
|
|
204
427
|
export type EntityRelationManyToOneMetadata = SetRequired<EntityRelationManyToOneMetadataOptions, 'mappedNamespace'>;
|
|
205
428
|
export type EntityRelationManyToManyMetadata = SetRequired<EntityRelationManyToManyMetadataOptions, 'mappedNamespace' | 'junctionEntityType'>;
|
|
206
429
|
export type EntityRelationMetadata = EntityRelationOneToOneMetadata | EntityRelationOneToManyMetadata | EntityRelationManyToOneMetadata | EntityRelationManyToManyMetadata;
|
|
207
|
-
interface
|
|
430
|
+
export interface UUIDProperty extends IEntityObject, ISortable {
|
|
208
431
|
primary?: boolean;
|
|
209
432
|
type: PropertyType.uuid | `${PropertyType.uuid}`;
|
|
210
433
|
default?: UUID | (() => UUID);
|
|
211
434
|
}
|
|
212
|
-
interface
|
|
435
|
+
export interface StringProperty extends IEntityObject, ISortable {
|
|
213
436
|
primary?: boolean;
|
|
214
437
|
type: PropertyType.string | `${PropertyType.string}`;
|
|
215
438
|
default?: string | (() => string);
|
|
216
439
|
}
|
|
217
|
-
interface
|
|
218
|
-
type: PropertyType.stringArray | `${PropertyType.stringArray}`;
|
|
219
|
-
default?: string[] | (() => string[]);
|
|
220
|
-
}
|
|
221
|
-
interface Number_type extends IEntityObject, ISortable {
|
|
222
|
-
type: PropertyType.number | `${PropertyType.number}`;
|
|
223
|
-
default?: number | (() => number);
|
|
224
|
-
}
|
|
225
|
-
interface NumberArray_type extends IEntityObject, ISortable {
|
|
440
|
+
export interface NumberArrayProperty extends IEntityObject, ISortable {
|
|
226
441
|
type: PropertyType.numberArray | `${PropertyType.numberArray}`;
|
|
227
442
|
default?: number[] | (() => number[]);
|
|
228
443
|
}
|
|
229
|
-
interface
|
|
444
|
+
export interface IntegerProperty extends IEntityObject, ISortable {
|
|
230
445
|
primary?: boolean;
|
|
231
446
|
type: PropertyType.integer | `${PropertyType.integer}`;
|
|
232
447
|
default?: number | (() => number);
|
|
233
448
|
}
|
|
234
|
-
interface
|
|
449
|
+
export interface DateProperty extends IEntityObject, ISortable {
|
|
235
450
|
type: PropertyType.date | `${PropertyType.date}`;
|
|
236
451
|
default?: Date | (() => Date) | 'CURRENT_TIMESTAMP';
|
|
237
452
|
}
|
|
238
|
-
interface
|
|
453
|
+
export interface BooleanProperty extends IEntityObject, ISortable {
|
|
239
454
|
type: PropertyType.boolean | `${PropertyType.boolean}`;
|
|
240
455
|
default?: boolean | (() => boolean);
|
|
241
456
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
457
|
+
/**
|
|
458
|
+
* 字符串组
|
|
459
|
+
*/
|
|
460
|
+
export interface StringArrayProperty extends IEntityObject, ISortable {
|
|
461
|
+
type: PropertyType.stringArray | `${PropertyType.stringArray}`;
|
|
462
|
+
default?: string[] | (() => string[]);
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* 数字组
|
|
466
|
+
*/
|
|
467
|
+
export interface NumberProperty extends IEntityObject, ISortable {
|
|
468
|
+
type: PropertyType.number | `${PropertyType.number}`;
|
|
469
|
+
default?: number | (() => number);
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* keyValue
|
|
473
|
+
*/
|
|
474
|
+
export interface KeyValueProperty extends IEntityObject {
|
|
475
|
+
type: PropertyType.keyValue | `${PropertyType.keyValue}`;
|
|
476
|
+
default?: KeyValue | (() => KeyValue);
|
|
245
477
|
properties: KeyValuePropertyMetadataOptions[];
|
|
246
478
|
}
|
|
247
|
-
|
|
479
|
+
/**
|
|
480
|
+
* json
|
|
481
|
+
*/
|
|
482
|
+
export interface JSONProperty extends IEntityObject {
|
|
248
483
|
type: PropertyType.json | `${PropertyType.json}`;
|
|
249
484
|
default?: Record<string, any> | (() => Record<string, any>);
|
|
250
485
|
}
|
|
251
|
-
export type KeyValuePropertyMetadataOptions =
|
|
486
|
+
export type KeyValuePropertyMetadataOptions = StringProperty | NumberProperty | IntegerProperty | DateProperty | BooleanProperty;
|
|
252
487
|
/**
|
|
253
488
|
* 实体属性元数据联合类型
|
|
254
489
|
* 包含所有可能的属性类型元数据
|
|
255
490
|
*/
|
|
256
|
-
export type EntityPropertyMetadataOptions =
|
|
491
|
+
export type EntityPropertyMetadataOptions = UUIDProperty | StringProperty | NumberProperty | IntegerProperty | DateProperty | BooleanProperty | StringArrayProperty | NumberArrayProperty | KeyValueProperty | JSONProperty;
|
|
257
492
|
export type EntityPropertyMetadata = EntityPropertyMetadataOptions;
|
|
258
493
|
/**
|
|
259
494
|
* 实体索引元数据接口
|
|
@@ -264,7 +499,7 @@ export interface EntityIndexMetadataOptions extends IEntityObject {
|
|
|
264
499
|
}
|
|
265
500
|
/**
|
|
266
501
|
* 实体定义元数据选项接口
|
|
267
|
-
* 用于配置
|
|
502
|
+
* 用于配置 `@Entity` 装饰器的完整选项,定义实体的结构和行为
|
|
268
503
|
*
|
|
269
504
|
* 这个接口是实体定义的核心,包含了实体的所有配置信息:
|
|
270
505
|
* - 基本信息:名称、命名空间、显示名称
|
|
@@ -336,6 +571,30 @@ export interface EntityMetadataOptions {
|
|
|
336
571
|
* 自己定义的属性,不包括继承的
|
|
337
572
|
*/
|
|
338
573
|
properties?: EntityPropertyMetadataOptions[];
|
|
574
|
+
/**
|
|
575
|
+
* 计算属性
|
|
576
|
+
* 动态计算的只读属性,不存储在数据库中
|
|
577
|
+
*
|
|
578
|
+
* ## 使用条件
|
|
579
|
+
* - 必须在 `features` 中启用对应功能(如 `tree:{ hasChildren: true }`)
|
|
580
|
+
* - 仅在实体上可读,不可修改
|
|
581
|
+
*
|
|
582
|
+
* ## 计算来源
|
|
583
|
+
* 1. **数据库查询**:例如树结构的 `hasChildren` 属性
|
|
584
|
+
* 2. **类方法**:通过 getter 方法计算,如 `fullName = firstName + lastName`
|
|
585
|
+
* 3. **复杂逻辑**:基于业务规则动态生成(待实现)
|
|
586
|
+
*
|
|
587
|
+
* @example
|
|
588
|
+
* ```typescript
|
|
589
|
+
* // 树结构中的计算属性
|
|
590
|
+
* computedProperties: [
|
|
591
|
+
* { name: 'hasChildren', type: PropertyType.boolean }
|
|
592
|
+
* ]
|
|
593
|
+
* ```
|
|
594
|
+
*
|
|
595
|
+
* **Note:** 当前仅在树结构(`tree` feature)中使用
|
|
596
|
+
*/
|
|
597
|
+
computedProperties?: EntityPropertyMetadataOptions[];
|
|
339
598
|
/**
|
|
340
599
|
* 实体的关系配置
|
|
341
600
|
* 自己定义的关系,不包括继承的
|
|
@@ -361,13 +620,13 @@ export interface EntityMetadataOptions {
|
|
|
361
620
|
}
|
|
362
621
|
type TreeType = 'adjacency-list';
|
|
363
622
|
/**
|
|
364
|
-
*
|
|
623
|
+
* 实体元数据树形结构特性接口
|
|
365
624
|
*/
|
|
366
|
-
export interface
|
|
625
|
+
export interface EntityMetadataTreeFeatures {
|
|
367
626
|
/**
|
|
368
627
|
* 树形结构类型
|
|
369
628
|
*
|
|
370
|
-
*
|
|
629
|
+
* 目前仅支持 adjacency-list (邻接表模型),未来可能支持其他模型:
|
|
371
630
|
* - 'closure-table': 闭包表模型
|
|
372
631
|
* - 'nested-set': 嵌套集模型
|
|
373
632
|
* - 'materialized-path': 物化路径模型
|
|
@@ -375,8 +634,26 @@ export interface EntityMetadataFeatures {
|
|
|
375
634
|
* 参考资料:
|
|
376
635
|
* - https://www.slideshare.net/slideshow/models-for-hierarchical-data/4179181
|
|
377
636
|
* - https://schinckel.net/2014/09/13/long-live-adjacency-lists/
|
|
637
|
+
*
|
|
638
|
+
* @default 'adjacency-list'
|
|
639
|
+
*/
|
|
640
|
+
type?: TreeType;
|
|
641
|
+
/**
|
|
642
|
+
* 是否有子节点
|
|
643
|
+
* 在树结构里使用,表示当前节点是否有子节点
|
|
644
|
+
* @default false
|
|
645
|
+
*/
|
|
646
|
+
hasChildren?: boolean;
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* EntityMetadata 扩展特性
|
|
650
|
+
*/
|
|
651
|
+
export interface EntityMetadataFeatures {
|
|
652
|
+
[name: string]: any;
|
|
653
|
+
/**
|
|
654
|
+
* 树形结构特性
|
|
378
655
|
*/
|
|
379
|
-
|
|
656
|
+
tree?: EntityMetadataTreeFeatures;
|
|
380
657
|
}
|
|
381
658
|
/**
|
|
382
659
|
* 同步适配器选项接口
|
|
@@ -389,10 +666,10 @@ export interface SyncAdapterOptions {
|
|
|
389
666
|
* 同步类型枚举
|
|
390
667
|
* 定义不同的数据同步策略,控制本地数据和远程数据之间的同步方式
|
|
391
668
|
*
|
|
392
|
-
*
|
|
393
|
-
* - Full
|
|
394
|
-
* - Filter
|
|
395
|
-
* -
|
|
669
|
+
* 支持三种同步策略:
|
|
670
|
+
* - Full: 全量同步,同步所有数据
|
|
671
|
+
* - Filter: 条件同步,根据过滤条件同步部分数据
|
|
672
|
+
* - none: 不同步,可以配置为只使用本地数据或只使用远程数据
|
|
396
673
|
*/
|
|
397
674
|
export declare enum SyncType {
|
|
398
675
|
/**
|
|
@@ -406,7 +683,7 @@ export declare enum SyncType {
|
|
|
406
683
|
/**
|
|
407
684
|
* 不同步
|
|
408
685
|
*/
|
|
409
|
-
None = "
|
|
686
|
+
None = "none"
|
|
410
687
|
}
|
|
411
688
|
/**
|
|
412
689
|
* 全量同步配置接口
|
|
@@ -450,4 +727,4 @@ interface Local {
|
|
|
450
727
|
*/
|
|
451
728
|
export type SyncOptions = SyncFull | SyncFilter | Remote | Local;
|
|
452
729
|
export {};
|
|
453
|
-
//# sourceMappingURL=
|
|
730
|
+
//# sourceMappingURL=metadata-options.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-options.interface.d.ts","sourceRoot":"","sources":["../../src/entity/metadata-options.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { EntityMetadataOptions } from './entity-metadata-options.interface.js';
|
|
2
|
-
import { EntityMetadata } from './entity-metadata.interface.js';
|
|
3
1
|
import { AbstractEntityType, EntityType } from './entity.interface.js';
|
|
2
|
+
import { EntityMetadataOptions } from './metadata-options.interface.js';
|
|
3
|
+
import { EntityMetadata } from './metadata.interface.js';
|
|
4
4
|
/**
|
|
5
5
|
* 将元数据选项(metadataOptions)转换为实体元数据(metadata)
|
|
6
6
|
*
|
|
@@ -15,4 +15,4 @@ import { AbstractEntityType, EntityType } from './entity.interface.js';
|
|
|
15
15
|
* @param [options] - 可选的目标类,用于获取原型链上的元数据
|
|
16
16
|
*/
|
|
17
17
|
export declare const transitionMetadata: (metadataOptions: EntityMetadataOptions, options?: EntityType | AbstractEntityType | EntityMetadataOptions | EntityMetadataOptions[]) => EntityMetadata;
|
|
18
|
-
//# sourceMappingURL=transition
|
|
18
|
+
//# sourceMappingURL=metadata-transition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-transition.d.ts","sourceRoot":"","sources":["../../src/entity/metadata-transition.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EACL,qBAAqB,EAItB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAuB,cAAc,EAAsB,MAAM,yBAAyB,CAAC;AAGlG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,GAC7B,iBAAiB,qBAAqB,EACtC,UAAU,UAAU,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,KAC1F,cAqIF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SetRequired } from 'type-fest';
|
|
2
|
-
import { EntityIndexMetadataOptions, EntityMetadataOptions, EntityPropertyMetadata, EntityRelationMetadata } from './
|
|
2
|
+
import { EntityIndexMetadataOptions, EntityMetadataOptions, EntityPropertyMetadata, EntityRelationMetadata } from './metadata-options.interface.js';
|
|
3
3
|
export type EntityIndexMetadata = EntityIndexMetadataOptions;
|
|
4
4
|
/**
|
|
5
5
|
* 实体元数据类型
|
|
@@ -7,6 +7,7 @@ export type EntityIndexMetadata = EntityIndexMetadataOptions;
|
|
|
7
7
|
*/
|
|
8
8
|
export type EntityMetadataType = SetRequired<EntityMetadataOptions, 'namespace' | 'displayName' | 'repository' | 'extends'> & {
|
|
9
9
|
properties: EntityPropertyMetadata[];
|
|
10
|
+
computedProperties: EntityPropertyMetadata[];
|
|
10
11
|
relations: EntityRelationMetadata[];
|
|
11
12
|
indexes: EntityIndexMetadata[];
|
|
12
13
|
/**
|
|
@@ -14,6 +15,11 @@ export type EntityMetadataType = SetRequired<EntityMetadataOptions, 'namespace'
|
|
|
14
15
|
* 键为属性名,值为属性元数据
|
|
15
16
|
*/
|
|
16
17
|
propertyMap: Map<string, EntityPropertyMetadata>;
|
|
18
|
+
/**
|
|
19
|
+
* 实体所有计算属性的映射
|
|
20
|
+
* 键为属性名,值为属性元数据
|
|
21
|
+
*/
|
|
22
|
+
computedPropertyMap: Map<string, EntityPropertyMetadata>;
|
|
17
23
|
/**
|
|
18
24
|
* 有默认值的属性列表
|
|
19
25
|
* 包含所有设置了默认值的属性元数据
|
|
@@ -55,4 +61,4 @@ export type EntityMetadataType = SetRequired<EntityMetadataOptions, 'namespace'
|
|
|
55
61
|
* 实体元数据的只读深度副本,防止元数据被修改
|
|
56
62
|
*/
|
|
57
63
|
export type EntityMetadata = Readonly<EntityMetadataType>;
|
|
58
|
-
//# sourceMappingURL=
|
|
64
|
+
//# sourceMappingURL=metadata.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.interface.d.ts","sourceRoot":"","sources":["../../src/entity/metadata.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAC1C,qBAAqB,EACrB,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CACvD,GAAG;IACF,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;IAC7C,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAE/B;;;OAGG;IACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEjD;;;OAGG;IACH,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEzD;;;OAGG;IACH,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;IAEjD;;;OAGG;IACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAEjD;;OAEG;IACH,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAE3D;;;OAGG;IACH,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAE9C;;;OAGG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAE1B;;;OAGG;IACH,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAE3C;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { ICascadeOptions, RelationKind } from './metadata-options.interface.js';
|
|
2
|
+
/**
|
|
3
|
+
* 应用默认级联选项
|
|
4
|
+
* 如果用户没有显式指定级联选项,则使用默认值
|
|
5
|
+
*
|
|
6
|
+
* @param options - 用户配置的级联选项
|
|
7
|
+
* @param relationKind - 关系类型
|
|
8
|
+
* @param nullable - 外键是否可为空
|
|
9
|
+
*/
|
|
10
|
+
declare const _default: (options: ICascadeOptions, relationKind: RelationKind, nullable?: boolean) => Required<ICascadeOptions>;
|
|
11
|
+
export default _default;
|
|
12
|
+
/**
|
|
13
|
+
* 获取关系类型的默认级联选项
|
|
14
|
+
* 根据关系类型自动推断合理的默认级联行为
|
|
15
|
+
*
|
|
16
|
+
* ## 默认规则
|
|
17
|
+
*
|
|
18
|
+
* ### 一对一(ONE_TO_ONE)
|
|
19
|
+
* - onDelete: CASCADE - 删除父实体时级联删除子实体(强关联)
|
|
20
|
+
* - onUpdate: RESTRICT - 不允许更新主键
|
|
21
|
+
* - 示例:用户-个人资料
|
|
22
|
+
*
|
|
23
|
+
* ### 一对多(ONE_TO_MANY)
|
|
24
|
+
* - onDelete: CASCADE - 删除父实体时级联删除所有子实体(父子关系)
|
|
25
|
+
* - onUpdate: RESTRICT - 不允许更新主键
|
|
26
|
+
* - 示例:订单-订单项、文章-评论
|
|
27
|
+
*
|
|
28
|
+
* ### 多对一(MANY_TO_ONE)
|
|
29
|
+
* - onDelete: RESTRICT - 阻止删除(保护父实体,避免孤儿数据)
|
|
30
|
+
* - onUpdate: RESTRICT - 不允许更新主键
|
|
31
|
+
* - 示例:订单项-订单、评论-文章
|
|
32
|
+
*
|
|
33
|
+
* ### 多对多(MANY_TO_MANY)
|
|
34
|
+
* - onDelete: RESTRICT - 阻止删除(需要手动处理中间表)
|
|
35
|
+
* - onUpdate: RESTRICT - 不允许更新主键
|
|
36
|
+
* - 示例:学生-课程
|
|
37
|
+
*
|
|
38
|
+
* @param relationKind - 关系类型
|
|
39
|
+
* @param nullable - 外键是否可为空(影响多对一的默认行为)
|
|
40
|
+
* @returns 默认的级联选项
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* // 一对多关系:删除订单时级联删除订单项
|
|
45
|
+
* const defaults = get_default_cascade_options(RelationKind.ONE_TO_MANY);
|
|
46
|
+
* // { onDelete: OnDeleteAction.CASCADE, onUpdate: OnUpdateAction.RESTRICT }
|
|
47
|
+
*
|
|
48
|
+
* // 多对一关系(可空):删除分类时将产品的分类 ID 设为 NULL
|
|
49
|
+
* const defaults = get_default_cascade_options(RelationKind.MANY_TO_ONE, true);
|
|
50
|
+
* // { onDelete: OnDeleteAction.SET_NULL, onUpdate: OnUpdateAction.RESTRICT }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare const get_default_cascade_options: (relationKind: RelationKind, nullable?: boolean) => Required<ICascadeOptions>;
|
|
54
|
+
//# sourceMappingURL=metadata_cascade_default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata_cascade_default.d.ts","sourceRoot":"","sources":["../../src/entity/metadata_cascade_default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkC,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEhH;;;;;;;GAOG;yBAED,SAAS,eAAe,EACxB,cAAc,YAAY,EAC1B,WAAU,OAAe,KACxB,QAAQ,CAAC,eAAe,CAAC;AAJ5B,wBAUE;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,2BAA2B,GACtC,cAAc,YAAY,EAC1B,WAAU,OAAe,KACxB,QAAQ,CAAC,eAAe,CAsD1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/entity/proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD;;GAEG;yBACa,CAAC,SAAS,UAAU,EAAE,QAAQ,YAAY,CAAC,CAAC,CAAC,KAAG,CAAC;AAAjE,wBAkCE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EntityManager } from './EntityManager.js';
|
|
2
|
-
import { EntityRelationMetadata } from './entity-metadata-options.interface.js';
|
|
3
2
|
import { EntityType } from './entity.interface.js';
|
|
3
|
+
import { EntityRelationMetadata } from './metadata-options.interface.js';
|
|
4
4
|
/**
|
|
5
5
|
* 帮助 EntityManager 处理实体关系
|
|
6
6
|
* 为实体类型添加关系属性,根据关系类型创建不同的可观察对象
|
|
@@ -13,4 +13,4 @@ import { EntityType } from './entity.interface.js';
|
|
|
13
13
|
*/
|
|
14
14
|
declare const _default: (relation: EntityRelationMetadata, EntityType: EntityType, em: EntityManager) => void;
|
|
15
15
|
export default _default;
|
|
16
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=relation_helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relation_helper.d.ts","sourceRoot":"","sources":["../../src/entity/relation_helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAA8D,MAAM,uBAAuB,CAAC;AAE/G,OAAO,EAAE,sBAAsB,EAAgB,MAAM,iCAAiC,CAAC;AAEvF;;;;;;;;;GASG;yBACa,UAAU,sBAAsB,EAAE,YAAY,UAAU,EAAE,IAAI,aAAa;AAA3F,wBA2ME"}
|