hydrate-mongodb
Version:
An Object Document Mapper (ODM) for MongoDB.
46 lines (45 loc) • 2.4 kB
TypeScript
import { IdentityGenerator } from "../config/configuration";
import { ClassMapping } from "./classMapping";
import { ChangeTrackingType, FlushPriority } from "./mappingModel";
import { Index } from "./index";
import { CollectionOptions } from "./collectionOptions";
import { MappingModel } from "./mappingModel";
import { Reference } from "../reference";
import { InternalSession } from "../session";
import { ResultCallback } from "../core/callback";
import { ResolveContext } from "./resolveContext";
import { ReadContext } from "./readContext";
import { Observer } from "../observer";
import { Property } from "./property";
import { WriteContext } from "./writeContext";
import { QueryDocument } from "../query/queryBuilder";
export declare class EntityMapping extends ClassMapping {
collectionName: string;
databaseName: string;
indexes: Index[];
collectionOptions: CollectionOptions;
identity: IdentityGenerator;
changeTracking: ChangeTrackingType;
versioned: boolean;
versionField: string;
flushPriority: FlushPriority;
private _defaultFields;
constructor(baseClass?: EntityMapping);
validateProperty(property: Property): string;
setDocumentVersion(obj: any, version: number): void;
getDocumentVersion(obj: any): number;
addIndex(index: Index): void;
refresh(context: ReadContext, entity: any, document: any): any;
read(context: ReadContext, value: any): any;
write(context: WriteContext, value: any): any;
watchEntity(entity: any, observer: Observer): void;
watch(value: any, observer: Observer, visited: any[]): void;
areDocumentsEqual(document1: any, document2: any): boolean;
areEqual(documentValue1: any, documentValue2: any): boolean;
walk(session: InternalSession, value: any, flags: MappingModel.PropertyFlags, entities: any[], embedded: any[], references: Reference[]): void;
fetch(session: InternalSession, parentEntity: any, value: any, path: string[], depth: number, callback: ResultCallback<any>): void;
fetchInverse(session: InternalSession, parentEntity: any, propertyName: string, path: string[], depth: number, callback: ResultCallback<any>): void;
protected fetchPropertyValue(session: InternalSession, value: any, property: Property, callback: ResultCallback<any>): void;
getDefaultFields(): QueryDocument;
protected resolveCore(context: ResolveContext): void;
}