diff --git a/extensions/azuremonitor/package.json b/extensions/azuremonitor/package.json index 280b674e91..5741af2bcf 100644 --- a/extensions/azuremonitor/package.json +++ b/extensions/azuremonitor/package.json @@ -209,7 +209,7 @@ "update-grammar": "node ../../build/npm/update-grammar.js Microsoft/vscode-azuremonitor ./syntaxes/azuremonitor.tmLanguage" }, "dependencies": { - "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.1", + "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.4", "figures": "^2.0.0", "find-remove": "1.2.1", "@microsoft/ads-service-downloader": "^1.2.1", diff --git a/extensions/azuremonitor/yarn.lock b/extensions/azuremonitor/yarn.lock index f0414147bc..f48821629e 100644 --- a/extensions/azuremonitor/yarn.lock +++ b/extensions/azuremonitor/yarn.lock @@ -75,9 +75,9 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.1": - version "1.3.1" - resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/2df6982e07c0208c2b8a5f8cd4b3d65944138d15" +"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.4": + version "1.3.4" + resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/fed4e05caadd89e1f635cc247b82a96a10bc837d" dependencies: vscode-languageclient "5.2.1" diff --git a/extensions/datavirtualization/package.json b/extensions/datavirtualization/package.json index 6d2b90da4a..de257586a9 100644 --- a/extensions/datavirtualization/package.json +++ b/extensions/datavirtualization/package.json @@ -107,7 +107,7 @@ "dependencies": { "@microsoft/ads-extension-telemetry": "^3.0.1", "@microsoft/ads-service-downloader": "^1.2.1", - "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.2", + "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.4", "vscode-nls": "^5.2.0" }, "devDependencies": { diff --git a/extensions/datavirtualization/yarn.lock b/extensions/datavirtualization/yarn.lock index 2915c18708..e1efb4ac61 100644 --- a/extensions/datavirtualization/yarn.lock +++ b/extensions/datavirtualization/yarn.lock @@ -489,9 +489,9 @@ crypt@0.0.2: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== -"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.2": - version "1.3.2" - resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/e3be16cffbac882ef545e4da9654a82dc010d1b7" +"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.4": + version "1.3.4" + resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/fed4e05caadd89e1f635cc247b82a96a10bc837d" dependencies: vscode-languageclient "5.2.1" diff --git a/extensions/import/package.json b/extensions/import/package.json index 7ca9f769fe..7f9e8fbece 100644 --- a/extensions/import/package.json +++ b/extensions/import/package.json @@ -77,7 +77,7 @@ } }, "dependencies": { - "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.1", + "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.4", "htmlparser2": "^3.10.1", "@microsoft/ads-service-downloader": "^1.2.1", "@microsoft/ads-extension-telemetry": "^3.0.1", diff --git a/extensions/import/yarn.lock b/extensions/import/yarn.lock index 8bd860703e..7863f1d21a 100644 --- a/extensions/import/yarn.lock +++ b/extensions/import/yarn.lock @@ -486,9 +486,9 @@ crypt@~0.0.1: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= -"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.1": - version "1.3.1" - resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/2df6982e07c0208c2b8a5f8cd4b3d65944138d15" +"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.4": + version "1.3.4" + resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/fed4e05caadd89e1f635cc247b82a96a10bc837d" dependencies: vscode-languageclient "5.2.1" diff --git a/extensions/kusto/package.json b/extensions/kusto/package.json index ce57393061..44d07d608a 100644 --- a/extensions/kusto/package.json +++ b/extensions/kusto/package.json @@ -427,7 +427,7 @@ } }, "dependencies": { - "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.1", + "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.4", "figures": "^2.0.0", "find-remove": "1.2.1", "@microsoft/ads-service-downloader": "^1.2.1", diff --git a/extensions/kusto/yarn.lock b/extensions/kusto/yarn.lock index 95a3081d66..b5722faebd 100644 --- a/extensions/kusto/yarn.lock +++ b/extensions/kusto/yarn.lock @@ -124,9 +124,9 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.1": - version "1.3.1" - resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/2df6982e07c0208c2b8a5f8cd4b3d65944138d15" +"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.4": + version "1.3.4" + resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/fed4e05caadd89e1f635cc247b82a96a10bc837d" dependencies: vscode-languageclient "5.2.1" diff --git a/extensions/mssql/package.json b/extensions/mssql/package.json index 08f05ebd6f..39cb3688c6 100644 --- a/extensions/mssql/package.json +++ b/extensions/mssql/package.json @@ -1442,7 +1442,7 @@ "dependencies": { "@microsoft/ads-extension-telemetry": "^3.0.1", "@microsoft/ads-service-downloader": "^1.2.1", - "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.2", + "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.4", "find-remove": "1.2.1", "vscode-languageclient": "5.2.1", "vscode-nls": "^4.0.0" diff --git a/extensions/mssql/src/azureBlob/azureBlobService.ts b/extensions/mssql/src/azureBlob/azureBlobService.ts index 9f50a8793b..37142fb2f3 100644 --- a/extensions/mssql/src/azureBlob/azureBlobService.ts +++ b/extensions/mssql/src/azureBlob/azureBlobService.ts @@ -4,23 +4,19 @@ *--------------------------------------------------------------------------------------------*/ import type * as mssql from 'mssql'; -import { SqlOpsDataClient } from 'dataprotocol-client'; import * as contracts from '../contracts'; +import { BaseService, SqlOpsDataClient } from 'dataprotocol-client'; -export class AzureBlobService implements mssql.IAzureBlobService { +export class AzureBlobService extends BaseService implements mssql.IAzureBlobService { - public constructor(protected readonly client: SqlOpsDataClient) { } + public constructor(client: SqlOpsDataClient) { + super(client); + } public async createSas(ownerUri: string, blobContainerUri: string, blobContainerKey: string, storageAccountName: string, expirationDate: string): Promise { // This isn't registered as a feature since it's not something that we expect every tools client to implement currently since the usage is // specifically for ADS and SqlToolsService. const params: contracts.CreateSasParams = { ownerUri, blobContainerUri, blobContainerKey, storageAccountName, expirationDate }; - return this.client.sendRequest(contracts.CreateSasRequest.type, params).then( - undefined, - e => { - this.client.logFailedRequest(contracts.CreateSasRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.CreateSasRequest.type, params); } } diff --git a/extensions/mssql/src/baseService.ts b/extensions/mssql/src/baseService.ts deleted file mode 100644 index 21386a557b..0000000000 --- a/extensions/mssql/src/baseService.ts +++ /dev/null @@ -1,30 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import { RequestType } from 'vscode-languageclient'; -import { SqlOpsDataClient } from 'dataprotocol-client'; - -/** - * Base class containing shared code to reduce boilerplate for services - */ -export abstract class BaseService { - constructor(protected readonly client: SqlOpsDataClient) { } - - /** - * Runs the specified request wrapped in the requisite try-catch - * @param type RequestType, typically in the format 'contracts.DoThingRequest.type' - * @param params parameters to be passed to the request - * @returns result from the request - */ - protected async runWithErrorHandling(type: RequestType, params: P): Promise { - try { - const result = await this.client.sendRequest(type, params); - return result; - } catch (e) { - this.client.logFailedRequest(type, e); - throw e; - } - } -} diff --git a/extensions/mssql/src/cms/cmsService.ts b/extensions/mssql/src/cms/cmsService.ts index 5f5774348a..da3f6d1d83 100644 --- a/extensions/mssql/src/cms/cmsService.ts +++ b/extensions/mssql/src/cms/cmsService.ts @@ -6,13 +6,13 @@ import * as azdata from 'azdata'; import * as constants from '../constants'; import * as contracts from '../contracts'; -import { AppContext } from '../appContext'; -import { ConnectParams, ClientCapabilities } from 'dataprotocol-client/lib/protocol'; -import { SqlOpsDataClient, ISqlOpsFeature } from 'dataprotocol-client'; -import { ListRegisteredServersResult, ICmsService } from 'mssql'; import * as Utils from '../utils'; +import { AppContext } from '../appContext'; +import { ClientCapabilities } from 'dataprotocol-client/lib/protocol'; +import { SqlOpsDataClient, ISqlOpsFeature, BaseService } from 'dataprotocol-client'; +import { ListRegisteredServersResult, ICmsService } from 'mssql'; -export class CmsService implements ICmsService { +export class CmsService extends BaseService implements ICmsService { public static asFeature(context: AppContext): ISqlOpsFeature { return class extends CmsService { constructor(client: SqlOpsDataClient) { @@ -28,91 +28,40 @@ export class CmsService implements ICmsService { }; } - private constructor(context: AppContext, protected readonly client: SqlOpsDataClient) { + private constructor(context: AppContext, client: SqlOpsDataClient) { + super(client); context.registerService(constants.CmsService, this); } - createCmsServer(name: string, description: string, connectiondetails: azdata.ConnectionInfo, ownerUri: string): Thenable { - let connectparams: ConnectParams = { ownerUri: ownerUri, connection: connectiondetails }; - let cmsparams: contracts.CreateCentralManagementServerParams = { registeredServerName: name, registeredServerDescription: description, connectParams: connectparams }; - - return this.client.sendRequest(contracts.CreateCentralManagementServerRequest.type, cmsparams).then( - r => { - return r; - }, - e => { - this.client.logFailedRequest(contracts.CreateCentralManagementServerRequest.type, e); - return Promise.reject(e); - } - ); + async createCmsServer(name: string, description: string, connectiondetails: azdata.ConnectionInfo, ownerUri: string): Promise { + const params: contracts.CreateCentralManagementServerParams = { registeredServerName: name, registeredServerDescription: description, connectParams: { ownerUri: ownerUri, connection: connectiondetails } }; + return this.runWithErrorHandling(contracts.CreateCentralManagementServerRequest.type, params); } - getRegisteredServers(ownerUri: string, relativePath: string): Thenable { - let params: contracts.ListRegisteredServersParams = { parentOwnerUri: ownerUri, relativePath: relativePath }; - return this.client.sendRequest(contracts.ListRegisteredServersRequest.type, params).then( - r => { - return r; - }, - e => { - this.client.logFailedRequest(contracts.ListRegisteredServersRequest.type, e); - return Promise.reject(e); - } - ); + async getRegisteredServers(ownerUri: string, relativePath: string): Promise { + const params: contracts.ListRegisteredServersParams = { parentOwnerUri: ownerUri, relativePath: relativePath }; + return this.runWithErrorHandling(contracts.ListRegisteredServersRequest.type, params); } - addRegisteredServer(ownerUri: string, relativePath: string, registeredServerName: string, registeredServerDescription: string, connectionDetails: azdata.ConnectionInfo): Thenable { - let params: contracts.AddRegisteredServerParams = { parentOwnerUri: ownerUri, relativePath: relativePath, registeredServerName: registeredServerName, registeredServerDescription: registeredServerDescription, registeredServerConnectionDetails: connectionDetails }; - return this.client.sendRequest(contracts.AddRegisteredServerRequest.type, params).then( - r => { - return r; - }, - e => { - this.client.logFailedRequest(contracts.AddRegisteredServerRequest.type, e); - return Promise.reject(e); - } - ); + async addRegisteredServer(ownerUri: string, relativePath: string, registeredServerName: string, registeredServerDescription: string, connectionDetails: azdata.ConnectionInfo): Promise { + const params: contracts.AddRegisteredServerParams = { parentOwnerUri: ownerUri, relativePath: relativePath, registeredServerName: registeredServerName, registeredServerDescription: registeredServerDescription, registeredServerConnectionDetails: connectionDetails }; + return this.runWithErrorHandling(contracts.AddRegisteredServerRequest.type, params); } - removeRegisteredServer(ownerUri: string, relativePath: string, registeredServerName: string): Thenable { - let params: contracts.RemoveRegisteredServerParams = { parentOwnerUri: ownerUri, relativePath: relativePath, registeredServerName: registeredServerName }; - return this.client.sendRequest(contracts.RemoveRegisteredServerRequest.type, params).then( - r => { - return r; - }, - e => { - this.client.logFailedRequest(contracts.RemoveRegisteredServerRequest.type, e); - return Promise.reject(e); - } - ); + async removeRegisteredServer(ownerUri: string, relativePath: string, registeredServerName: string): Promise { + const params: contracts.RemoveRegisteredServerParams = { parentOwnerUri: ownerUri, relativePath: relativePath, registeredServerName: registeredServerName }; + return this.runWithErrorHandling(contracts.RemoveRegisteredServerRequest.type, params); } - addServerGroup(ownerUri: string, relativePath: string, groupName: string, groupDescription: string): Thenable { - let params: contracts.AddServerGroupParams = { parentOwnerUri: ownerUri, relativePath: relativePath, groupName: groupName, groupDescription: groupDescription }; - return this.client.sendRequest(contracts.AddServerGroupRequest.type, params).then( - r => { - return r; - }, - e => { - this.client.logFailedRequest(contracts.AddServerGroupRequest.type, e); - return Promise.reject(new Error(e.message)); - } - ); + async addServerGroup(ownerUri: string, relativePath: string, groupName: string, groupDescription: string): Promise { + const params: contracts.AddServerGroupParams = { parentOwnerUri: ownerUri, relativePath: relativePath, groupName: groupName, groupDescription: groupDescription }; + return this.runWithErrorHandling(contracts.AddServerGroupRequest.type, params); } - removeServerGroup(ownerUri: string, relativePath: string, groupName: string): Thenable { - let params: contracts.RemoveServerGroupParams = { parentOwnerUri: ownerUri, relativePath: relativePath, groupName: groupName }; - return this.client.sendRequest(contracts.RemoveServerGroupRequest.type, params).then( - r => { - return r; - }, - e => { - this.client.logFailedRequest(contracts.RemoveServerGroupRequest.type, e); - return Promise.reject(new Error(e.message)); - } - ); + async removeServerGroup(ownerUri: string, relativePath: string, groupName: string): Promise { + const params: contracts.RemoveServerGroupParams = { parentOwnerUri: ownerUri, relativePath: relativePath, groupName: groupName }; + return this.runWithErrorHandling(contracts.RemoveServerGroupRequest.type, params); } - dispose() { - - } + dispose() { } } diff --git a/extensions/mssql/src/dacfx/dacFxService.ts b/extensions/mssql/src/dacfx/dacFxService.ts index 9c4dc4d734..6a3a0855f7 100644 --- a/extensions/mssql/src/dacfx/dacFxService.ts +++ b/extensions/mssql/src/dacfx/dacFxService.ts @@ -10,9 +10,8 @@ import * as azdata from 'azdata'; import * as contracts from '../contracts'; import { AppContext } from '../appContext'; -import { ISqlOpsFeature, SqlOpsDataClient } from 'dataprotocol-client'; +import { BaseService, ISqlOpsFeature, SqlOpsDataClient } from 'dataprotocol-client'; import { ClientCapabilities } from 'vscode-languageclient'; -import { BaseService } from '../baseService'; export class DacFxService extends BaseService implements mssql.IDacFxService { public static asFeature(context: AppContext): ISqlOpsFeature { @@ -35,47 +34,47 @@ export class DacFxService extends BaseService implements mssql.IDacFxService { context.registerService(constants.DacFxService, this); } - public exportBacpac(databaseName: string, packageFilePath: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { + public async exportBacpac(databaseName: string, packageFilePath: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { const params: contracts.ExportParams = { databaseName: databaseName, packageFilePath: packageFilePath, ownerUri: ownerUri, taskExecutionMode: taskExecutionMode }; return this.runWithErrorHandling(contracts.ExportRequest.type, params); } - public importBacpac(packageFilePath: string, databaseName: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { + public async importBacpac(packageFilePath: string, databaseName: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { const params: contracts.ImportParams = { packageFilePath: packageFilePath, databaseName: databaseName, ownerUri: ownerUri, taskExecutionMode: taskExecutionMode }; return this.runWithErrorHandling(contracts.ImportRequest.type, params); } - public extractDacpac(databaseName: string, packageFilePath: string, applicationName: string, applicationVersion: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { + public async extractDacpac(databaseName: string, packageFilePath: string, applicationName: string, applicationVersion: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { const params: contracts.ExtractParams = { databaseName: databaseName, packageFilePath: packageFilePath, applicationName: applicationName, applicationVersion: applicationVersion, ownerUri: ownerUri, extractTarget: mssql.ExtractTarget.dacpac, taskExecutionMode: taskExecutionMode }; return this.runWithErrorHandling(contracts.ExtractRequest.type, params); } - public createProjectFromDatabase(databaseName: string, targetFilePath: string, applicationName: string, applicationVersion: string, ownerUri: string, extractTarget: mssql.ExtractTarget, taskExecutionMode: azdata.TaskExecutionMode, includePermissions?: boolean): Promise { + public async createProjectFromDatabase(databaseName: string, targetFilePath: string, applicationName: string, applicationVersion: string, ownerUri: string, extractTarget: mssql.ExtractTarget, taskExecutionMode: azdata.TaskExecutionMode, includePermissions?: boolean): Promise { const params: contracts.ExtractParams = { databaseName: databaseName, packageFilePath: targetFilePath, applicationName: applicationName, applicationVersion: applicationVersion, ownerUri: ownerUri, extractTarget: extractTarget, taskExecutionMode: taskExecutionMode, includePermissions: includePermissions }; return this.runWithErrorHandling(contracts.ExtractRequest.type, params); } - public deployDacpac(packageFilePath: string, targetDatabaseName: string, upgradeExisting: boolean, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode, sqlCommandVariableValues?: Record, deploymentOptions?: mssql.DeploymentOptions): Promise { + public async deployDacpac(packageFilePath: string, targetDatabaseName: string, upgradeExisting: boolean, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode, sqlCommandVariableValues?: Record, deploymentOptions?: mssql.DeploymentOptions): Promise { const params: contracts.DeployParams = { packageFilePath: packageFilePath, databaseName: targetDatabaseName, upgradeExisting: upgradeExisting, sqlCommandVariableValues: sqlCommandVariableValues, deploymentOptions: deploymentOptions, ownerUri: ownerUri, taskExecutionMode: taskExecutionMode }; return this.runWithErrorHandling(contracts.DeployRequest.type, params); } - public generateDeployScript(packageFilePath: string, targetDatabaseName: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode, sqlCommandVariableValues?: Record, deploymentOptions?: mssql.DeploymentOptions): Promise { + public async generateDeployScript(packageFilePath: string, targetDatabaseName: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode, sqlCommandVariableValues?: Record, deploymentOptions?: mssql.DeploymentOptions): Promise { const params: contracts.GenerateDeployScriptParams = { packageFilePath: packageFilePath, databaseName: targetDatabaseName, sqlCommandVariableValues: sqlCommandVariableValues, deploymentOptions: deploymentOptions, ownerUri: ownerUri, taskExecutionMode: taskExecutionMode }; return this.runWithErrorHandling(contracts.GenerateDeployScriptRequest.type, params); } - public generateDeployPlan(packageFilePath: string, targetDatabaseName: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { + public async generateDeployPlan(packageFilePath: string, targetDatabaseName: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { const params: contracts.GenerateDeployPlanParams = { packageFilePath: packageFilePath, databaseName: targetDatabaseName, ownerUri: ownerUri, taskExecutionMode: taskExecutionMode }; return this.runWithErrorHandling(contracts.GenerateDeployPlanRequest.type, params); } - public getOptionsFromProfile(profilePath: string): Promise { + public async getOptionsFromProfile(profilePath: string): Promise { const params: contracts.GetOptionsFromProfileParams = { profilePath: profilePath }; return this.runWithErrorHandling(contracts.GetOptionsFromProfileRequest.type, params); } - public validateStreamingJob(packageFilePath: string, createStreamingJobTsql: string): Promise { + public async validateStreamingJob(packageFilePath: string, createStreamingJobTsql: string): Promise { const params: contracts.ValidateStreamingJobParams = { packageFilePath: packageFilePath, createStreamingJobTsql: createStreamingJobTsql }; return this.runWithErrorHandling(contracts.ValidateStreamingJobRequest.type, params); } diff --git a/extensions/mssql/src/languageExtension/languageExtensionService.ts b/extensions/mssql/src/languageExtension/languageExtensionService.ts index a407844b08..29a2385059 100644 --- a/extensions/mssql/src/languageExtension/languageExtensionService.ts +++ b/extensions/mssql/src/languageExtension/languageExtensionService.ts @@ -3,16 +3,16 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { AppContext } from '../appContext'; -import { SqlOpsDataClient, ISqlOpsFeature } from 'dataprotocol-client'; import * as constants from '../constants'; import * as mssql from 'mssql'; import * as Utils from '../utils'; -import { ClientCapabilities } from 'vscode-languageclient'; import * as contracts from '../contracts'; -export class LanguageExtensionService implements mssql.ILanguageExtensionService { +import { AppContext } from '../appContext'; +import { ClientCapabilities } from 'vscode-languageclient'; +import { SqlOpsDataClient, ISqlOpsFeature, BaseService } from 'dataprotocol-client'; +export class LanguageExtensionService extends BaseService implements mssql.ILanguageExtensionService { public static asFeature(context: AppContext): ISqlOpsFeature { return class extends LanguageExtensionService { constructor(client: SqlOpsDataClient) { @@ -28,44 +28,23 @@ export class LanguageExtensionService implements mssql.ILanguageExtensionService }; } - private constructor(context: AppContext, protected readonly client: SqlOpsDataClient) { + private constructor(context: AppContext, client: SqlOpsDataClient) { + super(client); context.registerService(constants.LanguageExtensionService, this); } - public listLanguages(ownerUri: string): Thenable { + public async listLanguages(ownerUri: string): Promise { const params: contracts.LanguageExtensionRequestParam = { ownerUri: ownerUri }; - return this.client.sendRequest(contracts.LanguageExtensibilityListRequest.type, params).then( - r => { - return r.languages; - }, - e => { - this.client.logFailedRequest(contracts.LanguageExtensibilityListRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.LanguageExtensibilityListRequest.type, params).then((r) => r.languages); } - public updateLanguage(ownerUri: string, language: mssql.ExternalLanguage): Thenable { + public async updateLanguage(ownerUri: string, language: mssql.ExternalLanguage): Promise { const params: contracts.ExternalLanguageUpdateRequestParam = { ownerUri: ownerUri, language: language }; - return this.client.sendRequest(contracts.LanguageExtensibilityUpdateRequest.type, params).then( - () => { - }, - e => { - this.client.logFailedRequest(contracts.LanguageExtensibilityUpdateRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.LanguageExtensibilityUpdateRequest.type, params).then(); } - public deleteLanguage(ownerUri: string, languageName: string): Thenable { + public async deleteLanguage(ownerUri: string, languageName: string): Promise { const params: contracts.ExternalLanguageRequestParam = { ownerUri: ownerUri, languageName: languageName }; - return this.client.sendRequest(contracts.LanguageExtensibilityDeleteRequest.type, params).then( - () => { - }, - e => { - this.client.logFailedRequest(contracts.LanguageExtensibilityDeleteRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.LanguageExtensibilityDeleteRequest.type, params).then(); } } diff --git a/extensions/mssql/src/notebookConvert/notebookConvertService.ts b/extensions/mssql/src/notebookConvert/notebookConvertService.ts index 1b2e13a09c..a9acdc367f 100644 --- a/extensions/mssql/src/notebookConvert/notebookConvertService.ts +++ b/extensions/mssql/src/notebookConvert/notebookConvertService.ts @@ -3,18 +3,19 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { AppContext } from '../appContext'; -import { SqlOpsDataClient, ISqlOpsFeature } from 'dataprotocol-client'; -import { ClientCapabilities } from 'vscode-languageclient'; import * as constants from '../constants'; import * as contracts from '../contracts'; +import { AppContext } from '../appContext'; +import { SqlOpsDataClient, ISqlOpsFeature, BaseService } from 'dataprotocol-client'; +import { ClientCapabilities } from 'vscode-languageclient'; + export interface INotebookConvertService { convertNotebookToSql(content: string): Promise; convertSqlToNotebook(content: string): Promise; } -export class NotebookConvertService implements INotebookConvertService { +export class NotebookConvertService extends BaseService implements INotebookConvertService { public static asFeature(context: AppContext): ISqlOpsFeature { return class extends NotebookConvertService { constructor(client: SqlOpsDataClient) { @@ -29,30 +30,17 @@ export class NotebookConvertService implements INotebookConvertService { }; } - private constructor(context: AppContext, protected readonly client: SqlOpsDataClient) { + private constructor(context: AppContext, client: SqlOpsDataClient) { + super(client); context.registerService(constants.NotebookConvertService, this); } async convertNotebookToSql(content: string): Promise { let params: contracts.ConvertNotebookToSqlParams = { content: content }; - try { - return this.client.sendRequest(contracts.ConvertNotebookToSqlRequest.type, params); - } - catch (e) { - this.client.logFailedRequest(contracts.ConvertNotebookToSqlRequest.type, e); - } - - return undefined; + return this.runWithErrorHandling(contracts.ConvertNotebookToSqlRequest.type, params); } async convertSqlToNotebook(content: string): Promise { let params: contracts.ConvertSqlToNotebookParams = { clientUri: content }; - try { - return this.client.sendRequest(contracts.ConvertSqlToNotebookRequest.type, params); - } - catch (e) { - this.client.logFailedRequest(contracts.ConvertSqlToNotebookRequest.type, e); - } - - return undefined; + return this.runWithErrorHandling(contracts.ConvertSqlToNotebookRequest.type, params); } } diff --git a/extensions/mssql/src/objectManagement/objectManagementService.ts b/extensions/mssql/src/objectManagement/objectManagementService.ts index 9f379e4d93..58538faf37 100644 --- a/extensions/mssql/src/objectManagement/objectManagementService.ts +++ b/extensions/mssql/src/objectManagement/objectManagementService.ts @@ -3,16 +3,17 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ISqlOpsFeature, SqlOpsDataClient } from 'dataprotocol-client'; -import { ObjectManagement, IObjectManagementService } from 'mssql'; -import { ClientCapabilities } from 'vscode-languageclient'; -import { AppContext } from '../appContext'; import * as Utils from '../utils'; import * as constants from '../constants'; import * as contracts from '../contracts'; + +import { BaseService, ISqlOpsFeature, SqlOpsDataClient } from 'dataprotocol-client'; +import { ObjectManagement, IObjectManagementService } from 'mssql'; +import { ClientCapabilities } from 'vscode-languageclient'; +import { AppContext } from '../appContext'; import { AuthenticationType, UserType } from './constants'; -export class ObjectManagementService implements IObjectManagementService { +export class ObjectManagementService extends BaseService implements IObjectManagementService { public static asFeature(context: AppContext): ISqlOpsFeature { return class extends ObjectManagementService { constructor(client: SqlOpsDataClient) { @@ -28,132 +29,68 @@ export class ObjectManagementService implements IObjectManagementService { }; } - private constructor(context: AppContext, protected readonly client: SqlOpsDataClient) { + private constructor(context: AppContext, client: SqlOpsDataClient) { + super(client); context.registerService(constants.ObjectManagementService, this); } - initializeLoginView(connectionUri: string, contextId: string, isNewObject: boolean, name: string | undefined): Thenable { + + async initializeLoginView(connectionUri: string, contextId: string, isNewObject: boolean, name: string | undefined): Promise { const params: contracts.InitializeLoginViewRequestParams = { connectionUri, contextId, isNewObject, name }; - return this.client.sendRequest(contracts.InitializeLoginViewRequest.type, params).then( - r => { - return r; - }, - e => { - this.client.logFailedRequest(contracts.InitializeLoginViewRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.InitializeLoginViewRequest.type, params); } - createLogin(contextId: string, login: ObjectManagement.Login): Thenable { + + async createLogin(contextId: string, login: ObjectManagement.Login): Promise { const params: contracts.CreateLoginRequestParams = { contextId, login }; - return this.client.sendRequest(contracts.CreateLoginRequest.type, params).then( - r => { }, - e => { - this.client.logFailedRequest(contracts.CreateLoginRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.CreateLoginRequest.type, params); } - updateLogin(contextId: string, login: ObjectManagement.Login): Thenable { + + async updateLogin(contextId: string, login: ObjectManagement.Login): Promise { const params: contracts.UpdateLoginRequestParams = { contextId, login }; - return this.client.sendRequest(contracts.UpdateLoginRequest.type, params).then( - r => { }, - e => { - this.client.logFailedRequest(contracts.UpdateLoginRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.UpdateLoginRequest.type, params); } - scriptLogin(contextId: string, login: ObjectManagement.Login): Thenable { + + async scriptLogin(contextId: string, login: ObjectManagement.Login): Promise { const params: contracts.ScriptLoginRequestParams = { contextId, login }; - return this.client.sendRequest(contracts.ScriptLoginRequest.type, params).then( - r => { return r; }, - e => { - this.client.logFailedRequest(contracts.ScriptLoginRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.ScriptLoginRequest.type, params); } - disposeLoginView(contextId: string): Thenable { + + async disposeLoginView(contextId: string): Promise { const params: contracts.DisposeLoginViewRequestParams = { contextId }; - return this.client.sendRequest(contracts.DisposeLoginViewRequest.type, params).then( - r => { }, - e => { - this.client.logFailedRequest(contracts.DisposeLoginViewRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.DisposeLoginViewRequest.type, params); } - initializeUserView(connectionUri: string, database: string, contextId: string, isNewObject: boolean, name: string | undefined): Thenable { + + async initializeUserView(connectionUri: string, database: string, contextId: string, isNewObject: boolean, name: string | undefined): Promise { const params: contracts.InitializeUserViewRequestParams = { connectionUri, database, contextId, isNewObject, name }; - return this.client.sendRequest(contracts.InitializeUserViewRequest.type, params).then( - r => { - return r; - }, - e => { - this.client.logFailedRequest(contracts.InitializeUserViewRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.InitializeUserViewRequest.type, params); } - createUser(contextId: string, user: ObjectManagement.User): Thenable { + + async createUser(contextId: string, user: ObjectManagement.User): Promise { const params: contracts.CreateUserRequestParams = { contextId, user }; - return this.client.sendRequest(contracts.CreateUserRequest.type, params).then( - r => { }, - e => { - this.client.logFailedRequest(contracts.CreateUserRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.CreateUserRequest.type, params); } - updateUser(contextId: string, user: ObjectManagement.User): Thenable { + + async updateUser(contextId: string, user: ObjectManagement.User): Promise { const params: contracts.UpdateUserRequestParams = { contextId, user }; - return this.client.sendRequest(contracts.UpdateUserRequest.type, params).then( - r => { }, - e => { - this.client.logFailedRequest(contracts.UpdateUserRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.UpdateUserRequest.type, params); } - scriptUser(contextId: string, user: ObjectManagement.User): Thenable { + + async scriptUser(contextId: string, user: ObjectManagement.User): Promise { const params: contracts.ScriptUserRequestParams = { contextId, user }; - return this.client.sendRequest(contracts.ScriptUserRequest.type, params).then( - r => { return r; }, - e => { - this.client.logFailedRequest(contracts.ScriptUserRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.ScriptUserRequest.type, params); } - disposeUserView(contextId: string): Thenable { + + async disposeUserView(contextId: string): Promise { const params: contracts.DisposeUserViewRequestParams = { contextId }; - return this.client.sendRequest(contracts.DisposeUserViewRequest.type, params).then( - r => { }, - e => { - this.client.logFailedRequest(contracts.DisposeUserViewRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.DisposeUserViewRequest.type, params); } - rename(connectionUri: string, objectUrn: string, newName: string): Thenable { + + async rename(connectionUri: string, objectUrn: string, newName: string): Promise { const params: contracts.RenameObjectRequestParams = { connectionUri, objectUrn, newName }; - return this.client.sendRequest(contracts.RenameObjectRequest.type, params).then( - r => { }, - e => { - this.client.logFailedRequest(contracts.RenameObjectRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.RenameObjectRequest.type, params); } - drop(connectionUri: string, objectUrn: string): Thenable { + async drop(connectionUri: string, objectUrn: string): Promise { const params: contracts.DropObjectRequestParams = { connectionUri, objectUrn }; - return this.client.sendRequest(contracts.DropObjectRequest.type, params).then( - r => { }, - e => { - this.client.logFailedRequest(contracts.DropObjectRequest.type, e); - return Promise.reject(e); - } - ); + return this.runWithErrorHandling(contracts.DropObjectRequest.type, params); } } diff --git a/extensions/mssql/src/schemaCompare/schemaCompareService.ts b/extensions/mssql/src/schemaCompare/schemaCompareService.ts index 42aafb1d27..62851b5d13 100644 --- a/extensions/mssql/src/schemaCompare/schemaCompareService.ts +++ b/extensions/mssql/src/schemaCompare/schemaCompareService.ts @@ -3,15 +3,15 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { AppContext } from '../appContext'; -import { SqlOpsDataClient, ISqlOpsFeature } from 'dataprotocol-client'; import * as constants from '../constants'; import * as mssql from 'mssql'; import * as Utils from '../utils'; -import { ClientCapabilities } from 'vscode-languageclient'; import * as azdata from 'azdata'; import * as contracts from '../contracts'; -import { BaseService } from '../baseService'; + +import { ClientCapabilities } from 'vscode-languageclient'; +import { AppContext } from '../appContext'; +import { SqlOpsDataClient, ISqlOpsFeature, BaseService } from 'dataprotocol-client'; export class SchemaCompareService extends BaseService implements mssql.ISchemaCompareService { public static asFeature(context: AppContext): ISqlOpsFeature { @@ -34,47 +34,47 @@ export class SchemaCompareService extends BaseService implements mssql.ISchemaCo context.registerService(constants.SchemaCompareService, this); } - public schemaCompare(operationId: string, sourceEndpointInfo: mssql.SchemaCompareEndpointInfo, targetEndpointInfo: mssql.SchemaCompareEndpointInfo, taskExecutionMode: azdata.TaskExecutionMode, deploymentOptions: mssql.DeploymentOptions): Promise { + public async schemaCompare(operationId: string, sourceEndpointInfo: mssql.SchemaCompareEndpointInfo, targetEndpointInfo: mssql.SchemaCompareEndpointInfo, taskExecutionMode: azdata.TaskExecutionMode, deploymentOptions: mssql.DeploymentOptions): Promise { const params: contracts.SchemaCompareParams = { operationId: operationId, sourceEndpointInfo: sourceEndpointInfo, targetEndpointInfo: targetEndpointInfo, taskExecutionMode: taskExecutionMode, deploymentOptions: deploymentOptions }; return this.runWithErrorHandling(contracts.SchemaCompareRequest.type, params); } - public schemaCompareGenerateScript(operationId: string, targetServerName: string, targetDatabaseName: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { + public async schemaCompareGenerateScript(operationId: string, targetServerName: string, targetDatabaseName: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { const params: contracts.SchemaCompareGenerateScriptParams = { operationId: operationId, targetServerName: targetServerName, targetDatabaseName: targetDatabaseName, taskExecutionMode: taskExecutionMode }; return this.runWithErrorHandling(contracts.SchemaCompareGenerateScriptRequest.type, params); } - public schemaComparePublishDatabaseChanges(operationId: string, targetServerName: string, targetDatabaseName: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { + public async schemaComparePublishDatabaseChanges(operationId: string, targetServerName: string, targetDatabaseName: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { const params: contracts.SchemaComparePublishDatabaseChangesParams = { operationId: operationId, targetServerName: targetServerName, targetDatabaseName: targetDatabaseName, taskExecutionMode: taskExecutionMode }; return this.runWithErrorHandling(contracts.SchemaComparePublishDatabaseChangesRequest.type, params); } - public schemaComparePublishProjectChanges(operationId: string, targetProjectPath: string, targetFolderStructure: mssql.ExtractTarget, taskExecutionMode: azdata.TaskExecutionMode): Promise { + public async schemaComparePublishProjectChanges(operationId: string, targetProjectPath: string, targetFolderStructure: mssql.ExtractTarget, taskExecutionMode: azdata.TaskExecutionMode): Promise { const params: contracts.SchemaComparePublishProjectChangesParams = { operationId: operationId, targetProjectPath: targetProjectPath, targetFolderStructure: targetFolderStructure, taskExecutionMode: taskExecutionMode }; return this.runWithErrorHandling(contracts.SchemaComparePublishProjectChangesRequest.type, params); } - public schemaCompareGetDefaultOptions(): Promise { + public async schemaCompareGetDefaultOptions(): Promise { const params: contracts.SchemaCompareGetOptionsParams = {}; return this.runWithErrorHandling(contracts.SchemaCompareGetDefaultOptionsRequest.type, params); } - public schemaCompareIncludeExcludeNode(operationId: string, diffEntry: mssql.DiffEntry, includeRequest: boolean, taskExecutionMode: azdata.TaskExecutionMode): Promise { + public async schemaCompareIncludeExcludeNode(operationId: string, diffEntry: mssql.DiffEntry, includeRequest: boolean, taskExecutionMode: azdata.TaskExecutionMode): Promise { const params: contracts.SchemaCompareNodeParams = { operationId: operationId, diffEntry, includeRequest, taskExecutionMode: taskExecutionMode }; return this.runWithErrorHandling(contracts.SchemaCompareIncludeExcludeNodeRequest.type, params); } - public schemaCompareOpenScmp(filePath: string): Promise { + public async schemaCompareOpenScmp(filePath: string): Promise { const params: contracts.SchemaCompareOpenScmpParams = { filePath: filePath }; return this.runWithErrorHandling(contracts.SchemaCompareOpenScmpRequest.type, params); } - public schemaCompareSaveScmp(sourceEndpointInfo: mssql.SchemaCompareEndpointInfo, targetEndpointInfo: mssql.SchemaCompareEndpointInfo, taskExecutionMode: azdata.TaskExecutionMode, deploymentOptions: mssql.DeploymentOptions, scmpFilePath: string, excludedSourceObjects: mssql.SchemaCompareObjectId[], excludedTargetObjects: mssql.SchemaCompareObjectId[]): Promise { + public async schemaCompareSaveScmp(sourceEndpointInfo: mssql.SchemaCompareEndpointInfo, targetEndpointInfo: mssql.SchemaCompareEndpointInfo, taskExecutionMode: azdata.TaskExecutionMode, deploymentOptions: mssql.DeploymentOptions, scmpFilePath: string, excludedSourceObjects: mssql.SchemaCompareObjectId[], excludedTargetObjects: mssql.SchemaCompareObjectId[]): Promise { const params: contracts.SchemaCompareSaveScmpParams = { sourceEndpointInfo: sourceEndpointInfo, targetEndpointInfo: targetEndpointInfo, taskExecutionMode: taskExecutionMode, deploymentOptions: deploymentOptions, scmpFilePath: scmpFilePath, excludedSourceObjects: excludedSourceObjects, excludedTargetObjects: excludedTargetObjects }; return this.runWithErrorHandling(contracts.SchemaCompareSaveScmpRequest.type, params); } - public schemaCompareCancel(operationId: string): Promise { + public async schemaCompareCancel(operationId: string): Promise { const params: contracts.SchemaCompareCancelParams = { operationId: operationId }; return this.runWithErrorHandling(contracts.SchemaCompareCancellationRequest.type, params); } diff --git a/extensions/mssql/src/sqlAssessment/sqlAssessmentService.ts b/extensions/mssql/src/sqlAssessment/sqlAssessmentService.ts index a6c19985f8..d5b01382e5 100644 --- a/extensions/mssql/src/sqlAssessment/sqlAssessmentService.ts +++ b/extensions/mssql/src/sqlAssessment/sqlAssessmentService.ts @@ -4,15 +4,15 @@ *--------------------------------------------------------------------------------------------*/ import * as mssql from 'mssql'; -import { AppContext } from '../appContext'; -import { SqlOpsDataClient, ISqlOpsFeature } from 'dataprotocol-client'; -import { ClientCapabilities } from 'vscode-languageclient'; -import * as constants from '../constants'; import * as azdata from 'azdata'; import * as contracts from '../contracts'; +import * as constants from '../constants'; +import { AppContext } from '../appContext'; +import { SqlOpsDataClient, ISqlOpsFeature, BaseService } from 'dataprotocol-client'; +import { ClientCapabilities } from 'vscode-languageclient'; -export class SqlAssessmentService implements mssql.ISqlAssessmentService { +export class SqlAssessmentService extends BaseService implements mssql.ISqlAssessmentService { public static asFeature(context: AppContext): ISqlOpsFeature { return class extends SqlAssessmentService { constructor(client: SqlOpsDataClient) { @@ -27,38 +27,20 @@ export class SqlAssessmentService implements mssql.ISqlAssessmentService { }; } - private constructor(context: AppContext, protected readonly client: SqlOpsDataClient) { + private constructor(context: AppContext, client: SqlOpsDataClient) { + super(client); context.registerService(constants.SqlAssessmentService, this); } async assessmentInvoke(ownerUri: string, targetType: azdata.sqlAssessment.SqlAssessmentTargetType): Promise { let params: contracts.SqlAssessmentParams = { ownerUri: ownerUri, targetType: targetType }; - try { - return await this.client.sendRequest(contracts.SqlAssessmentInvokeRequest.type, params); - } - catch (e) { - this.client.logFailedRequest(contracts.SqlAssessmentInvokeRequest.type, e); - throw e; - } + return this.runWithErrorHandling(contracts.SqlAssessmentInvokeRequest.type, params); } async getAssessmentItems(ownerUri: string, targetType: azdata.sqlAssessment.SqlAssessmentTargetType): Promise { let params: contracts.SqlAssessmentParams = { ownerUri: ownerUri, targetType: targetType }; - try { - return await this.client.sendRequest(contracts.GetSqlAssessmentItemsRequest.type, params); - } - catch (e) { - this.client.logFailedRequest(contracts.GetSqlAssessmentItemsRequest.type, e); - throw e; - } + return this.runWithErrorHandling(contracts.GetSqlAssessmentItemsRequest.type, params); } async generateAssessmentScript(items: azdata.SqlAssessmentResultItem[], targetServerName: string, targetDatabaseName: string, taskExecutionMode: azdata.TaskExecutionMode): Promise { let params: contracts.GenerateSqlAssessmentScriptParams = { items: items, targetServerName: targetServerName, targetDatabaseName: targetDatabaseName, taskExecutionMode: taskExecutionMode }; - try { - return await this.client.sendRequest(contracts.GenerateSqlAssessmentScriptRequest.type, params); - } - catch (e) { - this.client.logFailedRequest(contracts.GenerateSqlAssessmentScriptRequest.type, e); - throw e; - } + return this.runWithErrorHandling(contracts.GenerateSqlAssessmentScriptRequest.type, params); } - } diff --git a/extensions/mssql/src/sqlProjects/sqlProjectsService.ts b/extensions/mssql/src/sqlProjects/sqlProjectsService.ts index 4b465144b1..92dfec0d3e 100644 --- a/extensions/mssql/src/sqlProjects/sqlProjectsService.ts +++ b/extensions/mssql/src/sqlProjects/sqlProjectsService.ts @@ -8,10 +8,10 @@ import * as constants from '../constants'; import * as Utils from '../utils'; import * as azdata from 'azdata'; import * as contracts from '../contracts'; + import { AppContext } from '../appContext'; -import { ISqlOpsFeature, SqlOpsDataClient } from 'dataprotocol-client'; +import { BaseService, ISqlOpsFeature, SqlOpsDataClient } from 'dataprotocol-client'; import { ClientCapabilities } from 'vscode-languageclient'; -import { BaseService } from '../baseService'; export class SqlProjectsService extends BaseService implements mssql.ISqlProjectsService { public static asFeature(context: AppContext): ISqlOpsFeature { diff --git a/extensions/mssql/yarn.lock b/extensions/mssql/yarn.lock index 7d3c06bdea..21a7187226 100644 --- a/extensions/mssql/yarn.lock +++ b/extensions/mssql/yarn.lock @@ -425,9 +425,9 @@ crypt@~0.0.1: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= -"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.2": - version "1.3.2" - resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/e3be16cffbac882ef545e4da9654a82dc010d1b7" +"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.4": + version "1.3.4" + resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/fed4e05caadd89e1f635cc247b82a96a10bc837d" dependencies: vscode-languageclient "5.2.1" diff --git a/extensions/sql-migration/package.json b/extensions/sql-migration/package.json index 37185ab602..ad1631464c 100644 --- a/extensions/sql-migration/package.json +++ b/extensions/sql-migration/package.json @@ -162,7 +162,7 @@ ] }, "dependencies": { - "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.1", + "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#1.3.4", "@microsoft/ads-service-downloader": "^1.2.1", "@microsoft/ads-extension-telemetry": "^3.0.1", "uuid": "^8.3.2", diff --git a/extensions/sql-migration/yarn.lock b/extensions/sql-migration/yarn.lock index f939323ff7..9b34b1edac 100644 --- a/extensions/sql-migration/yarn.lock +++ b/extensions/sql-migration/yarn.lock @@ -62,9 +62,9 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.1": - version "1.3.1" - resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/2df6982e07c0208c2b8a5f8cd4b3d65944138d15" +"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#1.3.4": + version "1.3.4" + resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/fed4e05caadd89e1f635cc247b82a96a10bc837d" dependencies: vscode-languageclient "5.2.1"