@aiao/rxdb 0.0.1

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 (38) hide show
  1. package/README.md +1 -0
  2. package/RxDB.d.ts +51 -0
  3. package/RxDBError.d.ts +13 -0
  4. package/entity/@Entity.d.ts +29 -0
  5. package/entity/@TreeEntity.d.ts +50 -0
  6. package/entity/EntityBase.d.ts +49 -0
  7. package/entity/EntityManager.d.ts +140 -0
  8. package/entity/EntityStatus.d.ts +211 -0
  9. package/entity/TreeEntityBase.d.ts +7 -0
  10. package/entity/entity-metadata-options.interface.d.ts +434 -0
  11. package/entity/entity-metadata.interface.d.ts +67 -0
  12. package/entity/entity.interface.d.ts +110 -0
  13. package/entity/entity.utils.d.ts +59 -0
  14. package/entity/entity_proxy_helper.d.ts +48 -0
  15. package/entity/entity_relation_helper.d.ts +15 -0
  16. package/entity/generate_many_to_many_entity.d.ts +35 -0
  17. package/entity/transition-metadata.d.ts +17 -0
  18. package/index.d.ts +26 -0
  19. package/index.js +1783 -0
  20. package/package.json +19 -0
  21. package/repository/Repository.d.ts +108 -0
  22. package/repository/RepositoryBase.d.ts +32 -0
  23. package/repository/TreeRepository.d.ts +28 -0
  24. package/repository/query-options.interface.d.ts +53 -0
  25. package/repository/query.interface.d.ts +92 -0
  26. package/repository/query.utils.d.ts +19 -0
  27. package/repository/repository.interface.d.ts +84 -0
  28. package/repository/tree-query-options.interface.d.ts +9 -0
  29. package/repository/tree-repository.interface.d.ts +26 -0
  30. package/rxdb-adapter.d.ts +73 -0
  31. package/rxdb-events.d.ts +186 -0
  32. package/rxdb-plugin.d.ts +20 -0
  33. package/rxdb-utils.d.ts +20 -0
  34. package/rxdb.interface.d.ts +56 -0
  35. package/rxdb.private.d.ts +55 -0
  36. package/schema/SchemaManager.d.ts +57 -0
  37. package/system/change.d.ts +13 -0
  38. package/system/migration.d.ts +9 -0
