Skip to content

Commit 0c7c9bd

Browse files
committed
types(query): improve findByIdAndDelete return type for query re: #14190
1 parent 7d1f4e4 commit 0c7c9bd

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

test/types/queries.test.ts

+17-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {
1717
ProjectionFields,
1818
QueryOptions
1919
} from 'mongoose';
20-
import { ObjectId } from 'mongodb';
20+
import { ModifyResult, ObjectId } from 'mongodb';
2121
import { expectAssignable, expectError, expectNotAssignable, expectType } from 'tsd';
2222
import { autoTypedModel } from './models.test';
2323
import { AutoTypedSchemaType } from './schema.test';
@@ -527,4 +527,20 @@ function gh14190() {
527527

528528
const doc = await UserModel.findByIdAndDelete('0'.repeat(24));
529529
expectType<ReturnType<(typeof UserModel)['hydrate']> | null>(doc);
530+
531+
const res = await UserModel.findByIdAndDelete(
532+
'0'.repeat(24),
533+
{ includeResultMetadata: true }
534+
);
535+
expectAssignable<
536+
ModifyResult<ReturnType<(typeof UserModel)['hydrate']>>
537+
>(res);
538+
539+
const res2 = await UserModel.find().findByIdAndDelete(
540+
'0'.repeat(24),
541+
{ includeResultMetadata: true }
542+
);
543+
expectAssignable<
544+
ModifyResult<ReturnType<(typeof UserModel)['hydrate']>>
545+
>(res2);
530546
}

types/query.d.ts

+4
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,10 @@ declare module 'mongoose' {
415415
): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType, 'findOne'>;
416416

417417
/** Creates a `findByIdAndDelete` query, filtering by the given `_id`. */
418+
findByIdAndDelete(
419+
id: mongodb.ObjectId | any,
420+
options: QueryOptions<DocType> & { includeResultMetadata: true }
421+
): QueryWithHelpers<ModifyResult<DocType>, DocType, THelpers, RawDocType, 'findOneAndDelete'>;
418422
findByIdAndDelete(
419423
id?: mongodb.ObjectId | any,
420424
options?: QueryOptions<DocType> | null

0 commit comments

Comments
 (0)