diff --git a/src/contributions/commands/isURI.ts b/src/contributions/commands/isURI.ts new file mode 100644 index 0000000..ec223ce --- /dev/null +++ b/src/contributions/commands/isURI.ts @@ -0,0 +1,10 @@ +import { URL } from "node:url"; + +export function isURI(something: any): boolean { + try { + new URL(something); + return true; + } catch (error) { + return false; + } +} diff --git a/src/contributions/commands/workspace.ts b/src/contributions/commands/workspace.ts index 1ed2b9d..3cb5fa4 100644 --- a/src/contributions/commands/workspace.ts +++ b/src/contributions/commands/workspace.ts @@ -4,9 +4,13 @@ import { runBuild } from "#building/build-runner"; import * as stbls from "#stbls/stbl-commands"; import { convertFolderToProject } from "#workspace/folder-to-project"; import S4TKWorkspaceManager from "#workspace/workspace-manager"; +import { isURI } from "./isURI"; export default function registerWorkspaceCommands() { vscode.commands.registerCommand(S4TKCommand.workspace.build, async (uri?: vscode.Uri) => { + if (!isURI(uri)) { + uri = undefined; + } const workspace = await S4TKWorkspaceManager.chooseWorkspace(uri); if (workspace) runBuild(workspace, "build", "Build"); });