mongoose-history-diff
Version:
A mongoose plugin to take diffs and history of your documents
48 lines (47 loc) • 1.29 kB
TypeScript
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 {};