UNPKG

octonom

Version:

Object Document Mapper for any database

21 lines (20 loc) 1.08 kB
import { IModelConstructor, Model } from '../model'; import { ObjectInstance } from './object'; import { ISanitizeOptions, ISchema, ISchemaOptions, IToObjectOptions, PopulateReference } from './schema'; export interface IModelInstance<T extends Model = Model> extends ObjectInstance<T> { schema: ModelSchema<T>; rawObject: T; } export declare type ModelInstance<T extends Model> = IModelInstance<T>; export interface IModelOptions<T extends Model = Model> extends ISchemaOptions<ModelInstance<T>> { model: IModelConstructor<T>; callParentHooks?: boolean; } export declare class ModelSchema<T extends Model = Model> implements ISchema<T, ModelInstance<T>, Partial<T>> { readonly options: IModelOptions<T>; constructor(options: IModelOptions<T>); create(value: any, sanitizeOptions?: ISanitizeOptions): IModelInstance<T>; populate(instance: ModelInstance<T>, populateReference: PopulateReference): Promise<T>; toObject(instance: ModelInstance<T>, options?: IToObjectOptions): Partial<T>; validate(instance: ModelInstance<T>): Promise<void>; }