lambdaorm-base
Version:
46 lines (45 loc) • 2.17 kB
TypeScript
import { Enum, Entity, Property, RelationInfo } from '../../../domain';
export declare abstract class DomainConfigServiceBase<TEntity extends Entity, TProperty extends Property> {
abstract get entities(): TEntity[];
abstract get enums(): Enum[];
getEntity(name: string): TEntity | undefined;
getForcedEntity(name: string): TEntity;
getEnum(name: string): Enum | undefined;
isChild(entityName: string): boolean;
existsProperty(entityName: string, name: string): boolean;
getProperty(entityName: string, name: string): TProperty;
getAutoIncrement(entityName: string): TProperty | undefined;
getFieldIds(entityName: string): TProperty[] | undefined;
listEntities(): string[];
/**
* Sort a list of entities according to their relationships
* @param allEntities entities to order
* @returns returns the sorted entities
*/
sortByRelations(mainEntities: string[], allEntities: string[]): string[];
/**
* Sort a list of entities according to their dependencies
* @param entities entities to order
* @returns returns the sorted entities
*/
sortByDependencies(entities?: string[]): string[];
/**
* Determines whether an entity can be included in the entity list based on its relationships
* @param entityName name of entity
* @param sorted current list of entities sorted by dependencies
* @param parent entity parent , used in manyToOne relations
* @returns
*/
protected solveSortEntity(entityName: string, mainEntities: string[], allEntities: string[], sorted: string[], parent?: string): boolean;
private unsolvedRelation;
/**
* Determines whether an entity can be included in the entity list based on its dependencies
* @param entityName name of entity
* @param sorted current list of entities sorted by dependencies
* @param parent entity parent , used in manyToOne relations
* @returns
*/
protected hadDependencies(entity: TEntity, entities: string[], sorted: string[], parent?: string): boolean;
private hadDependents;
getRelation(entity: string, relation: string): RelationInfo;
}