diff --git a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx index 1da26c29..b2ee9982 100644 --- a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx +++ b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx @@ -157,6 +157,10 @@ export class ArduinoFrontendContribution implements FrontendApplicationContribut @postConstruct() protected async init(): Promise { + if (!window.navigator.onLine) { + // tslint:disable-next-line:max-line-length + this.messageService.warn('You appear to be offline. Without an Internet connection, the Arduino CLI might not be able to download the required resources and could cause malfunction. Please connect to the Internet and restart the application.'); + } const updateStatusBar = (config: BoardsConfig.Config) => { this.statusBar.setElement('arduino-selected-board', { alignment: StatusBarAlignment.RIGHT, diff --git a/arduino-ide-extension/src/node/core-client-provider.ts b/arduino-ide-extension/src/node/core-client-provider.ts index f1a09d06..1d325dcf 100644 --- a/arduino-ide-extension/src/node/core-client-provider.ts +++ b/arduino-ide-extension/src/node/core-client-provider.ts @@ -38,14 +38,12 @@ export class CoreClientProvider extends GrpcClientProvider(resolve => { + const initResp = await new Promise((resolve, reject) => { let resp: InitResp | undefined = undefined; const stream = client.init(initReq); stream.on('data', (data: InitResp) => resp = data); stream.on('end', () => resolve(resp)); - stream.on('error', err => { - console.log('init error', err) - }); + stream.on('error', err => reject(err)); }); const instance = initResp.getInstance();