@mikro-orm/core
Version:
TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, PostgreSQL and SQLite databases as well as usage with vanilla JavaScript.
49 lines (48 loc) • 2.09 kB
TypeScript
import type { EntityData, EntityMetadata, EntityName, New, Primary } from '../typings';
import type { EntityManager } from '../EntityManager';
import type { EntityComparator } from '../utils/EntityComparator';
export interface FactoryOptions {
initialized?: boolean;
newEntity?: boolean;
/**
* Property `onCreate` hooks are normally executed during `flush` operation.
* With this option, they will be processed early inside `em.create()` method.
*/
processOnCreateHooksEarly?: boolean;
merge?: boolean;
refresh?: boolean;
convertCustomTypes?: boolean;
recomputeSnapshot?: boolean;
schema?: string;
parentSchema?: string;
}
export declare class EntityFactory {
private readonly em;
private readonly driver;
private readonly platform;
private readonly config;
private readonly metadata;
private readonly hydrator;
private readonly eventManager;
private readonly comparator;
constructor(em: EntityManager);
create<T extends object, P extends string = string>(entityName: EntityName<T>, data: EntityData<T>, options?: FactoryOptions): New<T, P>;
mergeData<T extends object>(meta: EntityMetadata<T>, entity: T, data: EntityData<T>, options?: FactoryOptions): void;
createReference<T extends object>(entityName: EntityName<T>, id: Primary<T> | Primary<T>[] | Record<string, Primary<T>>, options?: Pick<FactoryOptions, 'merge' | 'convertCustomTypes' | 'schema'>): T;
createEmbeddable<T extends object>(entityName: EntityName<T>, data: EntityData<T>, options?: Pick<FactoryOptions, 'newEntity' | 'convertCustomTypes'>): T;
getComparator(): EntityComparator;
private createEntity;
private assignDefaultValues;
private hydrate;
private findEntity;
private processDiscriminatorColumn;
/**
* denormalize PK to value required by driver (e.g. ObjectId)
*/
private denormalizePrimaryKey;
/**
* returns parameters for entity constructor, creating references from plain ids
*/
private extractConstructorParams;
private get unitOfWork();
}