typeorm
Version:
Data-Mapper ORM for TypeScript and ES2021+. Supports MySQL/MariaDB, PostgreSQL, MS SQL Server, Oracle, SAP HANA, SQLite, MongoDB databases.
56 lines (55 loc) • 1.86 kB
TypeScript
import { RelationType } from "../metadata/types/RelationTypes";
import { RelationOptions } from "../decorator/options/RelationOptions";
import { PropertyTypeFactory } from "../metadata/types/PropertyTypeInFunction";
import { RelationTypeInFunction } from "../metadata/types/RelationTypeInFunction";
/**
* Arguments for RelationMetadata class.
*/
export interface RelationMetadataArgs {
/**
* Class to which this relation is applied.
*/
readonly target: Function | string;
/**
* In the case if this relation is without a target, targetId must be specified.
* This is used for entity schemas without classes.
*/
/**
* Class's property name to which this relation is applied.
*/
readonly propertyName: string;
/**
* Indicates if this relation will be lazily loaded.
*/
readonly isLazy: boolean;
/**
* Original (reflected) class's property type.
*
* todo: this can be empty for relations from entity schemas.
*/
/**
* Type of relation. Can be one of the value of the RelationTypes class.
*/
readonly relationType: RelationType;
/**
* Type of the relation. This type is in function because of language specifics and problems with recursive
* referenced classes.
*/
readonly type: RelationTypeInFunction;
/**
* Inverse side of the relation.
*/
readonly inverseSideProperty?: PropertyTypeFactory<any>;
/**
* Additional relation options.
*/
readonly options: RelationOptions;
/**
* Indicates if this is a parent (can be only many-to-one relation) relation in the tree tables.
*/
readonly isTreeParent?: boolean;
/**
* Indicates if this is a children (can be only one-to-many relation) relation in the tree tables.
*/
readonly isTreeChildren?: boolean;
}