/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import * as azdata from 'azdata'; import * as vscode from 'vscode'; import { v4 as uuid } from 'uuid'; export const ProviderId: string = 'TESTPROVIDER'; /** * This class implements the ConnectionProvider interface that allows users to connect to the data services. * This will be used by various features in ADS, e.g. connection dialog and query editor. */ export class ConnectionProvider implements azdata.ConnectionProvider { private onConnectionCompleteEmitter: vscode.EventEmitter = new vscode.EventEmitter(); onConnectionComplete: vscode.Event = this.onConnectionCompleteEmitter.event; private onIntelliSenseCacheCompleteEmitter: vscode.EventEmitter = new vscode.EventEmitter(); onIntelliSenseCacheComplete: vscode.Event = this.onIntelliSenseCacheCompleteEmitter.event; private onConnectionChangedEmitter: vscode.EventEmitter = new vscode.EventEmitter(); onConnectionChanged: vscode.Event = this.onConnectionChangedEmitter.event; connect(connectionUri: string, connectionInfo: azdata.ConnectionInfo): Promise { this.onConnectionCompleteEmitter.fire({ connectionId: uuid(), ownerUri: connectionUri, messages: '', errorMessage: '', errorNumber: 0, connectionSummary: { serverName: '', userName: '' }, serverInfo: { serverReleaseVersion: 1, engineEditionId: 1, serverVersion: '1.0', serverLevel: '', serverEdition: '', isCloud: true, azureVersion: 1, osVersion: '', options: {} } }); return Promise.resolve(true); } disconnect(connectionUri: string): Promise { return Promise.resolve(true); } cancelConnect(connectionUri: string): Promise { return Promise.resolve(true); } listDatabases(connectionUri: string): Promise { return Promise.resolve({ databaseNames: ['master', 'msdb'] }); } changeDatabase(connectionUri: string, newDatabase: string): Promise { return Promise.resolve(true); } rebuildIntelliSenseCache(connectionUri: string): Promise { return Promise.resolve(); } getConnectionString(connectionUri: string, includePassword: boolean): Promise { return Promise.resolve('conn_string'); } buildConnectionInfo?(connectionString: string): Promise { return Promise.resolve({ options: [] }); } registerOnConnectionComplete(handler: (connSummary: azdata.ConnectionInfoSummary) => any): void { this.onConnectionComplete((e) => { handler(e); }); } registerOnIntelliSenseCacheComplete(handler: (connectionUri: string) => any): void { console.log('IntellisenseCache complete'); } registerOnConnectionChanged(handler: (changedConnInfo: azdata.ChangedConnectionInfo) => any): void { console.log('Connection changed'); } handle?: number; providerId: string = ProviderId; }