mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
Merge from vscode c873727e8bac95e7cbf5b154a9e6ae0986f2ce18 (#6446)
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { ResolvedAuthority, IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver';
|
||||
import { ResolvedAuthority, IRemoteAuthorityResolverService, ResolverResult } from 'vs/platform/remote/common/remoteAuthorityResolver';
|
||||
|
||||
export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverService {
|
||||
|
||||
@@ -12,12 +12,16 @@ export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverS
|
||||
constructor() {
|
||||
}
|
||||
|
||||
resolveAuthority(authority: string): Promise<ResolvedAuthority> {
|
||||
resolveAuthority(authority: string): Promise<ResolverResult> {
|
||||
if (authority.indexOf(':') >= 0) {
|
||||
const pieces = authority.split(':');
|
||||
return Promise.resolve({ authority, host: pieces[0], port: parseInt(pieces[1], 10) });
|
||||
return Promise.resolve({
|
||||
authority: { authority, host: pieces[0], port: parseInt(pieces[1], 10) }
|
||||
});
|
||||
}
|
||||
return Promise.resolve({ authority, host: authority, port: 80 });
|
||||
return Promise.resolve({
|
||||
authority: { authority, host: authority, port: 80 }
|
||||
});
|
||||
}
|
||||
|
||||
clearResolvedAuthority(authority: string): void {
|
||||
|
||||
@@ -163,6 +163,7 @@ export interface IRemoteExtensionHostStartParams {
|
||||
debugId?: string;
|
||||
break?: boolean;
|
||||
port?: number | null;
|
||||
env?: { [key: string]: string | null };
|
||||
}
|
||||
|
||||
interface IExtensionHostConnectionResult {
|
||||
|
||||
@@ -13,6 +13,15 @@ export interface ResolvedAuthority {
|
||||
readonly port: number;
|
||||
}
|
||||
|
||||
export interface ResolvedOptions {
|
||||
readonly extensionHostEnv?: { [key: string]: string | null };
|
||||
}
|
||||
|
||||
export interface ResolverResult {
|
||||
authority: ResolvedAuthority;
|
||||
options?: ResolvedOptions;
|
||||
}
|
||||
|
||||
export enum RemoteAuthorityResolverErrorCode {
|
||||
Unknown = 'Unknown',
|
||||
NotAvailable = 'NotAvailable',
|
||||
@@ -61,9 +70,9 @@ export interface IRemoteAuthorityResolverService {
|
||||
|
||||
_serviceBrand: any;
|
||||
|
||||
resolveAuthority(authority: string): Promise<ResolvedAuthority>;
|
||||
resolveAuthority(authority: string): Promise<ResolverResult>;
|
||||
|
||||
clearResolvedAuthority(authority: string): void;
|
||||
setResolvedAuthority(resolvedAuthority: ResolvedAuthority): void;
|
||||
setResolvedAuthority(resolvedAuthority: ResolvedAuthority, resolvedOptions?: ResolvedOptions): void;
|
||||
setResolvedAuthorityError(authority: string, err: any): void;
|
||||
}
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { ResolvedAuthority, IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver';
|
||||
import { ResolvedAuthority, IRemoteAuthorityResolverService, ResolverResult, ResolvedOptions } from 'vs/platform/remote/common/remoteAuthorityResolver';
|
||||
import { ipcRenderer as ipc } from 'electron';
|
||||
import * as errors from 'vs/base/common/errors';
|
||||
|
||||
class PendingResolveAuthorityRequest {
|
||||
constructor(
|
||||
public readonly resolve: (value: ResolvedAuthority) => void,
|
||||
public readonly resolve: (value: ResolverResult) => void,
|
||||
public readonly reject: (err: any) => void,
|
||||
public readonly promise: Promise<ResolvedAuthority>,
|
||||
public readonly promise: Promise<ResolverResult>,
|
||||
) {
|
||||
}
|
||||
}
|
||||
@@ -26,11 +26,11 @@ export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverS
|
||||
this._resolveAuthorityRequests = Object.create(null);
|
||||
}
|
||||
|
||||
resolveAuthority(authority: string): Promise<ResolvedAuthority> {
|
||||
resolveAuthority(authority: string): Promise<ResolverResult> {
|
||||
if (!this._resolveAuthorityRequests[authority]) {
|
||||
let resolve: (value: ResolvedAuthority) => void;
|
||||
let resolve: (value: ResolverResult) => void;
|
||||
let reject: (err: any) => void;
|
||||
let promise = new Promise<ResolvedAuthority>((_resolve, _reject) => {
|
||||
let promise = new Promise<ResolverResult>((_resolve, _reject) => {
|
||||
resolve = _resolve;
|
||||
reject = _reject;
|
||||
});
|
||||
@@ -46,11 +46,11 @@ export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverS
|
||||
}
|
||||
}
|
||||
|
||||
setResolvedAuthority(resolvedAuthority: ResolvedAuthority) {
|
||||
setResolvedAuthority(resolvedAuthority: ResolvedAuthority, options?: ResolvedOptions) {
|
||||
if (this._resolveAuthorityRequests[resolvedAuthority.authority]) {
|
||||
let request = this._resolveAuthorityRequests[resolvedAuthority.authority];
|
||||
ipc.send('vscode:remoteAuthorityResolved', resolvedAuthority);
|
||||
request.resolve(resolvedAuthority);
|
||||
request.resolve({ authority: resolvedAuthority, options });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user