Skip to content

Commit 225cb64

Browse files
authored
fix(NODE-6399): support new options arguments (#48)
1 parent fe3b692 commit 225cb64

File tree

3 files changed

+41
-13
lines changed

3 files changed

+41
-13
lines changed

src/legacy_wrappers/change_stream.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,15 @@ Object.defineProperty(module.exports, '__esModule', { value: true });
77

88
module.exports.makeLegacyChangeStream = function (baseClass) {
99
class LegacyChangeStream extends baseClass {
10-
close(callback) {
11-
return maybeCallback(super.close(), callback);
10+
close(options, callback) {
11+
callback =
12+
typeof callback === 'function'
13+
? callback
14+
: typeof options === 'function'
15+
? options
16+
: undefined;
17+
options = typeof options !== 'function' ? options : undefined;
18+
return maybeCallback(super.close(options), callback);
1219
}
1320
hasNext(callback) {
1421
return maybeCallback(super.hasNext(), callback);

src/legacy_wrappers/gridfs.js

+27-6
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,37 @@ Object.defineProperty(module.exports, '__esModule', { value: true });
77

88
module.exports.makeLegacyGridFSBucket = function (baseClass) {
99
class LegacyGridFSBucket extends baseClass {
10-
delete(id, callback) {
11-
return maybeCallback(super.delete(id), callback);
10+
delete(id, options, callback) {
11+
callback =
12+
typeof callback === 'function'
13+
? callback
14+
: typeof options === 'function'
15+
? options
16+
: undefined;
17+
options = typeof options !== 'function' ? options : undefined;
18+
return maybeCallback(super.delete(id, options), callback);
1219
}
1320

14-
rename(id, filename, callback) {
15-
return maybeCallback(super.rename(id, filename), callback);
21+
rename(id, filename, options, callback) {
22+
callback =
23+
typeof callback === 'function'
24+
? callback
25+
: typeof options === 'function'
26+
? options
27+
: undefined;
28+
options = typeof options !== 'function' ? options : undefined;
29+
return maybeCallback(super.rename(id, filename, options), callback);
1630
}
1731

18-
drop(callback) {
19-
return maybeCallback(super.drop(), callback);
32+
drop(options, callback) {
33+
callback =
34+
typeof callback === 'function'
35+
? callback
36+
: typeof options === 'function'
37+
? options
38+
: undefined;
39+
options = typeof options !== 'function' ? options : undefined;
40+
return maybeCallback(super.drop(options), callback);
2041
}
2142

2243
// conversion

test/tools/api.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ const api = [
5252
{ className: 'OrderedBulkOperation', method: 'execute', returnType: 'Promise<BulkWriteResult>' },
5353
{ className: 'UnorderedBulkOperation', method: 'execute', returnType: 'Promise<BulkWriteResult>' },
5454

55-
{ className: 'ChangeStream', method: 'close', returnType: 'Promise<void>' },
55+
{ className: 'ChangeStream', method: 'close', returnType: 'Promise<void>', possibleCallbackPositions: [1, 2]},
5656
{ className: 'ChangeStream', method: 'hasNext', returnType: 'Promise<boolean>' },
5757
{ className: 'ChangeStream', method: 'next', returnType: 'Promise<TChange>' },
5858
{ className: 'ChangeStream', method: 'tryNext', returnType: 'Promise<Document | null>' },
@@ -117,9 +117,9 @@ const api = [
117117
{ className: 'FindCursor', method: 'count', returnType: 'Promise<number>' },
118118
{ className: 'FindCursor', method: 'explain', returnType: 'Promise<Document>' },
119119

120-
{ className: 'GridFSBucket', method: 'delete', returnType: 'Promise<void>', possibleCallbackPositions: [1] },
121-
{ className: 'GridFSBucket', method: 'drop', returnType: 'Promise<void>' },
122-
{ className: 'GridFSBucket', method: 'rename', returnType: 'Promise<void>', possibleCallbackPositions: [1] },
120+
{ className: 'GridFSBucket', method: 'delete', returnType: 'Promise<void>', possibleCallbackPositions: [1, 2] },
121+
{ className: 'GridFSBucket', method: 'drop', returnType: 'Promise<void>', possibleCallbackPositions: [1, 2] },
122+
{ className: 'GridFSBucket', method: 'rename', returnType: 'Promise<void>', possibleCallbackPositions: [1, 2] },
123123
{ className: 'GridFSBucket', method: 'openUploadStream', returnType: 'GridFSBucketWriteStream', notAsync: true },
124124
{ className: 'GridFSBucket', method: 'openUploadStreamWithId', returnType: 'GridFSBucketWriteStream', notAsync: true },
125125
{ className: 'GridFSBucket', method: 'find', returnType: 'FindCursor', notAsync: true },
@@ -141,7 +141,7 @@ const api = [
141141
];
142142

143143
module.exports.api = api;
144-
module.exports.classNames = new Set(api.map(({className}) => className))
144+
module.exports.classNames = new Set(api.map(({ className }) => className))
145145
module.exports.classNameToMethodList = new Map(api.map((api, _, array) =>
146146
[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))]
147147
));

0 commit comments

Comments
 (0)