From 6797a5f216fa90ace21b27528b15c8f243ed5367 Mon Sep 17 00:00:00 2001 From: Neal Beeken Date: Fri, 8 Jan 2021 15:48:28 -0500 Subject: [PATCH] fix: enumerate function override call signatures Function overrides now declare each possible form of the call signature, including the actual call signature NODE-2934 --- src/cmap/connection.ts | 6 +++--- src/collection.ts | 2 -- src/cursor/aggregation_cursor.ts | 2 +- src/mongo_client.ts | 8 ++++++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/cmap/connection.ts b/src/cmap/connection.ts index 98aa78439c5..1a93d1b77f7 100644 --- a/src/cmap/connection.ts +++ b/src/cmap/connection.ts @@ -263,9 +263,9 @@ export class Connection extends EventEmitter { } destroy(): void; - destroy(callback?: Callback): void; - destroy(options?: DestroyOptions): void; - destroy(options?: DestroyOptions, callback?: Callback): void; + destroy(callback: Callback): void; + destroy(options: DestroyOptions): void; + destroy(options: DestroyOptions, callback: Callback): void; destroy(options?: DestroyOptions | Callback, callback?: Callback): void { if (typeof options === 'function') { callback = options; diff --git a/src/collection.ts b/src/collection.ts index eba96f9bd90..7ec87c00896 100644 --- a/src/collection.ts +++ b/src/collection.ts @@ -1242,8 +1242,6 @@ export class Collection { * @param pipeline - An array of {@link https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline/|aggregation pipeline stages} through which to pass change stream documents. This allows for filtering (using $match) and manipulating the change stream documents. * @param options - Optional settings for the command */ - watch(): ChangeStream; - watch(pipeline?: Document[]): ChangeStream; watch(pipeline?: Document[], options?: ChangeStreamOptions): ChangeStream { pipeline = pipeline || []; options = options ?? {}; diff --git a/src/cursor/aggregation_cursor.ts b/src/cursor/aggregation_cursor.ts index e8190a23eb4..ca206826c98 100644 --- a/src/cursor/aggregation_cursor.ts +++ b/src/cursor/aggregation_cursor.ts @@ -77,7 +77,7 @@ export class AggregationCursor extends AbstractCursor { /** Execute the explain for the cursor */ explain(): Promise; explain(callback: Callback): void; - explain(verbosity?: ExplainVerbosityLike): Promise; + explain(verbosity: ExplainVerbosityLike): Promise; explain( verbosity?: ExplainVerbosityLike | Callback, callback?: Callback diff --git a/src/mongo_client.ts b/src/mongo_client.ts index 858320c6d7a..4b961d0320f 100644 --- a/src/mongo_client.ts +++ b/src/mongo_client.ts @@ -346,7 +346,7 @@ export class MongoClient extends EventEmitter { * @see docs.mongodb.org/manual/reference/connection-string/ */ connect(): Promise; - connect(callback?: Callback): void; + connect(callback: Callback): void; connect(callback?: Callback): Promise | void { if (callback && typeof callback !== 'function') { throw new TypeError('`connect` only accepts a callback'); @@ -457,7 +457,11 @@ export class MongoClient extends EventEmitter { // Create client const mongoClient = new MongoClient(url, options); // Execute the connect method - return mongoClient.connect(callback); + if (callback) { + return mongoClient.connect(callback); + } else { + return mongoClient.connect(); + } } catch (error) { if (callback) return callback(error); else return PromiseProvider.get().reject(error);