Update dataprotocol client (#418)

* close

* connection is working

* formatting

* adds all

* formatting

* removed unneeded logging

* readd npm shrinkwrap

* addressed comments

* fix capabilities cacheing

* updated shrinkwrap

* fixed tests

* remove dead code
This commit is contained in:
Anthony Dresser
2018-01-16 11:16:02 -08:00
committed by GitHub
parent ad27f7dbba
commit 7808496416
110 changed files with 3891 additions and 11664 deletions

113
src/sql/data.d.ts vendored
View File

@@ -11,7 +11,29 @@ declare module 'data' {
* Namespace for Data Management Protocol global methods
*/
export namespace dataprotocol {
export function registerProvider(provider: DataProtocolProvider): vscode.Disposable;
export function registerConnectionProvider(provider: ConnectionProvider): vscode.Disposable;
export function registerBackupProvider(provider: BackupProvider): vscode.Disposable;
export function registerRestoreProvider(provider: RestoreProvider): vscode.Disposable;
export function registerScriptingProvider(provider: ScriptingProvider): vscode.Disposable;
export function registerObjectExplorerProvider(provider: ObjectExplorerProvider): vscode.Disposable;
export function registerTaskServicesProvider(provider: TaskServicesProvider): vscode.Disposable;
export function registerFileBrowserProvider(provider: FileBrowserProvider): vscode.Disposable;
export function registerProfilerProvider(provider: ProfilerProvider): vscode.Disposable;
export function registerMetadataProvider(provider: MetadataProvider): vscode.Disposable;
export function registerQueryProvider(provider: QueryProvider): vscode.Disposable;
export function registerAdminServicesProvider(provider: AdminServicesProvider): vscode.Disposable;
export function registerCapabilitiesServiceProvider(provider: CapabilitiesProvider): vscode.Disposable;
/**
* An [event](#Event) which fires when the specific flavor of a language used in DMP
@@ -155,8 +177,12 @@ declare module 'data' {
osVersion: string;
}
export interface ConnectionProvider {
handle: number;
export interface DataProvider {
handle?: number;
readonly providerId: string;
}
export interface ConnectionProvider extends DataProvider {
connect(connectionUri: string, connectionInfo: ConnectionInfo): Thenable<boolean>;
@@ -170,11 +196,11 @@ declare module 'data' {
rebuildIntelliSenseCache(connectionUri: string): Thenable<void>;
registerOnConnectionComplete(handler: (connSummary: ConnectionInfoSummary) => any);
registerOnConnectionComplete(handler: (connSummary: ConnectionInfoSummary) => any): void;
registerOnIntelliSenseCacheComplete(handler: (connectionUri: string) => any);
registerOnIntelliSenseCacheComplete(handler: (connectionUri: string) => any): void;
registerOnConnectionChanged(handler: (changedConnInfo: ChangedConnectionInfo) => any);
registerOnConnectionChanged(handler: (changedConnInfo: ChangedConnectionInfo) => any): void;
}
export enum ServiceOptionType {
@@ -188,12 +214,12 @@ declare module 'data' {
}
export enum ConnectionOptionSpecialType {
serverName = 0,
databaseName = 1,
authType = 2,
userName = 3,
password = 4,
appName = 5
serverName = 'serverName',
databaseName = 'databaseName',
authType = 'authType',
userName = 'userName',
password = 'password',
appName = 'appName'
}
export interface CategoryValue {
@@ -306,7 +332,7 @@ declare module 'data' {
hostVersion: string;
}
export interface CapabilitiesProvider {
export interface CapabilitiesProvider extends DataProvider {
getServerCapabilities(client: DataProtocolClientCapabilities): Thenable<DataProtocolServerCapabilities>;
}
@@ -387,7 +413,7 @@ declare module 'data' {
objectMetadata: ObjectMetadata[];
}
export interface MetadataProvider {
export interface MetadataProvider extends DataProvider {
getMetadata(connectionUri: string): Thenable<ProviderMetadata>;
getDatabases(connectionUri: string): Thenable<string[]>;
@@ -419,7 +445,7 @@ declare module 'data' {
targetDatabaseEngineType: string;
}
export interface ScriptingProvider {
export interface ScriptingProvider extends DataProvider {
scriptAsOperation(connectionUri: string, operation: ScriptOperation, metadata: ObjectMetadata, paramDetails: ScriptingParamDetails): Thenable<ScriptingResult>;
@@ -439,38 +465,6 @@ declare module 'data' {
operationId: string;
}
/**
* Data Management Protocol main provider class that DMP extensions should implement.
* This provider interface contains references to providers for the various capabilitiesProvider
* that an extension can implement.
*/
export interface DataProtocolProvider {
handle: number;
providerId: string;
capabilitiesProvider: CapabilitiesProvider;
connectionProvider: ConnectionProvider;
queryProvider: QueryProvider;
metadataProvider: MetadataProvider;
scriptingProvider: ScriptingProvider;
objectExplorerProvider: ObjectExplorerProvider;
adminServicesProvider: AdminServicesProvider;
disasterRecoveryProvider: DisasterRecoveryProvider;
taskServicesProvider: TaskServicesProvider;
fileBrowserProvider: FileBrowserProvider;
profilerProvider: ProfilerProvider;
}
/**
* Parameters to initialize a connection to a database
@@ -509,10 +503,7 @@ declare module 'data' {
flavor: string;
}
export interface QueryProvider {
handle: number;
// TODO replace this temporary queryType field with a standard definition for supported platform
queryType: string;
export interface QueryProvider extends DataProvider {
cancelQuery(ownerUri: string): Thenable<QueryCancelResult>;
runQuery(ownerUri: string, selection: ISelectionData, runOptions?: ExecutionPlanOptions): Thenable<void>;
runQueryStatement(ownerUri: string, line: number, column: number): Thenable<void>;
@@ -673,6 +664,7 @@ declare module 'data' {
export interface QueryExecuteParams {
ownerUri: string;
querySelection: ISelectionData;
executionPlanOptions?: ExecutionPlanOptions;
}
export interface QueryExecuteSubsetParams {
@@ -694,6 +686,7 @@ declare module 'data' {
}
export interface QueryExecuteSubsetResult {
message: string;
resultSubset: ResultSetSubset;
}
@@ -760,12 +753,15 @@ declare module 'data' {
export interface EditInitializeFiltering {
LimitResults?: number;
}
export interface EditInitializeParams extends IEditSessionOperationParams {
filters: EditInitializeFiltering;
objectName: string;
schemaName: string;
objectType: string;
}
export interface EditInitializeResult { }
// edit/revertCell ----------------------------------------------------------------------------
@@ -849,7 +845,7 @@ declare module 'data' {
success: boolean;
}
export interface ObjectExplorerProvider {
export interface ObjectExplorerProvider extends DataProvider {
createNewSession(connInfo: ConnectionInfo): Thenable<ObjectExplorerSessionResponse>;
expandNode(nodeInfo: ExpandNodeInfo): Thenable<boolean>;
@@ -883,7 +879,7 @@ declare module 'data' {
taskId: number;
}
export interface AdminServicesProvider {
export interface AdminServicesProvider extends DataProvider {
createDatabase(connectionUri: string, database: DatabaseInfo): Thenable<CreateDatabaseResponse>;
createLogin(connectionUri: string, login: LoginInfo): Thenable<CreateLoginResponse>;
@@ -941,7 +937,7 @@ declare module 'data' {
duration: number;
}
export interface TaskServicesProvider {
export interface TaskServicesProvider extends DataProvider {
getAllTasks(listTasksParams: ListTasksParams): Thenable<ListTasksResponse>;
cancelTask(cancelTaskParams: CancelTaskParams): Thenable<boolean>;
@@ -964,9 +960,12 @@ declare module 'data' {
taskId: number;
}
export interface DisasterRecoveryProvider {
export interface BackupProvider extends DataProvider {
backup(connectionUri: string, backupInfo: { [key: string]: any }, taskExecutionMode: TaskExecutionMode): Thenable<BackupResponse>;
getBackupConfigInfo(connectionUri: string): Thenable<BackupConfigInfo>;
}
export interface RestoreProvider extends DataProvider {
getRestorePlan(connectionUri: string, restoreInfo: RestoreInfo): Thenable<RestorePlanResponse>;
cancelRestorePlan(connectionUri: string, restoreInfo: RestoreInfo): Thenable<boolean>;
restore(connectionUri: string, restoreInfo: RestoreInfo): Thenable<RestoreResponse>;
@@ -1029,7 +1028,7 @@ declare module 'data' {
errorMessage: string;
}
export interface ProfilerProvider {
export interface ProfilerProvider extends DataProvider {
startSession(sessionId: string): Thenable<boolean>;
stopSession(sessionId: string): Thenable<boolean>;
pauseSession(sessionId: string): Thenable<boolean>;
@@ -1081,7 +1080,7 @@ declare module 'data' {
// File browser interfaces -----------------------------------------------------------------------
export interface FileBrowserProvider {
export interface FileBrowserProvider extends DataProvider {
openFileBrowser(ownerUri: string, expandPath: string, fileFilters: string[], changeFilter: boolean): Thenable<boolean>;
registerOnFileBrowserOpened(handler: (response: FileBrowserOpenedParams) => any);
expandFolderNode(ownerUri: string, expandPath: string): Thenable<boolean>;