UNPKG

mongoe

Version:

MongoDB driver with relational functionalities

28 lines (27 loc) 1.33 kB
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>;