1
- import { injectable , inject , optional } from 'inversify' ;
1
+ import { injectable , inject } from 'inversify' ;
2
2
import { Emitter } from '@theia/core/lib/common/event' ;
3
3
import { ILogger } from '@theia/core/lib/common/logger' ;
4
4
import { MessageService } from '@theia/core/lib/common/message-service' ;
5
5
import { StorageService } from '@theia/core/lib/browser/storage-service' ;
6
6
import { FrontendApplicationContribution } from '@theia/core/lib/browser/frontend-application' ;
7
7
import { RecursiveRequired } from '../../common/types' ;
8
- import { BoardsServiceClient , AttachedBoardsChangeEvent , BoardInstalledEvent , Board , Port , BoardUninstalledEvent , BoardsService } from '../../common/protocol' ;
8
+ import {
9
+ Port ,
10
+ Board ,
11
+ BoardsService ,
12
+ BoardsPackage ,
13
+ InstalledEvent ,
14
+ UninstalledEvent ,
15
+ BoardsServiceClient ,
16
+ AttachedBoardsChangeEvent
17
+ } from '../../common/protocol' ;
9
18
import { BoardsConfig } from './boards-config' ;
10
19
import { naturalCompare } from '../../common/utils' ;
11
20
import { compareAnything } from '../theia/monaco/comparers' ;
@@ -21,15 +30,14 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp
21
30
@inject ( ILogger )
22
31
protected logger : ILogger ;
23
32
24
- @optional ( )
25
33
@inject ( MessageService )
26
34
protected messageService : MessageService ;
27
35
28
36
@inject ( StorageService )
29
37
protected storageService : StorageService ;
30
38
31
- protected readonly onBoardsPackageInstalledEmitter = new Emitter < BoardInstalledEvent > ( ) ;
32
- protected readonly onBoardsPackageUninstalledEmitter = new Emitter < BoardUninstalledEvent > ( ) ;
39
+ protected readonly onBoardsPackageInstalledEmitter = new Emitter < InstalledEvent < BoardsPackage > > ( ) ;
40
+ protected readonly onBoardsPackageUninstalledEmitter = new Emitter < UninstalledEvent < BoardsPackage > > ( ) ;
33
41
protected readonly onAttachedBoardsChangedEmitter = new Emitter < AttachedBoardsChangeEvent > ( ) ;
34
42
protected readonly onBoardsConfigChangedEmitter = new Emitter < BoardsConfig . Config > ( ) ;
35
43
protected readonly onAvailableBoardsChangedEmitter = new Emitter < AvailableBoard [ ] > ( ) ;
@@ -119,13 +127,13 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp
119
127
return false ;
120
128
}
121
129
122
- notifyBoardInstalled ( event : BoardInstalledEvent ) : void {
123
- this . logger . info ( 'Board installed: ' , JSON . stringify ( event ) ) ;
130
+ notifyInstalled ( event : InstalledEvent < BoardsPackage > ) : void {
131
+ this . logger . info ( 'Boards package installed: ' , JSON . stringify ( event ) ) ;
124
132
this . onBoardsPackageInstalledEmitter . fire ( event ) ;
125
133
const { selectedBoard } = this . boardsConfig ;
126
- const { installedVersion, id } = event . pkg ;
134
+ const { installedVersion, id } = event . item ;
127
135
if ( selectedBoard ) {
128
- const installedBoard = event . pkg . boards . find ( ( { name } ) => name === selectedBoard . name ) ;
136
+ const installedBoard = event . item . boards . find ( ( { name } ) => name === selectedBoard . name ) ;
129
137
if ( installedBoard && ( ! selectedBoard . fqbn || selectedBoard . fqbn === installedBoard . fqbn ) ) {
130
138
this . logger . info ( `Board package ${ id } [${ installedVersion } ] was installed. Updating the FQBN of the currently selected ${ selectedBoard . name } board. [FQBN: ${ installedBoard . fqbn } ]` ) ;
131
139
this . boardsConfig = {
@@ -136,14 +144,14 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp
136
144
}
137
145
}
138
146
139
- notifyBoardUninstalled ( event : BoardUninstalledEvent ) : void {
140
- this . logger . info ( 'Board uninstalled: ' , JSON . stringify ( event ) ) ;
147
+ notifyUninstalled ( event : UninstalledEvent < BoardsPackage > ) : void {
148
+ this . logger . info ( 'Boards package uninstalled: ' , JSON . stringify ( event ) ) ;
141
149
this . onBoardsPackageUninstalledEmitter . fire ( event ) ;
142
150
const { selectedBoard } = this . boardsConfig ;
143
151
if ( selectedBoard && selectedBoard . fqbn ) {
144
- const uninstalledBoard = event . pkg . boards . find ( ( { name } ) => name === selectedBoard . name ) ;
152
+ const uninstalledBoard = event . item . boards . find ( ( { name } ) => name === selectedBoard . name ) ;
145
153
if ( uninstalledBoard && uninstalledBoard . fqbn === selectedBoard . fqbn ) {
146
- this . logger . info ( `Board package ${ event . pkg . id } was uninstalled. Discarding the FQBN of the currently selected ${ selectedBoard . name } board.` ) ;
154
+ this . logger . info ( `Board package ${ event . item . id } was uninstalled. Discarding the FQBN of the currently selected ${ selectedBoard . name } board.` ) ;
147
155
const selectedBoardWithoutFqbn = {
148
156
name : selectedBoard . name
149
157
// No FQBN
@@ -219,7 +227,7 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp
219
227
}
220
228
221
229
if ( ! config . selectedBoard ) {
222
- if ( ! options . silent && this . messageService ) {
230
+ if ( ! options . silent ) {
223
231
this . messageService . warn ( 'No boards selected.' , { timeout : 3000 } ) ;
224
232
}
225
233
return false ;
@@ -241,14 +249,14 @@ export class BoardsServiceClientImpl implements BoardsServiceClient, FrontendApp
241
249
242
250
const { name } = config . selectedBoard ;
243
251
if ( ! config . selectedPort ) {
244
- if ( ! options . silent && this . messageService ) {
252
+ if ( ! options . silent ) {
245
253
this . messageService . warn ( `No ports selected for board: '${ name } '.` , { timeout : 3000 } ) ;
246
254
}
247
255
return false ;
248
256
}
249
257
250
258
if ( ! config . selectedBoard . fqbn ) {
251
- if ( ! options . silent && this . messageService ) {
259
+ if ( ! options . silent ) {
252
260
this . messageService . warn ( `The FQBN is not available for the selected board ${ name } . Do you have the corresponding core installed?` , { timeout : 3000 } ) ;
253
261
}
254
262
return false ;
0 commit comments