octonom
Version:
Object Document Mapper for any database
24 lines (23 loc) • 1.96 kB
TypeScript
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;
}