UNPKG

octonom

Version:

Object Document Mapper for any database

24 lines (23 loc) 1.96 kB
import { ISanitizeOptions, ISchema, ISchemaOptions, ISchemaParentInstance, IToObjectOptions, PopulateMap, PopulateReference, SchemaInstanceMap, SchemaMap } from './schema'; export interface IObjectInstance<T extends object> extends ISchemaParentInstance<T> { instanceMap: SchemaInstanceMap<T>; } export declare type ObjectInstance<T extends object> = IObjectInstance<T>; export interface IObjectOptions<T extends object = object> extends ISchemaOptions<ObjectInstance<T>> { schemaMap: SchemaMap<T>; callParentHooks?: boolean; } export declare function populateObject<T extends object>(obj: T, instanceMap: SchemaInstanceMap<T>, schemaMap: SchemaMap<T>, populateReference: PopulateMap<T>): Promise<T>; export declare function proxifyObject<T extends object>(obj: T, instanceMap: SchemaInstanceMap<T>, parentInstance: ISchemaParentInstance, schemaMap: SchemaMap<T>): T; export declare function setObject<T extends object>(data: object, obj: T, instanceMap: SchemaInstanceMap<T>, parentInstance: ISchemaParentInstance, schemaMap: SchemaMap<T>, sanitizeOptions: ISanitizeOptions): void; export declare function toObject<T extends object>(instanceMap: SchemaInstanceMap<T>, options?: IToObjectOptions): T; export declare function validateObject<T extends object>(instanceMap: SchemaInstanceMap<T>, parentInstance: ISchemaParentInstance, schemaMap: SchemaMap<T>): Promise<void>; export declare class ObjectSchema<T extends object = object> implements ISchema<T, ObjectInstance<T>> { readonly options: IObjectOptions<T>; constructor(options: IObjectOptions<T>); create(value: any, sanitizeOptions?: ISanitizeOptions): ObjectInstance<T>; populate(instance: ObjectInstance<T>, populateReference: PopulateReference<T>): Promise<T>; toObject(instance: ObjectInstance<T>, options?: IToObjectOptions): T; validate(instance: ObjectInstance<T>): Promise<void>; protected sanitize(value: any, sanitizeOptions: ISanitizeOptions): any; }