diff --git a/package.json b/package.json index 203c1fb812..daa31e306c 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@blueprintjs/core": "^3.36.0", "@blueprintjs/popover2": "^0.12.2", "@blueprintjs/select": "^3.15.0", - "@electron/fiddle-core": "^1.3.3", + "@electron/fiddle-core": "^1.4.0", "@octokit/rest": "^17.0.0", "@sentry/electron": "^5.11.0", "algoliasearch": "^4.12.0", diff --git a/src/interfaces.ts b/src/interfaces.ts index 51f73fde5a..1a50b29b35 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -280,6 +280,7 @@ export interface StartFiddleParams { dir: string; options: string[]; env: { [x: string]: string | undefined }; + runFromAsar?: boolean; } export interface DownloadVersionParams { diff --git a/src/main/fiddle-core.ts b/src/main/fiddle-core.ts index bc516c2699..cd90e3db53 100644 --- a/src/main/fiddle-core.ts +++ b/src/main/fiddle-core.ts @@ -35,6 +35,7 @@ export async function startFiddle( localPath, options, version, + runFromAsar, } = params; const env = { ...process.env }; @@ -53,7 +54,7 @@ export async function startFiddle( const child = await runner.spawn( isValidBuild && localPath ? Installer.getExecPath(localPath) : version, dir, - { args: options, cwd: dir, env }, + { args: options, cwd: dir, env, runFromAsar }, ); fiddleProcesses.set(webContents, child); diff --git a/src/renderer/components/commands-runner.tsx b/src/renderer/components/commands-runner.tsx index e2fdd124ae..2c1bd6228a 100644 --- a/src/renderer/components/commands-runner.tsx +++ b/src/renderer/components/commands-runner.tsx @@ -1,6 +1,14 @@ import * as React from 'react'; -import { Button, ButtonProps, Spinner } from '@blueprintjs/core'; +import { + Button, + ButtonGroup, + ButtonProps, + Menu, + MenuItem, + Spinner, +} from '@blueprintjs/core'; +import { Popover2 } from '@blueprintjs/popover2'; import { observer } from 'mobx-react'; import { InstallState, VersionSource } from '../../interfaces'; @@ -59,7 +67,9 @@ export const Runner = observer( props.icon = ; } else { props.text = 'Run'; - props.onClick = window.app.runner.run; + props.onClick = () => { + window.app.runner.run({ runFromAsar: false }); + }; props.icon = 'play'; } break; @@ -76,8 +86,36 @@ export const Runner = observer( props.icon = ; } } + const isAsarDisabled: boolean = + props.disabled || isRunning || isInstallingModules; - return