mongoose-delete-ts
Version:
Mongoose soft delete plugin
18 lines (17 loc) • 1.7 kB
TypeScript
import { FilterQuery, MongooseBaseQueryOptions, QueryWithHelpers, UpdateWriteOpResult } from 'mongoose';
import DeletedSchema from './types/DeletedSchema';
import DeletedFieldOptions from './types/DeletedFieldOptions';
import { DeleteResult, DeleteOptions as MongoDbDeleteOptions, UpdateOptions as MongoDbUpdateOptions } from 'mongodb';
import { DeleteSchemaOptions } from './types/DeleteSchemaOptions';
type DeleteOptions<RawDocType> = MongoDbDeleteOptions & Omit<MongooseBaseQueryOptions<RawDocType>, 'lean' | 'timestamps'>;
type UpdateOptions<RawDocType> = MongoDbUpdateOptions & Omit<MongooseBaseQueryOptions<RawDocType>, 'lean'>;
export interface DeletedStaticMethods<DocType, THelpers = {}, RawDocType = DocType> {
restoreOne(filter?: FilterQuery<RawDocType>, options?: UpdateOptions<RawDocType> | null): QueryWithHelpers<UpdateWriteOpResult, DocType, THelpers, RawDocType, 'updateOne'>;
restoreMany(filter?: FilterQuery<RawDocType>, options?: UpdateOptions<RawDocType> | null): QueryWithHelpers<UpdateWriteOpResult, DocType, THelpers, RawDocType, 'updateMany'>;
}
export interface DeletedByStaticMethods<DocType, TUser = any, THelpers = {}, RawDocType = DocType> {
deleteOneByUser(user: TUser, filter?: FilterQuery<RawDocType>, options?: DeleteOptions<RawDocType> | null): QueryWithHelpers<DeleteResult, DocType, THelpers, RawDocType, 'deleteOne'>;
deleteManyByUser(user: TUser, filter?: FilterQuery<RawDocType>, options?: DeleteOptions<RawDocType> | null): QueryWithHelpers<DeleteResult, DocType, THelpers, RawDocType, 'deleteMany'>;
}
export default function (schema: DeletedSchema, schemaOptions: DeleteSchemaOptions, deletedFieldOptions: DeletedFieldOptions): void;
export {};