Skip to content

Commit b2bf368

Browse files
Akos Kittakittaakos
Akos Kitta
authored andcommitted
fix: update Examples and Include Library menu after ZIP install
Closes #659 Signed-off-by: Akos Kitta <[email protected]>
1 parent 287b2e3 commit b2bf368

File tree

4 files changed

+29
-19
lines changed

4 files changed

+29
-19
lines changed

Diff for: arduino-ide-extension/src/browser/notification-center.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export class NotificationCenter
5656
item: BoardsPackage;
5757
}>();
5858
private readonly libraryDidInstallEmitter = new Emitter<{
59-
item: LibraryPackage;
59+
item: LibraryPackage | 'zip-install';
6060
}>();
6161
private readonly libraryDidUninstallEmitter = new Emitter<{
6262
item: LibraryPackage;
@@ -156,7 +156,9 @@ export class NotificationCenter
156156
this.platformDidUninstallEmitter.fire(event);
157157
}
158158

159-
notifyLibraryDidInstall(event: { item: LibraryPackage }): void {
159+
notifyLibraryDidInstall(event: {
160+
item: LibraryPackage | 'zip-install';
161+
}): void {
160162
this.libraryDidInstallEmitter.fire(event);
161163
}
162164

Diff for: arduino-ide-extension/src/common/protocol/notification-service.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ export interface NotificationServiceClient {
6262
notifyPlatformDidUninstall(event: { item: BoardsPackage }): void;
6363

6464
// Libraries
65-
notifyLibraryDidInstall(event: { item: LibraryPackage }): void;
65+
notifyLibraryDidInstall(event: {
66+
item: LibraryPackage | 'zip-install';
67+
}): void;
6668
notifyLibraryDidUninstall(event: { item: LibraryPackage }): void;
6769

6870
// Boards discovery

Diff for: arduino-ide-extension/src/node/library-service-impl.ts

+19-15
Original file line numberDiff line numberDiff line change
@@ -373,22 +373,26 @@ export class LibraryServiceImpl
373373

374374
// stop the board discovery
375375
await this.boardDiscovery.stop();
376-
377-
const resp = client.zipLibraryInstall(req);
378-
resp.on(
379-
'data',
380-
ExecuteWithProgress.createDataCallback({
381-
progressId,
382-
responseService: this.responseService,
383-
})
384-
);
385-
await new Promise<void>((resolve, reject) => {
386-
resp.on('end', () => {
387-
this.boardDiscovery.start(); // TODO: remove discovery dependency from boards service. See https://github.com/arduino/arduino-ide/pull/1107 why this is here.
388-
resolve();
376+
try {
377+
const resp = client.zipLibraryInstall(req);
378+
resp.on(
379+
'data',
380+
ExecuteWithProgress.createDataCallback({
381+
progressId,
382+
responseService: this.responseService,
383+
})
384+
);
385+
await new Promise<void>((resolve, reject) => {
386+
resp.on('end', resolve);
387+
resp.on('error', reject);
389388
});
390-
resp.on('error', reject);
391-
});
389+
await this.refresh(); // let the CLI re-scan the libraries
390+
this.notificationServer.notifyLibraryDidInstall({
391+
item: 'zip-install',
392+
});
393+
} finally {
394+
this.boardDiscovery.start(); // TODO: remove discovery dependency from boards service. See https://github.com/arduino/arduino-ide/pull/1107 why this is here.
395+
}
392396
}
393397

394398
async uninstall(options: {

Diff for: arduino-ide-extension/src/node/notification-service-server.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ export class NotificationServiceServerImpl
5959
this.clients.forEach((client) => client.notifyPlatformDidUninstall(event));
6060
}
6161

62-
notifyLibraryDidInstall(event: { item: LibraryPackage }): void {
62+
notifyLibraryDidInstall(event: {
63+
item: LibraryPackage | 'zip-install';
64+
}): void {
6365
this.clients.forEach((client) => client.notifyLibraryDidInstall(event));
6466
}
6567

0 commit comments

Comments
 (0)