UNPKG

lambdaorm-base

Version:
46 lines (45 loc) 2.17 kB
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; }