hydrate-mongodb
Version:
An Object Document Mapper (ODM) for MongoDB.
70 lines (69 loc) • 2.93 kB
TypeScript
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;
};
}