From 65412db1e222a605bf0ddf7db35843e49e322ccf Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sat, 10 Jun 2023 18:59:15 +0200 Subject: [PATCH] feat: local dev page on the web and compatible with vscode extension --- cli/dev.ts | 17 +------------ frontend/src/lib/cloud.ts | 4 +-- .../(root)/(logged)/scripts/dev/+page.svelte | 25 +++++++++---------- frontend/src/routes/(root)/+layout.svelte | 20 ++++++--------- 4 files changed, 23 insertions(+), 43 deletions(-) diff --git a/cli/dev.ts b/cli/dev.ts index 45a0bc1e76..77bc1c66aa 100644 --- a/cli/dev.ts +++ b/cli/dev.ts @@ -1,13 +1,5 @@ import getPort from "https://deno.land/x/getport@v2.1.2/mod.ts"; -import { - Application, - Command, - Router, - UserService, - log, - open, - path, -} from "./deps.ts"; +import { Application, Command, Router, log, open, path } from "./deps.ts"; import { GlobalOptions } from "./types.ts"; import { ignoreF } from "./sync.ts"; import { requireLogin, resolveWorkspace } from "./context.ts"; @@ -17,9 +9,6 @@ async function dev(opts: GlobalOptions & { filter?: string }) { const workspace = await resolveWorkspace(opts); await requireLogin(opts); - const username = (await UserService.whoami({ workspace: workspace.name })) - .username; - log.info("Started dev mode"); let currentLastEdit: LastEdit | undefined = undefined; @@ -65,8 +54,6 @@ async function dev(opts: GlobalOptions & { filter?: string }) { content, path: wmPath, language: lang, - workspace: workspace.workspaceId, - username, }; broadcast_changes(currentLastEdit); log.info("Updated " + wmPath); @@ -76,8 +63,6 @@ async function dev(opts: GlobalOptions & { filter?: string }) { content: string; path: string; language: string; - workspace: string; - username: string; }; const connectedClients = new Set(); diff --git a/frontend/src/lib/cloud.ts b/frontend/src/lib/cloud.ts index 276e425dc4..105f835cc8 100644 --- a/frontend/src/lib/cloud.ts +++ b/frontend/src/lib/cloud.ts @@ -31,12 +31,12 @@ if (BROWSER) { const workspace = get(workspaceStore) const user = get(userStore) - if (workspace && user && !user.is_super_admin && !user.is_admin) { + if (workspace && user) { userStore.set(await getUserExt(workspace)) console.log('refreshed user') } } catch (e) { console.error('Could not refresh user', e) } - }, 30000) + }, 300000) } diff --git a/frontend/src/routes/(root)/(logged)/scripts/dev/+page.svelte b/frontend/src/routes/(root)/(logged)/scripts/dev/+page.svelte index eb2bfb939d..01b4562f3d 100644 --- a/frontend/src/routes/(root)/(logged)/scripts/dev/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/scripts/dev/+page.svelte @@ -6,7 +6,7 @@ import LogPanel from '$lib/components/scriptEditor/LogPanel.svelte' import { CompletedJob, Job, JobService, Preview } from '$lib/gen' import { inferArgs } from '$lib/infer' - import { workspaceStore } from '$lib/stores' + import { userStore, workspaceStore } from '$lib/stores' import { emptySchema, getModifierKey } from '$lib/utils' import { faPlay } from '@fortawesome/free-solid-svg-icons' import { Pane, Splitpanes } from 'svelte-splitpanes' @@ -27,8 +27,6 @@ content: string path: string language: Preview.language - workspace: string - username: string } let currentScript: LastEdit | undefined = undefined @@ -41,14 +39,16 @@ const port = searchParams?.get('port') || '3001' const socket = new WebSocket(`ws://localhost:${port}/ws`) + let lm: any = undefined window.addEventListener( 'message', (event) => { - if (event.type == 'runTest') { + lm = event.data + if (event.data.type == 'runTest') { runTest() return } - replaceData(event.data) + replaceScript(event.data) }, false ) @@ -72,7 +72,6 @@ if (!currentScript) { return } - $workspaceStore = currentScript.workspace //@ts-ignore testJobLoader.runPreview( currentScript.path, @@ -89,9 +88,9 @@ } console.log('Loading past tests') pastPreviews = await JobService.listCompletedJobs({ - workspace: currentScript.workspace, + workspace: $workspaceStore!, jobKinds: 'preview', - createdBy: currentScript.username.split('@')[0].toLowerCase(), + createdBy: $userStore?.username, scriptPathExact: currentScript.path }) } @@ -104,15 +103,15 @@ } let lastPath: string | undefined = undefined - async function replaceScript(LastEdit: LastEdit) { - currentScript = LastEdit - if (lastPath !== LastEdit.path) { + async function replaceScript(lastEdit: LastEdit) { + currentScript = lastEdit + if (lastPath !== lastEdit.path) { schema = emptySchema() } try { - await inferArgs(LastEdit.language, LastEdit.content, schema) + await inferArgs(lastEdit.language, lastEdit.content, schema) schema = schema - lastPath = LastEdit.path + lastPath = lastEdit.path validCode = true } catch (e) { console.error(e) diff --git a/frontend/src/routes/(root)/+layout.svelte b/frontend/src/routes/(root)/+layout.svelte index 1a5e23aba5..7a2fde1d98 100644 --- a/frontend/src/routes/(root)/+layout.svelte +++ b/frontend/src/routes/(root)/+layout.svelte @@ -1,21 +1,21 @@