UNPKG

typeorm

Version:

Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.

69 lines (68 loc) 2.58 kB
import { Repository } from "./Repository"; import { SelectQueryBuilder } from "../query-builder/SelectQueryBuilder"; import { FindTreeOptions } from "../find-options/FindTreeOptions"; /** * Repository with additional functions to work with trees. * * @see Repository */ export declare class TreeRepository<Entity> extends Repository<Entity> { /** * Gets complete trees for all roots in the table. */ findTrees(options?: FindTreeOptions): Promise<Entity[]>; /** * Roots are entities that have no ancestors. Finds them all. */ findRoots(options?: FindTreeOptions): Promise<Entity[]>; /** * Gets all children (descendants) of the given entity. Returns them all in a flat array. */ findDescendants(entity: Entity): Promise<Entity[]>; /** * Gets all children (descendants) of the given entity. Returns them in a tree - nested into each other. */ findDescendantsTree(entity: Entity, options?: FindTreeOptions): Promise<Entity>; /** * Gets number of descendants of the entity. */ countDescendants(entity: Entity): Promise<number>; /** * Creates a query builder used to get descendants of the entities in a tree. */ createDescendantsQueryBuilder(alias: string, closureTableAlias: string, entity: Entity): SelectQueryBuilder<Entity>; /** * Gets all parents (ancestors) of the given entity. Returns them all in a flat array. */ findAncestors(entity: Entity): Promise<Entity[]>; /** * Gets all parents (ancestors) of the given entity. Returns them in a tree - nested into each other. */ findAncestorsTree(entity: Entity): Promise<Entity>; /** * Gets number of ancestors of the entity. */ countAncestors(entity: Entity): Promise<number>; /** * Creates a query builder used to get ancestors of the entities in the tree. */ createAncestorsQueryBuilder(alias: string, closureTableAlias: string, entity: Entity): SelectQueryBuilder<Entity>; /** * Moves entity to the children of then given entity. * move(entity: Entity, to: Entity): Promise<void> { return Promise.resolve(); } */ protected createRelationMaps(alias: string, rawResults: any[]): { id: any; parentId: any; }[]; protected buildChildrenEntityTree(entity: any, entities: any[], relationMaps: { id: any; parentId: any; }[]): void; protected buildParentEntityTree(entity: any, entities: any[], relationMaps: { id: any; parentId: any; }[]): void; }