mongoe
Version:
MongoDB driver with relational functionalities
28 lines (27 loc) • 1.33 kB
TypeScript
import { FilterQuery, OptionalId, SortOptionObject, UpdateQuery } from "mongodb";
import { Collection, Database } from ".";
export declare type Relation = {
primaryKey: string;
foreignRefs: Array<readonly [string, string, Policy]>;
};
export declare type RelationInput = {
primaryKey?: string;
foreignKeys?: Record<string, readonly [string, Policy]>;
};
export declare enum Policy {
ByPass = 0,
Delete = 1,
Reject = 2,
Nullify = 3
}
export declare function registerRelations(relations: Record<string, Relation>, inputs: Record<string, RelationInput>): void;
export declare function verifyIntegrity(database: Database): Promise<void>;
export declare function verifyInsert<TSchema extends Record<string, any>>(collection: Collection<TSchema>, docs: Array<OptionalId<TSchema>>): Promise<void>;
export declare function verifyUpdate<TSchema extends Record<string, any>>(collection: Collection<TSchema>, filter: FilterQuery<TSchema>, update: UpdateQuery<TSchema> | Partial<TSchema>, options: {
many: boolean;
sort?: SortOptionObject<any>;
}): Promise<void>;
export declare function verifyDelete(collection: Collection<any>, filter: FilterQuery<any>, deletedKeys: Record<string, Array<any>>, options: {
many: boolean;
sort?: SortOptionObject<any>;
}): Promise<void>;