Move protocol client out (#643)

* close

* connection is working

* formatting

* adds all

* formatting

* formatting and changing how features are initialized

* formatting

* changed named of typings file

* update

* updated to use dataprotocol npm

* formatting

* removed unneeded logging

* readd npm shrinkwrap

* still not working

* removed unnecessary codfe

* addressed comments

* readded azure resource provider

* fix capabilities cacheing

* added backwards capat for older protocol

* update shrinkwrap

* update shrinkwrap

* updated shrinkwrap

* fixed tests

* removed dead code

* remove dead code

* fix compile

* remove backcompat stuff

* change location of npm

* vbump sqltools

* merge master

* fix imports

* fix build breaks

* update for sqlops

* update yarn dependencies
This commit is contained in:
Anthony Dresser
2018-02-20 13:38:16 -08:00
committed by GitHub
parent 8a9ee40524
commit 8570910a43
159 changed files with 4421 additions and 7180 deletions

View File

@@ -5,7 +5,7 @@
'use strict';
import * as data from 'data';
import * as sqlops from 'sqlops';
import * as nls from 'vs/nls';
import * as platform from 'vs/platform/registry/common/platform';
import * as statusbar from 'vs/workbench/browser/parts/statusbar/statusbar';
@@ -39,8 +39,8 @@ export class AccountManagementService implements IAccountManagementService {
private _addAccountProviderEmitter: Emitter<AccountProviderAddedEventParams>;
public get addAccountProviderEvent(): Event<AccountProviderAddedEventParams> { return this._addAccountProviderEmitter.event; }
private _removeAccountProviderEmitter: Emitter<data.AccountProviderMetadata>;
public get removeAccountProviderEvent(): Event<data.AccountProviderMetadata> { return this._removeAccountProviderEmitter.event; }
private _removeAccountProviderEmitter: Emitter<sqlops.AccountProviderMetadata>;
public get removeAccountProviderEvent(): Event<sqlops.AccountProviderMetadata> { return this._removeAccountProviderEmitter.event; }
private _updateAccountListEmitter: Emitter<UpdateAccountListEventParams>;
public get updateAccountListEvent(): Event<UpdateAccountListEventParams> { return this._updateAccountListEmitter.event; }
@@ -61,7 +61,7 @@ export class AccountManagementService implements IAccountManagementService {
// Setup the event emitters
this._addAccountProviderEmitter = new Emitter<AccountProviderAddedEventParams>();
this._removeAccountProviderEmitter = new Emitter<data.AccountProviderMetadata>();
this._removeAccountProviderEmitter = new Emitter<sqlops.AccountProviderMetadata>();
this._updateAccountListEmitter = new Emitter<UpdateAccountListEventParams>();
// Register status bar item
@@ -87,7 +87,7 @@ export class AccountManagementService implements IAccountManagementService {
* account's properties have been updated (usually when the account goes stale).
* @param {Account} updatedAccount Account with the updated properties
*/
public accountUpdated(updatedAccount: data.Account): Thenable<void> {
public accountUpdated(updatedAccount: sqlops.Account): Thenable<void> {
let self = this;
// 1) Update the account in the store
@@ -155,7 +155,7 @@ export class AccountManagementService implements IAccountManagementService {
* @param {Account} account account to refresh
* @return {Thenable<Account>} Promise to return an account
*/
public refreshAccount(account: data.Account): Thenable<data.Account> {
public refreshAccount(account: sqlops.Account): Thenable<sqlops.Account> {
let self = this;
return this.doWithProvider(account.key.providerId, (provider) => {
@@ -186,7 +186,7 @@ export class AccountManagementService implements IAccountManagementService {
* Retrieves metadata of all providers that have been registered
* @returns {Thenable<AccountProviderMetadata[]>} Registered account providers
*/
public getAccountProviderMetadata(): Thenable<data.AccountProviderMetadata[]> {
public getAccountProviderMetadata(): Thenable<sqlops.AccountProviderMetadata[]> {
return Promise.resolve(Object.values(this._providers).map(provider => provider.metadata));
}
@@ -195,7 +195,7 @@ export class AccountManagementService implements IAccountManagementService {
* @param {string} providerId ID of the provider the returned accounts belong to
* @returns {Thenable<Account[]>} Promise to return a list of accounts
*/
public getAccountsForProvider(providerId: string): Thenable<data.Account[]> {
public getAccountsForProvider(providerId: string): Thenable<sqlops.Account[]> {
let self = this;
// Make sure the provider exists before attempting to retrieve accounts
@@ -219,7 +219,7 @@ export class AccountManagementService implements IAccountManagementService {
* @param {Account} account Account to generate security token for
* @return {Thenable<{}>} Promise to return the security token
*/
public getSecurityToken(account: data.Account): Thenable<{}> {
public getSecurityToken(account: sqlops.Account): Thenable<{}> {
return this.doWithProvider(account.key.providerId, provider => {
return provider.provider.getSecurityToken(account);
});
@@ -231,7 +231,7 @@ export class AccountManagementService implements IAccountManagementService {
* @returns {Thenable<void>} Promise with result of account removal, true if account was
* removed, false otherwise.
*/
public removeAccount(accountKey: data.AccountKey): Thenable<boolean> {
public removeAccount(accountKey: sqlops.AccountKey): Thenable<boolean> {
let self = this;
// Step 1) Remove the account
@@ -309,8 +309,8 @@ export class AccountManagementService implements IAccountManagementService {
public cancelAutoOAuthDeviceCode(providerId: string): void {
this.doWithProvider(providerId, provider => provider.provider.autoOAuthCancelled())
.then( // Swallow errors
null,
err => { console.warn(`Error when cancelling auto OAuth: ${err}`); }
null,
err => { console.warn(`Error when cancelling auto OAuth: ${err}`); }
)
.then(() => this.autoOAuthDialogController.closeAutoOAuthDialog());
}
@@ -326,10 +326,10 @@ export class AccountManagementService implements IAccountManagementService {
// SERVICE MANAGEMENT METHODS //////////////////////////////////////////
/**
* Called by main thread to register an account provider from extension
* @param {data.AccountProviderMetadata} providerMetadata Metadata of the provider that is being registered
* @param {data.AccountProvider} provider References to the methods of the provider
* @param {sqlops.AccountProviderMetadata} providerMetadata Metadata of the provider that is being registered
* @param {sqlops.AccountProvider} provider References to the methods of the provider
*/
public registerProvider(providerMetadata: data.AccountProviderMetadata, provider: data.AccountProvider): Thenable<void> {
public registerProvider(providerMetadata: sqlops.AccountProviderMetadata, provider: sqlops.AccountProvider): Thenable<void> {
let self = this;
// Store the account provider
@@ -346,10 +346,10 @@ export class AccountManagementService implements IAccountManagementService {
// 4) Write the accounts back to the store
// 5) Fire the event to let folks know we have another account provider now
return this._accountStore.getAccountsByProvider(providerMetadata.id)
.then((accounts: data.Account[]) => {
.then((accounts: sqlops.Account[]) => {
return provider.initialize(accounts);
})
.then((accounts: data.Account[]) => {
.then((accounts: sqlops.Account[]) => {
self._providers[providerMetadata.id].accounts = accounts;
let writePromises = accounts.map(account => {
return self._accountStore.addOrUpdate(account);
@@ -376,7 +376,7 @@ export class AccountManagementService implements IAccountManagementService {
}
}
public unregisterProvider(providerMetadata: data.AccountProviderMetadata): void {
public unregisterProvider(providerMetadata: sqlops.AccountProviderMetadata): void {
// Delete this account provider
delete this._providers[providerMetadata.id];
@@ -400,7 +400,7 @@ export class AccountManagementService implements IAccountManagementService {
private fireAccountListUpdate(provider: AccountProviderWithMetadata, sort: boolean) {
// Step 1) Get and sort the list
if (sort) {
provider.accounts.sort((a: data.Account, b: data.Account) => {
provider.accounts.sort((a: sqlops.Account, b: sqlops.Account) => {
if (a.displayInfo.displayName < b.displayInfo.displayName) {
return -1;
}
@@ -419,7 +419,7 @@ export class AccountManagementService implements IAccountManagementService {
this._updateAccountListEmitter.fire(eventArg);
}
private spliceModifiedAccount(provider: AccountProviderWithMetadata, modifiedAccount: data.Account) {
private spliceModifiedAccount(provider: AccountProviderWithMetadata, modifiedAccount: sqlops.Account) {
// Find the updated account and splice the updated one in
let indexToRemove: number = provider.accounts.findIndex(account => {
return account.key.accountId === modifiedAccount.key.accountId;
@@ -434,7 +434,7 @@ export class AccountManagementService implements IAccountManagementService {
* Joins together an account provider, its metadata, and its accounts, used in the provider list
*/
export interface AccountProviderWithMetadata {
metadata: data.AccountProviderMetadata;
provider: data.AccountProvider;
accounts: data.Account[];
metadata: sqlops.AccountProviderMetadata;
provider: sqlops.AccountProvider;
accounts: sqlops.Account[];
}

View File

@@ -5,7 +5,7 @@
'use strict';
import * as data from 'data';
import * as sqlops from 'sqlops';
import { AccountAdditionResult } from 'sql/services/accountManagement/eventTypes';
import { IAccountStore } from 'sql/services/accountManagement/interfaces';
@@ -19,7 +19,7 @@ export default class AccountStore implements IAccountStore {
constructor(private _memento: object) { }
// PUBLIC METHODS //////////////////////////////////////////////////////
public addOrUpdate(newAccount: data.Account): Thenable<AccountAdditionResult> {
public addOrUpdate(newAccount: sqlops.Account): Thenable<AccountAdditionResult> {
let self = this;
return this.doOperation(() => {
@@ -36,7 +36,7 @@ export default class AccountStore implements IAccountStore {
});
}
public getAccountsByProvider(providerId: string): Thenable<data.Account[]> {
public getAccountsByProvider(providerId: string): Thenable<sqlops.Account[]> {
let self = this;
return this.doOperation(() => {
@@ -45,7 +45,7 @@ export default class AccountStore implements IAccountStore {
});
}
public getAllAccounts(): Thenable<data.Account[]> {
public getAllAccounts(): Thenable<sqlops.Account[]> {
let self = this;
return this.doOperation(() => {
@@ -53,7 +53,7 @@ export default class AccountStore implements IAccountStore {
});
}
public remove(key: data.AccountKey): Thenable<boolean> {
public remove(key: sqlops.AccountKey): Thenable<boolean> {
let self = this;
return this.doOperation(() => {
@@ -64,7 +64,7 @@ export default class AccountStore implements IAccountStore {
});
}
public update(key: data.AccountKey, updateOperation: (account: data.Account) => void): Thenable<boolean> {
public update(key: sqlops.AccountKey, updateOperation: (account: sqlops.Account) => void): Thenable<boolean> {
let self = this;
return this.doOperation(() => {
@@ -76,12 +76,12 @@ export default class AccountStore implements IAccountStore {
}
// PRIVATE METHODS /////////////////////////////////////////////////////
private static findAccountByKey(key1: data.AccountKey, key2: data.AccountKey): boolean {
private static findAccountByKey(key1: sqlops.AccountKey, key2: sqlops.AccountKey): boolean {
// Provider ID and Account ID must match
return key1.providerId === key2.providerId && key1.accountId === key2.accountId;
}
private static mergeAccounts(source: data.Account, target: data.Account): void {
private static mergeAccounts(source: sqlops.Account, target: sqlops.Account): void {
// Take any display info changes
target.displayInfo = source.displayInfo;
@@ -109,7 +109,7 @@ export default class AccountStore implements IAccountStore {
return <Promise<T>>this._activeOperation;
}
private addToAccountList(accounts: data.Account[], accountToAdd: data.Account): AccountListOperationResult {
private addToAccountList(accounts: sqlops.Account[], accountToAdd: sqlops.Account): AccountListOperationResult {
// Check if the entry already exists
let match = accounts.findIndex(account => AccountStore.findAccountByKey(account.key, accountToAdd.key));
if (match >= 0) {
@@ -134,7 +134,7 @@ export default class AccountStore implements IAccountStore {
};
}
private removeFromAccountList(accounts: data.Account[], accountToRemove: data.AccountKey): AccountListOperationResult {
private removeFromAccountList(accounts: sqlops.Account[], accountToRemove: sqlops.AccountKey): AccountListOperationResult {
// Check if the entry exists
let match = accounts.findIndex(account => AccountStore.findAccountByKey(account.key, accountToRemove));
if (match >= 0) {
@@ -151,7 +151,7 @@ export default class AccountStore implements IAccountStore {
};
}
private updateAccountList(accounts: data.Account[], accountToUpdate: data.AccountKey, updateOperation: (account: data.Account) => void): AccountListOperationResult {
private updateAccountList(accounts: sqlops.Account[], accountToUpdate: sqlops.AccountKey, updateOperation: (account: sqlops.Account) => void): AccountListOperationResult {
// Check if the entry exists
let match = accounts.findIndex(account => AccountStore.findAccountByKey(account.key, accountToUpdate));
if (match < 0) {
@@ -178,7 +178,7 @@ export default class AccountStore implements IAccountStore {
}
// MEMENTO IO METHODS //////////////////////////////////////////////////
private readFromMemento(): Thenable<data.Account[]> {
private readFromMemento(): Thenable<sqlops.Account[]> {
// Initialize the account list if it isn't already
let accounts = this._memento[AccountStore.MEMENTO_KEY];
if (!accounts) {
@@ -191,7 +191,7 @@ export default class AccountStore implements IAccountStore {
return Promise.resolve(accounts);
}
private writeToMemento(accounts: data.Account[]): Thenable<void> {
private writeToMemento(accounts: sqlops.Account[]): Thenable<void> {
// Store a shallow copy of the account list to disconnect the memento list from the active list
this._memento[AccountStore.MEMENTO_KEY] = JSON.parse(JSON.stringify(accounts));
return Promise.resolve();
@@ -200,5 +200,5 @@ export default class AccountStore implements IAccountStore {
interface AccountListOperationResult extends AccountAdditionResult {
accountRemoved: boolean;
updatedAccounts: data.Account[];
updatedAccounts: sqlops.Account[];
}

View File

@@ -5,7 +5,7 @@
'use strict';
import * as data from 'data';
import * as sqlops from 'sqlops';
/**
* Result from calling add/update on the account store
@@ -24,7 +24,7 @@ export interface AccountAdditionResult {
/**
* The account that was added/updated (with any updates applied)
*/
changedAccount: data.Account;
changedAccount: sqlops.Account;
}
/**
@@ -34,12 +34,12 @@ export interface AccountProviderAddedEventParams {
/**
* The provider that was registered
*/
addedProvider: data.AccountProviderMetadata;
addedProvider: sqlops.AccountProviderMetadata;
/**
* The accounts that were rehydrated with the provider
*/
initialAccounts: data.Account[];
initialAccounts: sqlops.Account[];
}
/**
@@ -54,5 +54,5 @@ export interface UpdateAccountListEventParams {
/**
* Updated list of accounts, sorted appropriately
*/
accountList: data.Account[];
accountList: sqlops.Account[];
}

View File

@@ -5,7 +5,7 @@
'use strict';
import * as data from 'data';
import * as sqlops from 'sqlops';
import Event from 'vs/base/common/event';
import { AccountAdditionResult, AccountProviderAddedEventParams, UpdateAccountListEventParams } from 'sql/services/accountManagement/eventTypes';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
@@ -18,13 +18,13 @@ export interface IAccountManagementService {
_serviceBrand: any;
// ACCOUNT MANAGEMENT METHODS //////////////////////////////////////////
accountUpdated(account: data.Account): Thenable<void>;
accountUpdated(account: sqlops.Account): Thenable<void>;
addAccount(providerId: string): Thenable<void>;
getAccountProviderMetadata(): Thenable<data.AccountProviderMetadata[]>;
getAccountsForProvider(providerId: string): Thenable<data.Account[]>;
getSecurityToken(account: data.Account): Thenable<{}>;
removeAccount(accountKey: data.AccountKey): Thenable<boolean>;
refreshAccount(account: data.Account): Thenable<data.Account>;
getAccountProviderMetadata(): Thenable<sqlops.AccountProviderMetadata[]>;
getAccountsForProvider(providerId: string): Thenable<sqlops.Account[]>;
getSecurityToken(account: sqlops.Account): Thenable<{}>;
removeAccount(accountKey: sqlops.AccountKey): Thenable<boolean>;
refreshAccount(account: sqlops.Account): Thenable<sqlops.Account>;
// UI METHODS //////////////////////////////////////////////////////////
openAccountListDialog(): Thenable<void>;
@@ -34,13 +34,13 @@ export interface IAccountManagementService {
copyUserCodeAndOpenBrowser(userCode: string, uri: string): void;
// SERVICE MANAGEMENT METHODS /////////////////////////////////////////
registerProvider(providerMetadata: data.AccountProviderMetadata, provider: data.AccountProvider): void;
registerProvider(providerMetadata: sqlops.AccountProviderMetadata, provider: sqlops.AccountProvider): void;
shutdown(): void;
unregisterProvider(providerMetadata: data.AccountProviderMetadata): void;
unregisterProvider(providerMetadata: sqlops.AccountProviderMetadata): void;
// EVENTING ////////////////////////////////////////////////////////////
readonly addAccountProviderEvent: Event<AccountProviderAddedEventParams>;
readonly removeAccountProviderEvent: Event<data.AccountProviderMetadata>;
readonly removeAccountProviderEvent: Event<sqlops.AccountProviderMetadata>;
readonly updateAccountListEvent: Event<UpdateAccountListEventParams>;
}
@@ -50,20 +50,20 @@ export interface IAccountStore {
* @param {Account} account Account to add/update
* @return {Thenable<AccountAdditionResult>} Results of the add/update operation
*/
addOrUpdate(account: data.Account): Thenable<AccountAdditionResult>;
addOrUpdate(account: sqlops.Account): Thenable<AccountAdditionResult>;
/**
* Retrieves all accounts, filtered by provider ID
* @param {string} providerId ID of the provider to filter by
* @return {Thenable<Account[]>} Promise to return all accounts that belong to the provided provider
*/
getAccountsByProvider(providerId: string): Thenable<data.Account[]>;
getAccountsByProvider(providerId: string): Thenable<sqlops.Account[]>;
/**
* Retrieves all accounts in the store. Returns empty array if store is not initialized
* @return {Thenable<Account[]>} Promise to return all accounts
*/
getAllAccounts(): Thenable<data.Account[]>;
getAllAccounts(): Thenable<sqlops.Account[]>;
/**
* Removes an account.
@@ -72,7 +72,7 @@ export interface IAccountStore {
* @param key - The key of an account.
* @returns True if the account was removed, false if the account doesn't exist
*/
remove(key: data.AccountKey): Thenable<boolean>;
remove(key: sqlops.AccountKey): Thenable<boolean>;
/**
* Updates the custom properties stored with an account.
@@ -82,5 +82,5 @@ export interface IAccountStore {
* @param updateOperation - Operation to perform on the matching account
* @returns True if the account was modified, false if the account doesn't exist
*/
update(key: data.AccountKey, updateOperation: (account: data.Account) => void): Thenable<boolean>;
update(key: sqlops.AccountKey, updateOperation: (account: sqlops.Account) => void): Thenable<boolean>;
}

View File

@@ -9,7 +9,7 @@ import { ConnectionManagementInfo } from 'sql/parts/connection/common/connection
import * as Constants from 'sql/common/constants';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import data = require('data');
import * as sqlops from 'sqlops';
import Event, { Emitter } from 'vs/base/common/event';
import { IAction } from 'vs/base/common/actions';
import { Deferred } from 'sql/base/common/promise';
@@ -31,12 +31,12 @@ export interface ICapabilitiesService {
/**
* Retrieve a list of registered capabilities providers
*/
getCapabilities(): data.DataProtocolServerCapabilities[];
getCapabilities(): sqlops.DataProtocolServerCapabilities[];
/**
* Register a capabilities provider
*/
registerProvider(provider: data.CapabilitiesProvider): void;
registerProvider(provider: sqlops.CapabilitiesProvider): void;
/**
* Returns true if the feature is available for given connection
@@ -46,7 +46,7 @@ export interface ICapabilitiesService {
/**
* Event raised when a provider is registered
*/
onProviderRegisteredEvent: Event<data.DataProtocolServerCapabilities>;
onProviderRegisteredEvent: Event<sqlops.DataProtocolServerCapabilities>;
/**
* Promise fulfilled when Capabilities are ready
@@ -63,15 +63,15 @@ export class CapabilitiesService implements ICapabilitiesService {
public _serviceBrand: any;
private static DATA_PROVIDER_CATEGORY: string = 'Data Provider'
private static DATA_PROVIDER_CATEGORY: string = 'Data Provider';
private _providers: data.CapabilitiesProvider[] = [];
private _providers: sqlops.CapabilitiesProvider[] = [];
private _capabilities: data.DataProtocolServerCapabilities[] = [];
private _capabilities: sqlops.DataProtocolServerCapabilities[] = [];
private _onProviderRegistered: Emitter<data.DataProtocolServerCapabilities>;
private _onProviderRegistered: Emitter<sqlops.DataProtocolServerCapabilities>;
private _clientCapabilties: data.DataProtocolClientCapabilities = {
private _clientCapabilties: sqlops.DataProtocolClientCapabilities = {
hostName: HOST_NAME,
hostVersion: HOST_VERSION
@@ -92,7 +92,7 @@ export class CapabilitiesService implements ICapabilitiesService {
constructor( @IExtensionManagementService private extensionManagementService: IExtensionManagementService,
@IExtensionEnablementService private extensionEnablementService: IExtensionEnablementService) {
this._onProviderRegistered = new Emitter<data.DataProtocolServerCapabilities>();
this._onProviderRegistered = new Emitter<sqlops.DataProtocolServerCapabilities>();
this.disposables.push(this._onProviderRegistered);
this._onCapabilitiesReady = new Deferred();
@@ -140,7 +140,7 @@ export class CapabilitiesService implements ICapabilitiesService {
/**
* Retrieve a list of registered server capabilities
*/
public getCapabilities(): data.DataProtocolServerCapabilities[] {
public getCapabilities(): sqlops.DataProtocolServerCapabilities[] {
return this._capabilities;
}
@@ -148,7 +148,7 @@ export class CapabilitiesService implements ICapabilitiesService {
* Register the capabilities provider and query the provider for its capabilities
* @param provider
*/
public registerProvider(provider: data.CapabilitiesProvider): void {
public registerProvider(provider: sqlops.CapabilitiesProvider): void {
this._providers.push(provider);
// request the capabilities from server
@@ -200,7 +200,7 @@ export class CapabilitiesService implements ICapabilitiesService {
}
// Event Emitters
public get onProviderRegisteredEvent(): Event<data.DataProtocolServerCapabilities> {
public get onProviderRegisteredEvent(): Event<sqlops.DataProtocolServerCapabilities> {
return this._onProviderRegistered.event;
}

View File

@@ -7,7 +7,7 @@
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import data = require('data');
import * as sqlops from 'sqlops';
import { Deferred } from 'sql/base/common/promise';
export const SERVICE_ID = 'credentialsService';
@@ -15,7 +15,7 @@ export const SERVICE_ID = 'credentialsService';
export interface CredentialManagementEvents {
onSaveCredential(credentialId: string, password: string): Thenable<boolean>;
onReadCredential(credentialId: string): Thenable<data.Credential>;
onReadCredential(credentialId: string): Thenable<sqlops.Credential>;
onDeleteCredential(credentialId: string): Thenable<boolean>;
}
@@ -27,7 +27,7 @@ export interface ICredentialsService {
saveCredential(credentialId: string, password: string): Thenable<boolean>;
readCredential(credentialId: string): Thenable<data.Credential>;
readCredential(credentialId: string): Thenable<sqlops.Credential>;
deleteCredential(credentialId: string): Thenable<boolean>;
@@ -66,7 +66,7 @@ export class CredentialsService implements ICredentialsService {
return this._onServerEventsReady.promise.then(() => this._serverEvents[this._lastHandle].onSaveCredential(credentialId, password));
}
public readCredential(credentialId: string): Thenable<data.Credential> {
public readCredential(credentialId: string): Thenable<sqlops.Credential> {
return this._onServerEventsReady.promise.then(() => this._serverEvents[this._lastHandle].onReadCredential(credentialId));
}

View File

@@ -8,14 +8,14 @@
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import Event from 'vs/base/common/event';
import * as data from 'data';
import * as sqlops from 'sqlops';
export const SERVICE_ID = 'dashboardWebviewService';
export interface IDashboardWebview {
readonly id: string;
readonly connection: data.connection.Connection;
readonly serverInfo: data.ServerInfo;
readonly connection: sqlops.connection.Connection;
readonly serverInfo: sqlops.ServerInfo;
setHtml(html: string): void;
onMessage: Event<string>;
sendMessage(message: string);

View File

@@ -8,7 +8,7 @@
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement';
import data = require('data');
import * as sqlops from 'sqlops';
export const SERVICE_ID = 'metadataService';
@@ -17,18 +17,18 @@ export const IMetadataService = createDecorator<IMetadataService>(SERVICE_ID);
export interface IMetadataService {
_serviceBrand: any;
getMetadata(connectionUri: string): Thenable<data.ProviderMetadata>;
getMetadata(connectionUri: string): Thenable<sqlops.ProviderMetadata>;
getDatabaseNames(connectionUri: string): Thenable<string[]>;
getTableInfo(connectionUri: string, metadata: data.ObjectMetadata): Thenable<data.ColumnMetadata[]>;
getTableInfo(connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable<sqlops.ColumnMetadata[]>;
getViewInfo(connectionUri: string, metadata: data.ObjectMetadata): Thenable<data.ColumnMetadata[]>;
getViewInfo(connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable<sqlops.ColumnMetadata[]>;
/**
* Register a metadata provider
*/
registerProvider(providerId: string, provider: data.MetadataProvider): void;
registerProvider(providerId: string, provider: sqlops.MetadataProvider): void;
}
export class MetadataService implements IMetadataService {
@@ -37,12 +37,12 @@ export class MetadataService implements IMetadataService {
private _disposables: IDisposable[] = [];
private _providers: { [handle: string]: data.MetadataProvider; } = Object.create(null);
private _providers: { [handle: string]: sqlops.MetadataProvider; } = Object.create(null);
constructor(@IConnectionManagementService private _connectionService: IConnectionManagementService) {
constructor( @IConnectionManagementService private _connectionService: IConnectionManagementService) {
}
public getMetadata(connectionUri: string): Thenable<data.ProviderMetadata> {
public getMetadata(connectionUri: string): Thenable<sqlops.ProviderMetadata> {
let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri);
if (providerId) {
let provider = this._providers[providerId];
@@ -66,7 +66,7 @@ export class MetadataService implements IMetadataService {
return Promise.resolve(undefined);
}
public getTableInfo(connectionUri: string, metadata: data.ObjectMetadata): Thenable<data.ColumnMetadata[]> {
public getTableInfo(connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable<sqlops.ColumnMetadata[]> {
let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri);
if (providerId) {
let provider = this._providers[providerId];
@@ -78,7 +78,7 @@ export class MetadataService implements IMetadataService {
return Promise.resolve(undefined);
}
public getViewInfo(connectionUri: string, metadata: data.ObjectMetadata): Thenable<data.ColumnMetadata[]> {
public getViewInfo(connectionUri: string, metadata: sqlops.ObjectMetadata): Thenable<sqlops.ColumnMetadata[]> {
let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri);
if (providerId) {
let provider = this._providers[providerId];
@@ -93,7 +93,7 @@ export class MetadataService implements IMetadataService {
/**
* Register a metadata provider
*/
public registerProvider(providerId: string, provider: data.MetadataProvider): void {
public registerProvider(providerId: string, provider: sqlops.MetadataProvider): void {
this._providers[providerId] = provider;
}

View File

@@ -9,8 +9,8 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement';
import { ScriptOperation } from 'sql/workbench/common/taskUtilities';
import data = require('data');
import { warn, error } from 'sql/base/common/log';
import * as sqlops from 'sqlops';
import { error } from 'sql/base/common/log';
export const SERVICE_ID = 'scriptingService';
export const IScriptingService = createDecorator<IScriptingService>(SERVICE_ID);
@@ -18,22 +18,22 @@ export const IScriptingService = createDecorator<IScriptingService>(SERVICE_ID);
export interface IScriptingService {
_serviceBrand: any;
script(connectionUri: string, metadata: data.ObjectMetadata, operation: ScriptOperation, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult>;
script(connectionUri: string, metadata: sqlops.ObjectMetadata, operation: ScriptOperation, paramDetails: sqlops.ScriptingParamDetails): Thenable<sqlops.ScriptingResult>;
/**
* Register a scripting provider
*/
registerProvider(providerId: string, provider: data.ScriptingProvider): void;
registerProvider(providerId: string, provider: sqlops.ScriptingProvider): void;
/**
* Callback method for when scripting is complete
*/
onScriptingComplete(handle: number, scriptingCompleteResult: data.ScriptingCompleteResult): void;
onScriptingComplete(handle: number, scriptingCompleteResult: sqlops.ScriptingCompleteResult): void;
/**
* Returns the result for an operation if the operation failed
*/
getOperationFailedResult(operationId: string): data.ScriptingCompleteResult;
getOperationFailedResult(operationId: string): sqlops.ScriptingCompleteResult;
}
export class ScriptingService implements IScriptingService {
@@ -42,9 +42,9 @@ export class ScriptingService implements IScriptingService {
private disposables: IDisposable[] = [];
private _providers: { [handle: string]: data.ScriptingProvider; } = Object.create(null);
private _providers: { [handle: string]: sqlops.ScriptingProvider; } = Object.create(null);
private failedScriptingOperations: { [operationId: string]: data.ScriptingCompleteResult } = {};
private failedScriptingOperations: { [operationId: string]: sqlops.ScriptingCompleteResult } = {};
constructor( @IConnectionManagementService private _connectionService: IConnectionManagementService) { }
/**
@@ -54,13 +54,13 @@ export class ScriptingService implements IScriptingService {
* @param operation
* @param paramDetails
*/
public script(connectionUri: string, metadata: data.ObjectMetadata, operation: ScriptOperation, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
public script(connectionUri: string, metadata: sqlops.ObjectMetadata, operation: ScriptOperation, paramDetails: sqlops.ScriptingParamDetails): Thenable<sqlops.ScriptingResult> {
let providerId: string = this._connectionService.getProviderIdFromUri(connectionUri);
if (providerId) {
let provider = this._providers[providerId];
if (provider) {
return provider.scriptAsOperation(connectionUri, operation, metadata, paramDetails)
return provider.scriptAsOperation(connectionUri, operation, metadata, paramDetails);
}
}
return Promise.resolve(undefined);
@@ -71,7 +71,7 @@ export class ScriptingService implements IScriptingService {
* @param handle
* @param scriptingCompleteResult
*/
public onScriptingComplete(handle: number, scriptingCompleteResult: data.ScriptingCompleteResult): void {
public onScriptingComplete(handle: number, scriptingCompleteResult: sqlops.ScriptingCompleteResult): void {
if (scriptingCompleteResult && scriptingCompleteResult.hasError && scriptingCompleteResult.errorMessage) {
error(`Scripting failed. error: ${scriptingCompleteResult.errorMessage}`);
if (scriptingCompleteResult.operationId) {
@@ -84,7 +84,7 @@ export class ScriptingService implements IScriptingService {
* Returns the result for an operation if the operation failed
* @param operationId Operation Id
*/
public getOperationFailedResult(operationId: string): data.ScriptingCompleteResult {
public getOperationFailedResult(operationId: string): sqlops.ScriptingCompleteResult {
if (operationId && operationId in this.failedScriptingOperations) {
return this.failedScriptingOperations[operationId];
} else {
@@ -95,7 +95,7 @@ export class ScriptingService implements IScriptingService {
/**
* Register a scripting provider
*/
public registerProvider(providerId: string, provider: data.ScriptingProvider): void {
public registerProvider(providerId: string, provider: sqlops.ScriptingProvider): void {
this._providers[providerId] = provider;
}

View File

@@ -10,12 +10,12 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'
import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement';
import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService';
import * as Constants from 'sql/common/constants';
import * as data from 'data';
import * as sqlops from 'sqlops';
export const SERVICE_ID = 'serializationService';
export interface SerializationProviderEvents {
onSaveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable<data.SaveResultRequestResult>;
onSaveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable<sqlops.SaveResultRequestResult>;
}
export const ISerializationService = createDecorator<ISerializationService>(SERVICE_ID);
@@ -23,13 +23,13 @@ export const ISerializationService = createDecorator<ISerializationService>(SERV
export interface ISerializationService {
_serviceBrand: any;
saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable<data.SaveResultRequestResult>;
saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable<sqlops.SaveResultRequestResult>;
disabledSaveAs(): Thenable<data.SaveResultRequestResult>;
disabledSaveAs(): Thenable<sqlops.SaveResultRequestResult>;
addEventListener(handle: number, events: SerializationProviderEvents): IDisposable;
getSerializationFeatureMetadataProvider(ownerUri: string): data.FeatureMetadataProvider;
getSerializationFeatureMetadataProvider(ownerUri: string): sqlops.FeatureMetadataProvider;
}
export class SerializationService implements ISerializationService {
@@ -59,7 +59,7 @@ export class SerializationService implements ISerializationService {
};
}
public saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable<data.SaveResultRequestResult> {
public saveAs(saveFormat: string, savePath: string, results: string, appendToFile: boolean): Thenable<sqlops.SaveResultRequestResult> {
if (this._serverEvents === undefined || this._serverEvents[this._lastHandle] === undefined) {
return this.disabledSaveAs();
}
@@ -67,12 +67,12 @@ export class SerializationService implements ISerializationService {
return this._serverEvents[this._lastHandle].onSaveAs(saveFormat, savePath, results, appendToFile);
}
public disabledSaveAs(): Thenable<data.SaveResultRequestResult> {
return Promise.resolve({messages: Constants.SerializationDisabled});
public disabledSaveAs(): Thenable<sqlops.SaveResultRequestResult> {
return Promise.resolve({ messages: Constants.SerializationDisabled });
}
public getSerializationFeatureMetadataProvider(ownerUri: string) : data.FeatureMetadataProvider {
public getSerializationFeatureMetadataProvider(ownerUri: string): sqlops.FeatureMetadataProvider {
let providerId: string = this._connectionService.getProviderIdFromUri(ownerUri);
let providerCapabilities = this._capabilitiesService.getCapabilities().find(c => c.providerName === providerId);