File tree Expand file tree Collapse file tree 4 files changed +25
-16
lines changed Expand file tree Collapse file tree 4 files changed +25
-16
lines changed Original file line number Diff line number Diff line change @@ -616,8 +616,8 @@ function handleMongoWriteConcernError(
616616 callback (
617617 new MongoBulkWriteError (
618618 {
619- message : err . result ? .writeConcernError . errmsg ,
620- code : err . result ? .writeConcernError . result
619+ message : err . result . writeConcernError . errmsg ,
620+ code : err . result . writeConcernError . code
621621 } ,
622622 new BulkWriteResult ( bulkResult , isOrdered )
623623 )
Original file line number Diff line number Diff line change @@ -1158,6 +1158,23 @@ export class MongoServerSelectionError extends MongoSystemError {
11581158 }
11591159}
11601160
1161+ /**
1162+ * The type of the result property of MongoWriteConcernError
1163+ * @public
1164+ */
1165+ export interface WriteConcernErrorResult {
1166+ writeConcernError : {
1167+ code : number ;
1168+ errmsg : string ;
1169+ codeName ?: string ;
1170+ errInfo ?: Document ;
1171+ } ;
1172+ ok : number ;
1173+ code ?: number ;
1174+ errorLabels ?: string [ ] ;
1175+ [ x : string | number ] : unknown ;
1176+ }
1177+
11611178/**
11621179 * An error thrown when the server reports a writeConcernError
11631180 * @public
@@ -1178,16 +1195,7 @@ export class MongoWriteConcernError extends MongoServerError {
11781195 *
11791196 * @public
11801197 **/
1181- constructor ( result : {
1182- writeConcernError : {
1183- code : number ;
1184- errmsg : string ;
1185- codeName ?: string ;
1186- errInfo ?: Document ;
1187- } ;
1188- errorLabels ?: string [ ] ;
1189- code ?: number ;
1190- } ) {
1198+ constructor ( result : WriteConcernErrorResult ) {
11911199 super ( { ...result , ...result . writeConcernError } ) ;
11921200 this . errInfo = result . writeConcernError . errInfo ;
11931201 this . result = result ;
Original file line number Diff line number Diff line change @@ -73,7 +73,8 @@ export {
7373 MongoTopologyClosedError ,
7474 MongoTransactionError ,
7575 MongoUnexpectedServerResponseError ,
76- MongoWriteConcernError
76+ MongoWriteConcernError ,
77+ WriteConcernErrorResult
7778} from './error' ;
7879export {
7980 AbstractCursor ,
Original file line number Diff line number Diff line change @@ -742,16 +742,16 @@ describe('MongoErrors', () => {
742742 } ) ;
743743
744744 describe ( 'MongoWriteConcernError constructor' , function ( ) {
745- context ( 'when no top-level code is provided and writeConcernError.code exists ' , function ( ) {
746- it ( 'error.code remains undefined ' , function ( ) {
745+ context ( 'when no top-level code is provided' , function ( ) {
746+ it ( 'error.code is set to writeConcernError.code ' , function ( ) {
747747 const res = {
748748 writeConcernError : {
749749 code : 81 , // nested code
750750 errmsg : 'fake msg'
751751 } ,
752752 ok : 1
753753 } ;
754- expect ( new MongoWriteConcernError ( res ) . code ) . to . equal ( undefined ) ;
754+ expect ( new MongoWriteConcernError ( res ) . code ) . to . equal ( 81 ) ;
755755 } ) ;
756756 } ) ;
757757 context ( 'when top-level code is provided and writeConcernError.code exists' , function ( ) {
You can’t perform that action at this time.
0 commit comments