Skip to content

Commit b61f6fb

Browse files
authored
fix(service-provider-server): Fix constructor types in CliServiceProvider (#590)
* fix(service-provider-server): Fix clientOptions type in cli service provider and dependants * chore(service-provider-server): Remove reduntant initialDb definition (it happens already in cli service provider) * fix(service-provider-server): Fix jsdoc definition for compass service provider constructor
1 parent 732d1ed commit b61f6fb

File tree

3 files changed

+13
-15
lines changed

3 files changed

+13
-15
lines changed

packages/service-provider-server/src/cli-service-provider.integration.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ describe('CliServiceProvider [integration]', function() {
106106
describe('.getConnectionInfo', () => {
107107
context('when a uri has been passed', () => {
108108
it('returns the connection\'s info', async() => {
109-
const instance = new CliServiceProvider(client, connectionString);
109+
const instance = new CliServiceProvider(client, {}, new ConnectionString(connectionString));
110110
const connectionInfo = await instance.getConnectionInfo();
111111

112112
expect(Object.keys(connectionInfo)).to.deep.equal([

packages/service-provider-server/src/cli-service-provider.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,10 @@ class CliServiceProvider extends ServiceProviderCore implements ServiceProvider
198198
* MongoClient instance.
199199
*
200200
* @param {MongoClient} mongoClient - The Node drivers' MongoClient instance.
201-
* @param clientOptions
201+
* @param {MongoClientOptions} clientOptions
202202
* @param {string} uri - optional URI for telemetry.
203203
*/
204-
constructor(mongoClient: MongoClient, clientOptions = {}, uri?: ConnectionString) {
204+
constructor(mongoClient: MongoClient, clientOptions: MongoClientOptions = {}, uri?: ConnectionString) {
205205
super(bsonlib);
206206
this.mongoClient = mongoClient;
207207
this.uri = uri;
@@ -222,12 +222,11 @@ class CliServiceProvider extends ServiceProviderCore implements ServiceProvider
222222
async getNewConnection(uri: string, options: MongoClientOptions = {}): Promise<CliServiceProvider> {
223223
const connectionString = new ConnectionString(uri);
224224
const clientOptions = processDriverOptions(options);
225-
226225
const mongoClient = await connectMongoClient(
227226
connectionString.toString(),
228227
clientOptions
229228
);
230-
return new CliServiceProvider(mongoClient, connectionString);
229+
return new CliServiceProvider(mongoClient, clientOptions, connectionString);
231230
}
232231

233232
async getConnectionInfo(): Promise<ConnectionInfo> {

packages/service-provider-server/src/compass/compass-service-provider.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import CliServiceProvider from '../cli-service-provider';
2-
import { MongoClient } from 'mongodb';
3-
import { DEFAULT_DB, ReplPlatform } from '@mongosh/service-provider-core';
2+
import { MongoClient, MongoClientOptions } from 'mongodb';
3+
import { ConnectionString, ReplPlatform } from '@mongosh/service-provider-core';
44

55
interface DataService {
66
client: {
@@ -13,22 +13,21 @@ interface DataService {
1313
*/
1414
class CompassServiceProvider extends CliServiceProvider {
1515
public readonly platform: ReplPlatform;
16-
public readonly initialDb: string;
1716
/**
1817
* Instantiate a new CompassServiceProvider with the data-service's connected
1918
* MongoClient instance.
2019
*
2120
* @param {MongoClient} mongoClient - The Node drivers' MongoClient instance.
21+
* @param {MongoClientOptions} driverOptions
2222
* @param {string} uri - optional URI for telemetry.
2323
*/
24-
constructor(mongoClient: MongoClient, uri?: string) {
25-
super(mongoClient, uri);
24+
constructor(
25+
mongoClient: MongoClient,
26+
driverOptions: MongoClientOptions = {},
27+
uri?: ConnectionString
28+
) {
29+
super(mongoClient, driverOptions, uri);
2630
this.platform = ReplPlatform.Compass;
27-
try {
28-
this.initialDb = (mongoClient as any).s.options.dbName || DEFAULT_DB;
29-
} catch (err) {
30-
this.initialDb = DEFAULT_DB;
31-
}
3231
}
3332
/**
3433
* Creates a new CompassServiceProvider that uses compass

0 commit comments

Comments
 (0)