Skip to content

Commit 23e6c03

Browse files
authored
Start enforcing the tunnels API (microsoft#163187)
* Start enforcing the tunnels API * Fix API test
1 parent 96ee913 commit 23e6c03

6 files changed

Lines changed: 19 additions & 31 deletions

File tree

extensions/vscode-api-tests/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"taskPresentationGroup",
3535
"terminalDataWriteEvent",
3636
"terminalDimensions",
37+
"tunnels",
3738
"envShellEvent",
3839
"testCoverage",
3940
"testObserver",

extensions/vscode-test-resolver/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"license": "MIT",
77
"enableProposedApi": true,
88
"enabledApiProposals": [
9-
"resolvers"
9+
"resolvers",
10+
"tunnels"
1011
],
1112
"private": true,
1213
"engines": {

extensions/vscode-test-resolver/tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"include": [
1010
"src/**/*",
1111
"../../src/vscode-dts/vscode.d.ts",
12+
"../../src/vscode-dts/vscode.proposed.tunnels.d.ts",
1213
"../../src/vscode-dts/vscode.proposed.resolvers.d.ts"
1314
]
1415
}

src/vs/workbench/api/common/extHost.api.impl.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1010,7 +1010,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
10101010
return extHostFileSystemEvent.getOnWillRenameFileEvent(extension)(listener, thisArg, disposables);
10111011
},
10121012
openTunnel: (forward: vscode.TunnelOptions) => {
1013-
checkProposedApiEnabled(extension, 'resolvers');
1013+
checkProposedApiEnabled(extension, 'tunnels');
10141014
return extHostTunnelService.openTunnel(extension, forward).then(value => {
10151015
if (!value) {
10161016
throw new Error('cannot open tunnel');
@@ -1019,11 +1019,11 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
10191019
});
10201020
},
10211021
get tunnels() {
1022-
checkProposedApiEnabled(extension, 'resolvers');
1022+
checkProposedApiEnabled(extension, 'tunnels');
10231023
return extHostTunnelService.getTunnels();
10241024
},
10251025
onDidChangeTunnels: (listener, thisArg?, disposables?) => {
1026-
checkProposedApiEnabled(extension, 'resolvers');
1026+
checkProposedApiEnabled(extension, 'tunnels');
10271027
return extHostTunnelService.onDidChangeTunnels(listener, thisArg, disposables);
10281028
},
10291029
registerPortAttributesProvider: (portSelector: { pid?: number; portRange?: [number, number]; commandMatcher?: RegExp }, provider: vscode.PortAttributesProvider) => {

src/vscode-dts/vscode.proposed.resolvers.d.ts

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ declare module 'vscode' {
4343
label: string;
4444
}
4545

46-
export interface TunnelOptions {
46+
interface TunnelOptions {
4747
remoteAddress: { port: number; host: string };
4848
// The desired local port. If this port can't be used, then another will be chosen.
4949
localAddressPort?: number;
@@ -56,7 +56,7 @@ declare module 'vscode' {
5656
protocol?: string;
5757
}
5858

59-
export interface TunnelDescription {
59+
interface TunnelDescription {
6060
remoteAddress: { port: number; host: string };
6161
//The complete local address(ex. localhost:1234)
6262
localAddress: { port: number; host: string } | string;
@@ -69,7 +69,7 @@ declare module 'vscode' {
6969
protocol?: string;
7070
}
7171

72-
export interface Tunnel extends TunnelDescription {
72+
interface Tunnel extends TunnelDescription {
7373
// Implementers of Tunnel should fire onDidDispose when dispose is called.
7474
onDidDispose: Event<void>;
7575
dispose(): void | Thenable<void>;
@@ -164,29 +164,6 @@ declare module 'vscode' {
164164
candidatePortSource?: CandidatePortSource;
165165
}
166166

167-
export namespace workspace {
168-
/**
169-
* Forwards a port. If the current resolver implements RemoteAuthorityResolver:forwardPort then that will be used to make the tunnel.
170-
* By default, openTunnel only support localhost; however, RemoteAuthorityResolver:tunnelFactory can be used to support other ips.
171-
*
172-
* @throws When run in an environment without a remote.
173-
*
174-
* @param tunnelOptions The `localPort` is a suggestion only. If that port is not available another will be chosen.
175-
*/
176-
export function openTunnel(tunnelOptions: TunnelOptions): Thenable<Tunnel>;
177-
178-
/**
179-
* Gets an array of the currently available tunnels. This does not include environment tunnels, only tunnels that have been created by the user.
180-
* Note that these are of type TunnelDescription and cannot be disposed.
181-
*/
182-
// export let tunnels: Thenable<TunnelDescription[]>;
183-
184-
/**
185-
* Fired when the list of tunnels has changed.
186-
*/
187-
export const onDidChangeTunnels: Event<void>;
188-
}
189-
190167
export interface ResourceLabelFormatter {
191168
scheme: string;
192169
authority?: string;

src/vscode-dts/vscode.proposed.tunnels.d.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ declare module 'vscode' {
1212
// The desired local port. If this port can't be used, then another will be chosen.
1313
localAddressPort?: number;
1414
label?: string;
15+
/**
16+
* @deprecated Use privacy instead
17+
*/
18+
public?: boolean;
1519
privacy?: string;
1620
protocol?: string;
1721
}
@@ -20,6 +24,10 @@ declare module 'vscode' {
2024
remoteAddress: { port: number; host: string };
2125
//The complete local address(ex. localhost:1234)
2226
localAddress: { port: number; host: string } | string;
27+
/**
28+
* @deprecated Use privacy instead
29+
*/
30+
public?: boolean;
2331
privacy?: string;
2432
// If protocol is not provided it is assumed to be http, regardless of the localAddress.
2533
protocol?: string;
@@ -51,6 +59,6 @@ declare module 'vscode' {
5159
/**
5260
* Fired when the list of tunnels has changed.
5361
*/
54-
// export const onDidChangeTunnels: Event<void>;
62+
export const onDidChangeTunnels: Event<void>;
5563
}
5664
}

0 commit comments

Comments
 (0)