diff --git a/test/types/middleware.test.ts b/test/types/middleware.test.ts index 46c44d390e0..4b7b07d3437 100644 --- a/test/types/middleware.test.ts +++ b/test/types/middleware.test.ts @@ -92,6 +92,24 @@ schema.pre>('insertMany', function(next, docs: Array) { next(); }); +schema.pre>('count', function(next) {}); +schema.post>('count', function(count, next) { + expectType(count); + next(); +}); + +schema.pre>('estimatedDocumentCount', function(next) {}); +schema.post>('estimatedDocumentCount', function(count, next) { + expectType(count); + next(); +}); + +schema.pre>('countDocuments', function(next) {}); +schema.post>('countDocuments', function(count, next) { + expectType(count); + next(); +}); + schema.post>('findOneAndDelete', function(res, next) { expectType(res); next(); diff --git a/types/middlewares.d.ts b/types/middlewares.d.ts index 0310ca0fa0a..b8e604f2dad 100644 --- a/types/middlewares.d.ts +++ b/types/middlewares.d.ts @@ -1,7 +1,7 @@ declare module 'mongoose' { type MongooseDocumentMiddleware = 'validate' | 'save' | 'remove' | 'updateOne' | 'deleteOne' | 'init'; - type MongooseQueryMiddleware = 'count' | 'deleteMany' | 'deleteOne' | 'distinct' | 'find' | 'findOne' | 'findOneAndDelete' | 'findOneAndRemove' | 'findOneAndReplace' | 'findOneAndUpdate' | 'remove' | 'replaceOne' | 'update' | 'updateOne' | 'updateMany'; + type MongooseQueryMiddleware = 'count' | 'estimatedDocumentCount' | 'countDocuments' | 'deleteMany' | 'deleteOne' | 'distinct' | 'find' | 'findOne' | 'findOneAndDelete' | 'findOneAndRemove' | 'findOneAndReplace' | 'findOneAndUpdate' | 'remove' | 'replaceOne' | 'update' | 'updateOne' | 'updateMany'; type MiddlewareOptions = { document?: boolean, query?: boolean }; type SchemaPreOptions = MiddlewareOptions;