@@ -16,6 +16,7 @@ export class GitpodPortViewProvider implements vscode.WebviewViewProvider {
16
16
private _view ?: vscode . WebviewView ;
17
17
18
18
readonly portMap = new Map < number , GitpodWorkspacePort > ( ) ;
19
+ private portList : GitpodWorkspacePort [ ] = [ ] ;
19
20
20
21
private readonly onDidExposeServedPortEmitter = new vscode . EventEmitter < ExposedServedGitpodWorkspacePort > ( ) ;
21
22
readonly onDidExposeServedPort = this . onDidExposeServedPortEmitter . event ;
@@ -82,6 +83,7 @@ export class GitpodPortViewProvider implements vscode.WebviewViewProvider {
82
83
this . updating = true ;
83
84
try {
84
85
if ( ! this . portStatus ) { return ; }
86
+ this . portList = [ ] ;
85
87
this . portStatus . forEach ( e => {
86
88
const localPort = e . localPort ;
87
89
const tunnel = this . tunnelsMap . get ( localPort ) ;
@@ -90,8 +92,10 @@ export class GitpodPortViewProvider implements vscode.WebviewViewProvider {
90
92
if ( ! gitpodPort ) {
91
93
gitpodPort = new GitpodWorkspacePort ( localPort , e , tunnel ) ;
92
94
this . portMap . set ( localPort , gitpodPort ) ;
95
+ this . portList . push ( gitpodPort ) ;
93
96
} else {
94
97
gitpodPort . update ( e , tunnel ) ;
98
+ this . portList . push ( gitpodPort ) ;
95
99
}
96
100
if ( isExposedServedGitpodWorkspacePort ( gitpodPort ) && ! isExposedServedPort ( prevStatus ) ) {
97
101
this . onDidExposeServedPortEmitter . fire ( gitpodPort ) ;
@@ -105,8 +109,7 @@ export class GitpodPortViewProvider implements vscode.WebviewViewProvider {
105
109
}
106
110
107
111
private updateHtml ( ) : void {
108
- const ports = Array . from ( this . portMap . values ( ) ) . map ( e => e . toSvelteObject ( ) ) ;
109
- this . _view ?. webview . postMessage ( { command : 'updatePorts' , ports } ) ;
112
+ this . _view ?. webview . postMessage ( { command : 'updatePorts' , ports : this . portList . map ( e => e . toSvelteObject ( ) ) } ) ;
110
113
}
111
114
112
115
private onHtmlCommand ( ) {
0 commit comments