@stenneepro/mongoose-soft-delete
Version:
Mongoose soft delete plugin
23 lines (22 loc) • 2.17 kB
TypeScript
import { DeleteResult } from 'mongodb';
import { FilterQuery, QueryWithHelpers, UpdateWriteOpResult } from 'mongoose';
import DeletedSchema from './types/DeletedSchema';
import { MongooseUpdateOptions } from './utils/getOverloadedArguments';
import DeletedFieldOptions from './types/DeletedFieldOptions';
export interface DeletedStaticMethods<T, TQueryHelpers = {}> {
deleteMany(filter?: FilterQuery<T>, options?: MongooseUpdateOptions | null): QueryWithHelpers<DeleteResult, T, TQueryHelpers, T, 'deleteMany'>;
deleteMany(filter: FilterQuery<T>): QueryWithHelpers<DeleteResult, T, TQueryHelpers, T, 'deleteMany'>;
deleteOne(filter?: FilterQuery<T>, options?: MongooseUpdateOptions | null): QueryWithHelpers<DeleteResult, T, TQueryHelpers, T, 'deleteOne'>;
deleteOne(filter?: FilterQuery<T>): QueryWithHelpers<DeleteResult, T, TQueryHelpers, T, 'deleteOne'>;
restoreOne(filter?: FilterQuery<T>, options?: MongooseUpdateOptions | null): QueryWithHelpers<UpdateWriteOpResult, T, TQueryHelpers, T, 'updateOne'>;
restoreOne(filter: FilterQuery<T>): QueryWithHelpers<UpdateWriteOpResult, T, TQueryHelpers, T, 'updateOne'>;
restoreMany(filter?: FilterQuery<T>, options?: MongooseUpdateOptions | null): QueryWithHelpers<UpdateWriteOpResult, T, TQueryHelpers, T, 'updateMany'>;
restoreMany(filter: FilterQuery<T>): QueryWithHelpers<UpdateWriteOpResult, T, TQueryHelpers, T, 'updateMany'>;
}
export interface DeletedByStaticMethods<T, TUser = any, TQueryHelpers = {}> {
deleteManyByUser(user: TUser, filter?: FilterQuery<T>, options?: MongooseUpdateOptions | null): QueryWithHelpers<DeleteResult, T, TQueryHelpers, T, 'deleteMany'>;
deleteManyByUser(user: TUser, filter: FilterQuery<T>): QueryWithHelpers<DeleteResult, T, TQueryHelpers, T, 'deleteMany'>;
deleteOneByUser(user: TUser, filter?: FilterQuery<T>, options?: MongooseUpdateOptions): QueryWithHelpers<DeleteResult, T, TQueryHelpers, T, 'deleteOne'>;
deleteOneByUser(user: TUser, filter: FilterQuery<T>): QueryWithHelpers<DeleteResult, T, TQueryHelpers, T, 'deleteOne'>;
}
export default function (schema: DeletedSchema, deletedFieldOptions: DeletedFieldOptions): void;