RxDBClientGenerator
Defined in: core/RxDBClientGenerator.ts:224
RxDB Client 生成器
Constructors
Constructor
new RxDBClientGenerator(options?): RxDBClientGenerator;
Defined in: core/RxDBClientGenerator.ts:246
Parameters
| Parameter | Type |
|---|---|
options? | RxDBClientGeneratorOptions |
Returns
RxDBClientGenerator
Properties
config
config: Required<RxDBClientGeneratorOptions>;
Defined in: core/RxDBClientGenerator.ts:241
entityMetadataOptionsMap
entityMetadataOptionsMap: Map<string, EntityMetadataOptions[]>;
Defined in: core/RxDBClientGenerator.ts:233
metadataMap
metadataMap: Map<string, Readonly<EntityMetadataType>>;
Defined in: core/RxDBClientGenerator.ts:238
metadataOptionsSet
metadataOptionsSet: Set<EntityMetadataOptions>;
Defined in: core/RxDBClientGenerator.ts:236
metadataSet
metadataSet: Set<Readonly<EntityMetadataType>>;
Defined in: core/RxDBClientGenerator.ts:237
project
project: Project;
Defined in: core/RxDBClientGenerator.ts:239
Methods
addEntity()
addEntity(
value,
options?,
sourceGetters?
): void;
Defined in: core/RxDBClientGenerator.ts:276
添加实体配置或带元数据的实体类。
实体名在本次生成器实例中必须唯一;重复实体或无法生成合法绑定标识符的输入会立即抛错。
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
value | | EntityMetadataOptions | EntityType | undefined | 实体元数据配置或由 @Entity 装饰的实体类 |
options? | EntityMetadataOptions[] | undefined | 继承的抽象元数据配置;省略时按 extends 的第一个父类型自动查找 |
sourceGetters? | readonly EntitySourceGetter[] | [] | 需要追加到生成实体上的 getter 定义 |
Returns
void
Throws
实体名、属性、关系或 getter 与生成成员冲突时抛出
exec()
exec(): void;
Defined in: core/RxDBClientGenerator.ts:403
执行生成器并在内存中创建生成文件。
调用完成后通过 getSourceFiles 读取文件文本;本类不会直接写入用户磁盘。
同一实例执行失败时不会替换上一次成功的 project。
Returns
void
Throws
元数据或生成符号校验失败时抛出
generateEntityJsFile()
generateEntityJsFile(): void;
Defined in: core/RxDBClientGenerator.ts:431
生成实体的 js 文件 公开此方法以便测试使用
Returns
void
getMetadata()
getMetadata(mappedEntity, mappedNamespace?):
| Readonly<EntityMetadataType>
| undefined;
Defined in: core/RxDBClientGenerator.ts:336
按实体名称和 namespace 查找已登记的元数据。
Parameters
| Parameter | Type | Description |
|---|---|---|
mappedEntity | string | 实体绑定名称 |
mappedNamespace? | string | namespace;省略时使用 NAMESPACE_PUBLIC |
Returns
| Readonly<EntityMetadataType>
| undefined
对应元数据;不存在时返回 undefined
getRepositoryGenerator()
getRepositoryGenerator(name):
| IRepositoryGenerator
| undefined;
Defined in: core/RxDBClientGenerator.ts:391
获取 Repository 生成器
Parameters
| Parameter | Type | Description |
|---|---|---|
name | string | Repository 名称 |
Returns
| IRepositoryGenerator
| undefined
对应的生成器,如果不存在则返回 undefined
getSourceFiles()
getSourceFiles(): SourceFile[];
Defined in: core/RxDBClientGenerator.ts:423
获取最近一次成功执行生成器创建的文件。
Returns
生成文件集合,包含 index barrel 和实体实现/声明文件
Throws
尚未调用 exec 时抛出
getSourceGetters()
getSourceGetters(metadata): readonly EntitySourceGetter[];
Defined in: core/RxDBClientGenerator.ts:314
读取实体附加的 getter 定义。
Parameters
| Parameter | Type | Description |
|---|---|---|
metadata | EntityMetadata | 已登记的实体元数据 |
Returns
readonly EntitySourceGetter[]
登记过的 getter 快照;没有附加 getter 时返回空数组
registerAbstractMetadata()
registerAbstractMetadata(abstractEntityName, metadataOptions): void;
Defined in: core/RxDBClientGenerator.ts:346
登记可被后续实体继承的抽象元数据。
Parameters
| Parameter | Type | Description |
|---|---|---|
abstractEntityName | string | 抽象实体绑定名称 |
metadataOptions | EntityMetadataOptions[] | 抽象实体的元数据选项,按父类顺序应用 |
Returns
void
registerRepositoryGenerator()
registerRepositoryGenerator(generator): void;
Defined in: core/RxDBClientGenerator.ts:374
注册 Repository 生成器 用于扩展支持自定义 Repository 类型
生成器声明的 IRepositoryGenerator.abstractEntityMetadata 会一并登记为抽象元数据, 调用方不必再手写一遍 registerAbstractMetadata。
重名一律拒绝,不会静默顶替。检查必须放在这里,不能只放在 CLI 装载路径
(cli/repository-generators.ts 的 registerRepositoryGenerators):直接
new RxDBClientGenerator() 后手动注册的编程调用方(例如 apps/dev-rxdb-angular 的
generator.page.ts)走不到 CLI 那一层,一个与已注册生成器同名的插件(比如也叫
Repository)会静默顶掉它,用到这个名字的实体随之换掉方法集且不报错。
Parameters
| Parameter | Type | Description |
|---|---|---|
generator | IRepositoryGenerator | Repository 生成器实例 |
Returns
void
Throws
已存在同名生成器时抛出
Example
const generator = new RxDBClientGenerator();
generator.registerRepositoryGenerator(new GeoRepositoryGenerator());
setMetadata()
setMetadata(metadata): void;
Defined in: core/RxDBClientGenerator.ts:325
按 (namespace, name) 登记 metadata
键一律由 get_cache_key 构造。此前写入侧是手写拼接、读取侧走
get_cache_key,两边连 namespace 的兜底都不一致(写入侧 undefined 会
变成字面量 "undefined_Name")—— 任何调用方都不应再自行拼接(RCG-001)。
Parameters
| Parameter | Type |
|---|---|
metadata | EntityMetadata |
Returns
void