RepositoryMethodsGenerator
Defined in: generators/RepositoryGeneratorBase.ts:262
Repository 生成器 为所有 Entity 生成通用的 CRUD 属性和方法:get, find, findOne, save, remove 等
Extends
Constructors
Constructor
new RepositoryMethodsGenerator(): RepositoryMethodsGenerator;
Returns
RepositoryMethodsGenerator
Inherited from
RepositoryGeneratorBase.constructor
Properties
abstractEntityMetadata?
readonly optional abstractEntityMetadata?: ReadonlyMap<string, EntityMetadataOptions[]>;
Defined in: generators/RepositoryGeneratorBase.ts:85
本生成器负责的抽象实体基类元数据,键为基类名,值按「自身 → 祖先」顺序排列。
Remarks
抽象基类的装饰器实参通常是一个常量标识符(@Entity(GRAPH_ENTITY_BASE_OPTIONS)),
CLI 的静态求值取不到它的值;而基类元数据又必须在分析实体源码时就位,否则
extends GraphEntityBase 的实体直接报「无法静态求值」。
由生成器随身携带这份数据后,分析器按 entityBaseModuleSpecifier 指向的包名 加基类名回填——生成器包因此不必为每个插件的基类反向依赖该插件。 只声明了本字段而没有 entityBaseModuleSpecifier 的生成器不会被分析器采纳: 少了包名就只能按类名匹配,用户自己写的同名类会被顶替。
Inherited from
RepositoryGeneratorBase.abstractEntityMetadata
entityBaseModuleSpecifier?
readonly optional entityBaseModuleSpecifier?: string;
Defined in: generators/RepositoryGeneratorBase.ts:82
实体运行时基类的来源模块;未设置时使用 @aiao/rxdb。
Inherited from
RepositoryGeneratorBase.entityBaseModuleSpecifier
name
readonly name: string = 'Repository';
Defined in: generators/RepositoryGeneratorBase.ts:263
Generator 名称 必须与 EntityMetadata.repository 字段匹配
Example
'Repository', 'TreeRepository', 'GraphRepository', 'GeoRepository'
Overrides
Methods
addInstanceMethod()
protected addInstanceMethod(context, config): void;
Defined in: generators/RepositoryGeneratorBase.ts:217
共享工具:添加实例方法
Parameters
| Parameter | Type |
|---|---|
context | GeneratorContext |
config | { docs: string[]; name: string; returnType: string; } |
config.docs | string[] |
config.name | string |
config.returnType | string |
Returns
void
Inherited from
RepositoryGeneratorBase.addInstanceMethod
addInstanceProperty()
protected addInstanceProperty(context, config): void;
Defined in: generators/RepositoryGeneratorBase.ts:235
共享工具:添加实例函数属性
Parameters
| Parameter | Type |
|---|---|
context | GeneratorContext |
config | { docs: string[]; name: string; type: string; } |
config.docs | string[] |
config.name | string |
config.type | string |
Returns
void
Inherited from
RepositoryGeneratorBase.addInstanceProperty
addStaticMethod()
protected addStaticMethod(context, config): void;
Defined in: generators/RepositoryGeneratorBase.ts:136
共享工具:添加静态查询方法
Parameters
| Parameter | Type |
|---|---|
context | GeneratorContext |
config | { baseSignature?: { entityBase: string; options: string; parameterName?: string; returnType: string; }; example?: string; method: string; metHodDoc?: string; options: string; optionsIsRequired?: boolean; registerOptions?: boolean; resultWrapper?: "Observable" | "Promise"; returnType: string; } |
config.baseSignature? | { entityBase: string; options: string; parameterName?: string; returnType: string; } |
config.baseSignature.entityBase | string |
config.baseSignature.options | string |
config.baseSignature.parameterName? | string |
config.baseSignature.returnType | string |
config.example? | string |
config.method | string |
config.metHodDoc? | string |
config.options | string |
config.optionsIsRequired? | boolean |
config.registerOptions? | boolean |
config.resultWrapper? | "Observable" | "Promise" |
config.returnType | string |
Returns
void
Inherited from
RepositoryGeneratorBase.addStaticMethod
addTypeImport()
protected addTypeImport(context, name): void;
Defined in: generators/RepositoryGeneratorBase.ts:124
登记一个类型导入,按本生成器的 entityBaseModuleSpecifier 分流。
Parameters
| Parameter | Type |
|---|---|
context | GeneratorContext |
name | string |
Returns
void
Remarks
树实体的基类与配套选项类型(TreeAdjacencyListEntityBase / FindTreeOptions)在
@aiao/rxdb-plugin-tree;没有声明 specifier 的生成器一律落回 @aiao/rxdb。
Inherited from
RepositoryGeneratorBase.addTypeImport
declareSymbols()
declareSymbols(metadata): RepositoryGeneratorSymbols;
Defined in: generators/RepositoryGeneratorBase.ts:266
Parameters
| Parameter | Type |
|---|---|
metadata | EntityMetadata |
Returns
Inherit Doc
generate()
generate(context): void;
Defined in: generators/RepositoryGeneratorBase.ts:87
生成 Repository 特有的属性和方法
Parameters
| Parameter | Type | Description |
|---|---|---|
context | GeneratorContext | 生成上下文 |
Returns
void
Inherited from
RepositoryGeneratorBase.generate
generateMethods()
protected generateMethods(context): void;
Defined in: generators/RepositoryGeneratorBase.ts:277
子类实现:生成具体的 Repository 方法
Parameters
| Parameter | Type |
|---|---|
context | GeneratorContext |
Returns
void
Overrides
RepositoryGeneratorBase.generateMethods
generateProperties()
protected generateProperties(context): void;
Defined in: generators/RepositoryGeneratorBase.ts:108
生成器钩子:生成特定的 Repository 属性 子类可选择性覆盖此方法,生成特定的计算属性、索引等
Parameters
| Parameter | Type |
|---|---|
context | GeneratorContext |
Returns
void
Example
// Tree Generator 可能需要生成树级别缓存属性
protected generateProperties(context: GeneratorContext): void {
context.classProperties.push({
name: 'maxDepth',
type: 'number',
isReadonly: true
});
}
Inherited from
RepositoryGeneratorBase.generateProperties
getIdType()
protected getIdType(metadata): IdType;
Defined in: generators/RepositoryGeneratorBase.ts:253
共享工具:获取 ID 类型
Parameters
| Parameter | Type |
|---|---|
metadata | Readonly<EntityMetadataType> |
Returns
IdType