mongot
Version:
MongoT is a modern ODM library for MongoDb.
57 lines (56 loc) • 2.24 kB
TypeScript
import { SchemaMutate } from './metadata/mutation';
import { Collection } from "./collection";
import { ObjectID } from "./schema";
export declare const PRIMARY_KEY_NAME = "_id";
export declare class TypeCast {
static cast(type: any, value: any, proto?: any): any;
static toPlainValue(value: any): any;
static extract(value: any): any;
static castToArray(type: typeof SchemaArray, proto: any, value: any): SchemaArray<any>;
static castToFragmentArray(type: typeof SchemaArray, proto: any, value: any): SchemaArray<any>;
static castToFragment(proto: typeof SchemaFragment, value: Object): SchemaFragment;
static castToBoolean(value: any): boolean;
static castToDate(value: any): Date;
static castToString(value: any): string;
static castToNumber(value: any): number;
}
export declare class SchemaMetadata extends SchemaMutate {
readonly _id?: ObjectID;
constructor(document?: Object);
protected __mutate(document?: Object): this;
protected getMetadata(): Map<string | symbol, {
type?: any;
proto?: any;
required?: boolean;
}>;
protected getDefinedHooks(): Map<string, string[]>;
toObject(): any;
toJSON(): any;
clone(): this;
extract(): any;
merge(data: object | SchemaMetadata): this;
static factory<T extends SchemaMetadata>(document?: Object): T;
}
export declare abstract class SchemaDocument extends SchemaMetadata {
readonly _id: ObjectID;
call(hook: string, collection: Collection<this>): Promise<any[]>;
}
export declare class SchemaFragment extends SchemaMetadata {
readonly _id?: ObjectID;
}
export declare class PartialDocumentFragment extends SchemaMetadata {
protected __mutate(document: Object): this;
protected getMetadata(): Map<any, any>;
}
export declare class SchemaArray<T> extends Array<T> {
protected readonly cast: (value: any) => T;
constructor(values?: T[], cast?: (value: any) => T);
toArray(): Array<T>;
toJSON(): T[];
push(...items: Object[]): number;
unshift(...items: Object[]): number;
pull(value: T): void;
}
export declare class SchemaFragmentArray<T extends SchemaFragment> extends SchemaArray<T> {
search(id: ObjectID | string | number): T;
}