UNPKG

mongoose-history-diff

Version:

A mongoose plugin to take diffs and history of your documents

48 lines (47 loc) 1.29 kB
import { Model, Document, Types } from 'mongoose'; export declare type ObjectId = Types.ObjectId; export declare type OptionsT = { diffCollectionName?: string; orderIndependent?: boolean; }; export declare type KindT = 'E' | 'N' | 'D' | 'A'; export declare type MergedDiffsOptsT = { startVersion?: number; endVersion?: number; }; interface ItemDoc { k: KindT; l?: any; r?: any; } export declare type RawChangeT = { k: KindT; p: string[]; l?: any; r?: any; i?: number; it?: Partial<ItemDoc>; }; export interface ChangeDoc { k: KindT; p: string[]; l?: any; r?: any; i?: number; it?: ItemDoc; } export interface IDiffDoc extends Document { _id: ObjectId; dId: ObjectId; c: ChangeDoc[]; v: number; } export interface IDiffModel extends Model<IDiffDoc> { createDiff(dId: ObjectId, v: number, changes: ChangeDoc[]): Promise<IDiffDoc>; findByDocId(dId: ObjectId): Promise<Array<IDiffDoc>>; findAfterVersion(dId: ObjectId, v: number): Promise<Array<IDiffDoc>>; findBeforeVersion(dId: ObjectId, v: number): Promise<Array<IDiffDoc>>; revertToVersion(d: Object, v: number): Promise<any>; mergeDiffs(doc: Document, opts?: MergedDiffsOptsT): Promise<Array<RawChangeT>>; } export {};