UNPKG

hydrate-mongodb

Version:
70 lines (69 loc) 2.93 kB
import { MongoClient } from "mongodb"; import { NamingStrategy } from "./namingStrategies"; import { ResultCallback } from "../core/callback"; import { ChangeTrackingType } from "../mapping/mappingModel"; import { MappingModel, PropertyConverter } from "../mapping/mappingModel"; import { SessionFactory } from "../sessionFactory"; export declare class Configuration { databaseName: string; identityGenerator: IdentityGenerator; versioned: boolean; nullable: boolean; versionField: string; discriminatorField: string; changeTracking: ChangeTrackingType; collectionPrefix: string; collectionNamingStrategy: NamingStrategy; fieldNamingStrategy: NamingStrategy; discriminatorNamingStrategy: NamingStrategy; propertyConverters: { [name: string]: PropertyConverter; }; logger: Logger; createIndexes: boolean; private _mappings; addMapping(mapping: MappingProvider): void; createSessionFactory(connection: MongoClient, callback: ResultCallback<SessionFactory>): void; createSessionFactory(connection: MongoClient, databaseName: string, callback: ResultCallback<SessionFactory>): void; private _buildCollections(connection, databaseName, registry, callback); } export interface IdentityGenerator { generate(): any; fromString(text: string): any; validate(value: any): boolean; areEqual(first: any, second: any): boolean; } export interface PropertyConverter { convertToDocumentField(property: any): any; convertToObjectProperty(field: any): any; areEqual(field1: any, field2: any): boolean; } export interface MappingProvider { getMapping(config: Configuration, callback: ResultCallback<MappingModel.ClassMapping[]>): void; } export interface Logger { child(options: LoggerOptions): Logger; trace(error: Error, msg?: string, ...args: any[]): void; trace(fields: Object, msg?: string, ...args: any[]): void; trace(msg: string, ...params: any[]): void; debug(error: Error, msg?: string, ...args: any[]): void; debug(fields: Object, msg?: string, ...args: any[]): void; debug(msg: string, ...args: any[]): void; info(error: Error, msg?: string, ...args: any[]): void; info(fields: Object, msg?: string, ...args: any[]): void; info(msg: string, ...args: any[]): void; warn(error: Error, msg?: string, ...args: any[]): void; warn(fields: Object, msg?: string, ...args: any[]): void; warn(msg: string, ...args: any[]): void; error(error: Error, msg?: string, ...args: any[]): void; error(fields: Object, msg?: string, ...args: any[]): void; error(msg: string, ...args: any[]): void; fatal(error: Error, msg?: string, ...args: any[]): void; fatal(fields: Object, msg?: string, ...args: any[]): void; fatal(msg: string, ...args: any[]): void; } export interface LoggerOptions { serializers?: { [key: string]: (input: any) => any; }; }