hydrate-mongodb
Version:
An Object Document Mapper (ODM) for MongoDB.
42 lines (41 loc) • 1.84 kB
TypeScript
import { Collection, MongoClient } from "mongodb";
import { Table } from "./core/table";
import { MappingRegistry } from "./mapping/mappingRegistry";
import { Session, InternalSession } from "./session";
import { Constructor } from "./index";
import { Persister } from "./persister";
import { EntityMapping } from "./mapping/entityMapping";
import { Logger } from "./config/configuration";
import { Callback } from "./core/callback";
export interface SessionFactory {
connection: MongoClient;
getCollection(ctr: Constructor<any>): Collection;
createSession(): Session;
createIndexes(callback: Callback): void;
createIndexes(options: CreateIndexesOptions, callback: Callback): void;
dropIndexes(callback: Callback): void;
}
export interface CreateIndexesOptions {
background?: boolean;
}
export interface InternalSessionFactory extends SessionFactory {
logger: Logger;
getMappingForObject(obj: any): EntityMapping;
getMappingForConstructor(ctr: Constructor<any>): EntityMapping;
createPersister(session: InternalSession, mapping: EntityMapping): Persister;
}
export declare class SessionFactoryImpl implements InternalSessionFactory {
connection: MongoClient;
logger: Logger;
private _collections;
private _mappingRegistry;
constructor(connection: MongoClient, collections: Table<Collection>, mappingRegistry: MappingRegistry);
createSession(): Session;
getCollection(ctr: Constructor<any>): Collection;
getMappingForObject(obj: any): EntityMapping;
getMappingForConstructor(ctr: Constructor<any>): EntityMapping;
createPersister(session: InternalSession, mapping: EntityMapping): Persister;
createIndexes(callback: Callback): void;
createIndexes(options: CreateIndexesOptions, callback: Callback): void;
dropIndexes(callback: Callback): void;
}