diff --git a/src/legacy_wrappers/change_stream.js b/src/legacy_wrappers/change_stream.js index 4ac0094..49f582b 100644 --- a/src/legacy_wrappers/change_stream.js +++ b/src/legacy_wrappers/change_stream.js @@ -7,8 +7,15 @@ Object.defineProperty(module.exports, '__esModule', { value: true }); module.exports.makeLegacyChangeStream = function (baseClass) { class LegacyChangeStream extends baseClass { - close(callback) { - return maybeCallback(super.close(), callback); + close(options, callback) { + callback = + typeof callback === 'function' + ? callback + : typeof options === 'function' + ? options + : undefined; + options = typeof options !== 'function' ? options : undefined; + return maybeCallback(super.close(options), callback); } hasNext(callback) { return maybeCallback(super.hasNext(), callback); diff --git a/src/legacy_wrappers/gridfs.js b/src/legacy_wrappers/gridfs.js index a5c2f4d..0baf751 100644 --- a/src/legacy_wrappers/gridfs.js +++ b/src/legacy_wrappers/gridfs.js @@ -7,16 +7,37 @@ Object.defineProperty(module.exports, '__esModule', { value: true }); module.exports.makeLegacyGridFSBucket = function (baseClass) { class LegacyGridFSBucket extends baseClass { - delete(id, callback) { - return maybeCallback(super.delete(id), callback); + delete(id, options, callback) { + callback = + typeof callback === 'function' + ? callback + : typeof options === 'function' + ? options + : undefined; + options = typeof options !== 'function' ? options : undefined; + return maybeCallback(super.delete(id, options), callback); } - rename(id, filename, callback) { - return maybeCallback(super.rename(id, filename), callback); + rename(id, filename, options, callback) { + callback = + typeof callback === 'function' + ? callback + : typeof options === 'function' + ? options + : undefined; + options = typeof options !== 'function' ? options : undefined; + return maybeCallback(super.rename(id, filename, options), callback); } - drop(callback) { - return maybeCallback(super.drop(), callback); + drop(options, callback) { + callback = + typeof callback === 'function' + ? callback + : typeof options === 'function' + ? options + : undefined; + options = typeof options !== 'function' ? options : undefined; + return maybeCallback(super.drop(options), callback); } // conversion diff --git a/test/tools/api.js b/test/tools/api.js index be74cf7..26ceee5 100644 --- a/test/tools/api.js +++ b/test/tools/api.js @@ -52,7 +52,7 @@ const api = [ { className: 'OrderedBulkOperation', method: 'execute', returnType: 'Promise' }, { className: 'UnorderedBulkOperation', method: 'execute', returnType: 'Promise' }, - { className: 'ChangeStream', method: 'close', returnType: 'Promise' }, + { className: 'ChangeStream', method: 'close', returnType: 'Promise', possibleCallbackPositions: [1, 2]}, { className: 'ChangeStream', method: 'hasNext', returnType: 'Promise' }, { className: 'ChangeStream', method: 'next', returnType: 'Promise' }, { className: 'ChangeStream', method: 'tryNext', returnType: 'Promise' }, @@ -117,9 +117,9 @@ const api = [ { className: 'FindCursor', method: 'count', returnType: 'Promise' }, { className: 'FindCursor', method: 'explain', returnType: 'Promise' }, - { className: 'GridFSBucket', method: 'delete', returnType: 'Promise', possibleCallbackPositions: [1] }, - { className: 'GridFSBucket', method: 'drop', returnType: 'Promise' }, - { className: 'GridFSBucket', method: 'rename', returnType: 'Promise', possibleCallbackPositions: [1] }, + { className: 'GridFSBucket', method: 'delete', returnType: 'Promise', possibleCallbackPositions: [1, 2] }, + { className: 'GridFSBucket', method: 'drop', returnType: 'Promise', possibleCallbackPositions: [1, 2] }, + { className: 'GridFSBucket', method: 'rename', returnType: 'Promise', possibleCallbackPositions: [1, 2] }, { className: 'GridFSBucket', method: 'openUploadStream', returnType: 'GridFSBucketWriteStream', notAsync: true }, { className: 'GridFSBucket', method: 'openUploadStreamWithId', returnType: 'GridFSBucketWriteStream', notAsync: true }, { className: 'GridFSBucket', method: 'find', returnType: 'FindCursor', notAsync: true }, @@ -141,7 +141,7 @@ const api = [ ]; module.exports.api = api; -module.exports.classNames = new Set(api.map(({className}) => className)) +module.exports.classNames = new Set(api.map(({ className }) => className)) module.exports.classNameToMethodList = new Map(api.map((api, _, array) => [api.className, sorted(Array.from(new Set(Array.from(array.filter(v => v.className === api.className), method => method))), (a, b) => byStrings(a.method, b.method))] ));