diff --git a/arduino-ide-extension/src/electron-main/theia/electron-main-application.ts b/arduino-ide-extension/src/electron-main/theia/electron-main-application.ts index e6f91f5b9..5e3356904 100644 --- a/arduino-ide-extension/src/electron-main/theia/electron-main-application.ts +++ b/arduino-ide-extension/src/electron-main/theia/electron-main-application.ts @@ -291,7 +291,9 @@ export class ElectronMainApplication extends TheiaElectronMainApplication { true ); if (sketchFolderPath) { - this.openFilePromise.reject(new InterruptWorkspaceRestoreError()); + this.openFilePromise.reject({ + name: 'InterruptWorkspaceRestoreError', + }); await this.openSketch(sketchFolderPath); } } @@ -329,7 +331,7 @@ export class ElectronMainApplication extends TheiaElectronMainApplication { // 2. A short timeout resolves the promise automatically, falling back to the usual app launch await this.openFilePromise.promise; } catch (err) { - if (err instanceof InterruptWorkspaceRestoreError) { + if (err && (err as any).name === 'InterruptWorkspaceRestoreError') { // Application has received the `open-file` event and will skip the default application launch return; } @@ -803,15 +805,6 @@ export class ElectronMainApplication extends TheiaElectronMainApplication { } } -class InterruptWorkspaceRestoreError extends Error { - constructor() { - super( - "Received 'open-file' event. Interrupting the default launch workflow." - ); - Object.setPrototypeOf(this, InterruptWorkspaceRestoreError.prototype); - } -} - // This is a workaround for a limitation with the Theia CLI and `electron-builder`. // It is possible to run the `electron-builder` with `-c.extraMetadata.foo.bar=36` option. // On the fly, a `package.json` file will be generated for the final bundled application with the additional `{ "foo": { "bar": 36 } }` metadata.