From fe42d9a5fc940e45539da8bd1c28dabab81bb835 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Thu, 28 Jan 2021 16:44:34 +0100 Subject: [PATCH 1/3] fix(service-provider-server): Fix clientOptions type in cli service provider and dependants --- .../src/cli-service-provider.integration.spec.ts | 2 +- .../src/cli-service-provider.ts | 7 +++---- .../src/compass/compass-service-provider.ts | 12 ++++++++---- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/service-provider-server/src/cli-service-provider.integration.spec.ts b/packages/service-provider-server/src/cli-service-provider.integration.spec.ts index 6f87818623..a89baa4a42 100644 --- a/packages/service-provider-server/src/cli-service-provider.integration.spec.ts +++ b/packages/service-provider-server/src/cli-service-provider.integration.spec.ts @@ -106,7 +106,7 @@ describe('CliServiceProvider [integration]', function() { describe('.getConnectionInfo', () => { context('when a uri has been passed', () => { it('returns the connection\'s info', async() => { - const instance = new CliServiceProvider(client, connectionString); + const instance = new CliServiceProvider(client, {}, new ConnectionString(connectionString)); const connectionInfo = await instance.getConnectionInfo(); expect(Object.keys(connectionInfo)).to.deep.equal([ diff --git a/packages/service-provider-server/src/cli-service-provider.ts b/packages/service-provider-server/src/cli-service-provider.ts index 97c02ba903..256b0239f7 100644 --- a/packages/service-provider-server/src/cli-service-provider.ts +++ b/packages/service-provider-server/src/cli-service-provider.ts @@ -198,10 +198,10 @@ class CliServiceProvider extends ServiceProviderCore implements ServiceProvider * MongoClient instance. * * @param {MongoClient} mongoClient - The Node drivers' MongoClient instance. - * @param clientOptions + * @param {MongoClientOptions} clientOptions * @param {string} uri - optional URI for telemetry. */ - constructor(mongoClient: MongoClient, clientOptions = {}, uri?: ConnectionString) { + constructor(mongoClient: MongoClient, clientOptions: MongoClientOptions = {}, uri?: ConnectionString) { super(bsonlib); this.mongoClient = mongoClient; this.uri = uri; @@ -222,12 +222,11 @@ class CliServiceProvider extends ServiceProviderCore implements ServiceProvider async getNewConnection(uri: string, options: MongoClientOptions = {}): Promise { const connectionString = new ConnectionString(uri); const clientOptions = processDriverOptions(options); - const mongoClient = await connectMongoClient( connectionString.toString(), clientOptions ); - return new CliServiceProvider(mongoClient, connectionString); + return new CliServiceProvider(mongoClient, clientOptions, connectionString); } async getConnectionInfo(): Promise { diff --git a/packages/service-provider-server/src/compass/compass-service-provider.ts b/packages/service-provider-server/src/compass/compass-service-provider.ts index 8576fcb41c..70a4ce1cbf 100644 --- a/packages/service-provider-server/src/compass/compass-service-provider.ts +++ b/packages/service-provider-server/src/compass/compass-service-provider.ts @@ -1,6 +1,6 @@ import CliServiceProvider from '../cli-service-provider'; -import { MongoClient } from 'mongodb'; -import { DEFAULT_DB, ReplPlatform } from '@mongosh/service-provider-core'; +import { MongoClient, MongoClientOptions } from 'mongodb'; +import { ConnectionString, DEFAULT_DB, ReplPlatform } from '@mongosh/service-provider-core'; interface DataService { client: { @@ -21,8 +21,12 @@ class CompassServiceProvider extends CliServiceProvider { * @param {MongoClient} mongoClient - The Node drivers' MongoClient instance. * @param {string} uri - optional URI for telemetry. */ - constructor(mongoClient: MongoClient, uri?: string) { - super(mongoClient, uri); + constructor( + mongoClient: MongoClient, + clientOptions: MongoClientOptions = {}, + uri?: ConnectionString + ) { + super(mongoClient, clientOptions, uri); this.platform = ReplPlatform.Compass; try { this.initialDb = (mongoClient as any).s.options.dbName || DEFAULT_DB; From 8a4ec371071ad4cebef8088925c953e105373007 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Thu, 28 Jan 2021 16:56:21 +0100 Subject: [PATCH 2/3] chore(service-provider-server): Remove reduntant initialDb definition (it happens already in cli service provider) --- .../src/compass/compass-service-provider.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/service-provider-server/src/compass/compass-service-provider.ts b/packages/service-provider-server/src/compass/compass-service-provider.ts index 70a4ce1cbf..739d20b3a2 100644 --- a/packages/service-provider-server/src/compass/compass-service-provider.ts +++ b/packages/service-provider-server/src/compass/compass-service-provider.ts @@ -1,6 +1,6 @@ import CliServiceProvider from '../cli-service-provider'; import { MongoClient, MongoClientOptions } from 'mongodb'; -import { ConnectionString, DEFAULT_DB, ReplPlatform } from '@mongosh/service-provider-core'; +import { ConnectionString, ReplPlatform } from '@mongosh/service-provider-core'; interface DataService { client: { @@ -13,7 +13,6 @@ interface DataService { */ class CompassServiceProvider extends CliServiceProvider { public readonly platform: ReplPlatform; - public readonly initialDb: string; /** * Instantiate a new CompassServiceProvider with the data-service's connected * MongoClient instance. @@ -28,11 +27,6 @@ class CompassServiceProvider extends CliServiceProvider { ) { super(mongoClient, clientOptions, uri); this.platform = ReplPlatform.Compass; - try { - this.initialDb = (mongoClient as any).s.options.dbName || DEFAULT_DB; - } catch (err) { - this.initialDb = DEFAULT_DB; - } } /** * Creates a new CompassServiceProvider that uses compass From 6d5fa9c961a32f65629709c61aab0e0722561ab2 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Thu, 28 Jan 2021 17:07:18 +0100 Subject: [PATCH 3/3] fix(service-provider-server): Fix jsdoc definition for compass service provider constructor --- .../src/compass/compass-service-provider.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/service-provider-server/src/compass/compass-service-provider.ts b/packages/service-provider-server/src/compass/compass-service-provider.ts index 739d20b3a2..5a8c9b5d84 100644 --- a/packages/service-provider-server/src/compass/compass-service-provider.ts +++ b/packages/service-provider-server/src/compass/compass-service-provider.ts @@ -18,14 +18,15 @@ class CompassServiceProvider extends CliServiceProvider { * MongoClient instance. * * @param {MongoClient} mongoClient - The Node drivers' MongoClient instance. + * @param {MongoClientOptions} driverOptions * @param {string} uri - optional URI for telemetry. */ constructor( mongoClient: MongoClient, - clientOptions: MongoClientOptions = {}, + driverOptions: MongoClientOptions = {}, uri?: ConnectionString ) { - super(mongoClient, clientOptions, uri); + super(mongoClient, driverOptions, uri); this.platform = ReplPlatform.Compass; } /**