11'use strict' ;
22
3- var Long = require ( 'mongodb-core' ) . BSON . Long ,
4- MongoError = require ( 'mongodb-core' ) . MongoError ,
5- util = require ( 'util' ) ;
3+ const Long = require ( 'mongodb-core' ) . BSON . Long ;
4+ const MongoError = require ( 'mongodb-core' ) . MongoError ;
5+ const util = require ( 'util' ) ;
6+ const toError = require ( '../utils' ) . toError ;
7+ const handleCallback = require ( '../utils' ) . handleCallback ;
68
79// Error codes
810var UNKNOWN_ERROR = 8 ;
@@ -402,6 +404,20 @@ var cloneOptions = function(options) {
402404 return clone ;
403405} ;
404406
407+ function handleMongoWriteConcernError ( batch , bulkResult , ordered , err , callback ) {
408+ mergeBatchResults ( ordered , batch , bulkResult , null , err . result ) ;
409+
410+ const wrappedWriteConcernError = new WriteConcernError ( {
411+ errmsg : err . result . writeConcernError . errmsg ,
412+ code : err . result . writeConcernError . result
413+ } ) ;
414+ return handleCallback (
415+ callback ,
416+ new BulkWriteError ( toError ( wrappedWriteConcernError ) , new BulkWriteResult ( bulkResult ) ) ,
417+ null
418+ ) ;
419+ }
420+
405421/**
406422 * Creates a new BulkWriteError
407423 *
@@ -426,17 +442,21 @@ const BulkWriteError = function(error, result) {
426442util . inherits ( BulkWriteError , MongoError ) ;
427443
428444// Exports symbols
429- exports . BulkWriteError = BulkWriteError ;
430- exports . BulkWriteResult = BulkWriteResult ;
431- exports . WriteError = WriteError ;
432- exports . Batch = Batch ;
433- exports . LegacyOp = LegacyOp ;
434- exports . mergeBatchResults = mergeBatchResults ;
435- exports . cloneOptions = cloneOptions ;
436- exports . INVALID_BSON_ERROR = INVALID_BSON_ERROR ;
437- exports . WRITE_CONCERN_ERROR = WRITE_CONCERN_ERROR ;
438- exports . MULTIPLE_ERROR = MULTIPLE_ERROR ;
439- exports . UNKNOWN_ERROR = UNKNOWN_ERROR ;
440- exports . INSERT = INSERT ;
441- exports . UPDATE = UPDATE ;
442- exports . REMOVE = REMOVE ;
445+ module . exports = {
446+ Batch,
447+ BulkWriteError,
448+ BulkWriteResult,
449+ cloneOptions,
450+ handleMongoWriteConcernError,
451+ LegacyOp,
452+ mergeBatchResults,
453+ INVALID_BSON_ERROR : INVALID_BSON_ERROR ,
454+ MULTIPLE_ERROR : MULTIPLE_ERROR ,
455+ UNKNOWN_ERROR : UNKNOWN_ERROR ,
456+ WRITE_CONCERN_ERROR : WRITE_CONCERN_ERROR ,
457+ INSERT : INSERT ,
458+ UPDATE : UPDATE ,
459+ REMOVE : REMOVE ,
460+ WriteError,
461+ WriteConcernError
462+ } ;
0 commit comments