@@ -0,0 +1,48 @@
1
+ import { UpdatedBy } from '../rxdb.private';
2
+ import { EntityType } from './entity.interface';
3
+ /**
4
+ * 实体变化接口
5
+ * 描述实体属性的单次变更信息
6
+ *
7
+ * @interface EntityChange
8
+ * @template T 实体类型
9
+ * @template K 属性键类型,默认为实体的所有属性键
10
+ * @template V 属性值类型,默认为对应属性的值类型
11
+ */
12
+ export interface EntityChange<T extends EntityType, K extends keyof T = keyof T, V = T[K]> {
13
+ /**
14
+ * 操作者
15
+ * - `UPDATED_BY_USER`: 用户操作
16
+ * - `UPDATED_BY_SYSTEM`: 系统操作
17
+ * - uuid: 具体某个用户(待实现)
18
+ */
19
+ updatedBy: UpdatedBy;
20
+ /**
21
+ * 变化的属性
22
+ */
23
+ prop: K;
24
+ /**
25
+ * 变化前的值
26
+ */
27
+ oldValue: V;
28
+ /**
29
+ * 变化后的值
30
+ */
31
+ value: V;
32
+ }
33
+ /**
34
+ * 创建实体代理对象
35
+ *
36
+ * 该函数通过JavaScript的Proxy机制创建实体的代理对象,用于:
37
+ * 1. 跟踪实体属性的变更
38
+ * 2. 记录变更的来源(用户或系统)
39
+ * 3. 计算变更的差异并更新实体状态
40
+ * 4. 批量处理连续的变更操作
41
+ *
42
+ * 代理对象会拦截属性设置操作,当属性值发生变化时:
43
+ * - 记录变更信息(属性名、旧值、新值、变更来源)
44
+ * - 标记实体状态为已修改
45
+ * - 在下一个事件循环中计算差异并更新状态
46
+ */
47
+ declare const _default: <T extends EntityType>(entity: InstanceType<T>) => T;
48
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import { EntityManager } from './EntityManager';
2
+ import { EntityRelationMetadata } from './entity-metadata-options.interface';
3
+ import { EntityType } from './entity.interface';
4
+ /**
5
+ * 帮助 EntityManager 处理实体关系
6
+ * 为实体类型添加关系属性,根据关系类型创建不同的可观察对象
7
+ *
8
+ * 该函数会:
9
+ * 1. 获取关联实体类型
10
+ * 2. 根据关系类型(一对一、一对多、多对一、多对多)创建相应的可观察对象
11
+ * 3. 为可观察对象添加操作方法(set、remove、add等)
12
+ * 4. 将关系属性添加到实体类型的原型上
13
+ */
14
+ declare const _default: (relation: EntityRelationMetadata, EntityType: EntityType, em: EntityManager) => void;
15
+ export default _default;
@@ -0,0 +1,35 @@
1
+ import { EntityMetadataOptions, EntityRelationManyToManyMetadata } from './entity-metadata-options.interface';
2
+ import { EntityMetadata } from './entity-metadata.interface';
3
+ /**
4
+ * 多对多关系描述接口
5
+ * 包含实体元数据和关系元数据
6
+ */
7
+ export interface ManyToManyRelation {
8
+ /**
9
+ * 实体元数据
10
+ */
11
+ metadata: EntityMetadata;
12
+ /**
13
+ * 多对多关系元数据
14
+ */
15
+ relation: EntityRelationManyToManyMetadata;
16
+ }
17
+ /**
18
+ * 根据多对多关系生成中间表实体元数据
19
+ *
20
+ * 中间表实体用于连接两个实体之间的多对多关系,它包含两个外键,分别指向关系的两端
21
+ * 中间表的命名规则是将两个实体名称按字母顺序排序后用下划线连接
22
+ * 命名空间同样按字母顺序排序后用下划线连接
23
+ *
24
+ * @example
25
+ * // 如果有 User 和 Role 两个实体,生成的中间表名称为 Role_User
26
+ * // 如果两个实体分别在 auth 和 system 命名空间,生成的命名空间为 auth_system
27
+ */
28
+ /**
29
+ * 根据多对多关系生成中间表实体元数据
30
+ *
31
+ * @param options - 包含两个多对多关系的数组,每个关系包含实体元数据和关系元数据
32
+ * @returns 生成的中间表实体元数据选项
33
+ */
34
+ declare const _default: (options: [ManyToManyRelation, ManyToManyRelation]) => EntityMetadataOptions;
35
+ export default _default;
@@ -0,0 +1,17 @@
1
+ import { EntityMetadataOptions } from './entity-metadata-options.interface';
2
+ import { EntityMetadata } from './entity-metadata.interface';
3
+ import { AbstractEntityType, EntityType } from './entity.interface';
4
+ /**
5
+ * 将元数据选项(metadataOptions)转换为实体元数据(metadata)
6
+ *
7
+ * 该函数执行以下操作:
8
+ * 1. 收集实体原型链上的所有元数据选项
9
+ * 2. 创建属性映射、关系映射和索引映射
10
+ * 3. 处理实体继承关系
11
+ * 4. 设置显示名称、默认值属性、外键关系和外键名称
12
+ * 5. 添加辅助方法如isForeignKey
13
+ *
14
+ * @param metadataOptions - 实体元数据选项,包含实体的基本配置
15
+ * @param [EntityType] - 可选的目标类,用于获取原型链上的元数据
16
+ */
17
+ export declare const transitionMetadata: (metadataOptions: EntityMetadataOptions, EntityType?: EntityType | AbstractEntityType) => EntityMetadata;
package/index.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ export * from './entity/@Entity';
2
+ export * from './entity/@TreeEntity';
3
+ export * from './entity/entity-metadata-options.interface';
4
+ export * from './entity/entity-metadata.interface';
5
+ export * from './entity/entity.interface';
6
+ export * from './entity/entity.utils';
7
+ export { isEntityInternalName } from './entity/entity.utils';
8
+ export * from './entity/EntityBase';
9
+ export { transitionMetadata } from './entity/transition-metadata';
10
+ export * from './entity/TreeEntityBase';
11
+ export * from './repository/query-options.interface';
12
+ export * from './repository/query.interface';
13
+ export * from './repository/query.utils';
14
+ export * from './repository/repository.interface';
15
+ export * from './repository/RepositoryBase';
16
+ export * from './repository/tree-query-options.interface';
17
+ export * from './repository/tree-repository.interface';
18
+ export * from './RxDB';
19
+ export * from './rxdb-adapter';
20
+ export * from './rxdb-events';
21
+ export * from './rxdb-plugin';
22
+ export * from './rxdb-utils';
23
+ export * from './rxdb.interface';
24
+ export * from './RxDBError';
25
+ export * from './system/change';
26
+ export * from './system/migration';