mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-10 08:07:03 +00:00
internal: rolldown vite (#6584)
This commit is contained in:
@@ -16,11 +16,12 @@ jobs:
|
||||
runs-on: ubicloud-standard-8
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v3
|
||||
- uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: 18
|
||||
node-version: 24
|
||||
cache: "npm"
|
||||
cache-dependency-path: "frontend/package-lock.json"
|
||||
- name: "npm check"
|
||||
timeout-minutes: 5
|
||||
run:
|
||||
cd frontend && npm ci && npm run generate-backend-client && npm run
|
||||
run: cd frontend && npm ci && npm run generate-backend-client && npm run
|
||||
check
|
||||
|
||||
Generated
+506
-799
File diff suppressed because it is too large
Load Diff
@@ -36,7 +36,6 @@
|
||||
"@types/vscode": "^1.83.5",
|
||||
"@typescript-eslint/eslint-plugin": "^5.59.8",
|
||||
"@typescript-eslint/parser": "^5.60.0",
|
||||
"@windmill-labs/esbuild-import-meta-url-plugin": "0.0.0-semantic-release",
|
||||
"@zerodevx/svelte-toast": "^0.9.6",
|
||||
"autoprefixer": "^10.4.13",
|
||||
"cssnano": "^6.0.1",
|
||||
@@ -65,7 +64,7 @@
|
||||
"tar": "^7.4.3",
|
||||
"tslib": "^2.6.1",
|
||||
"typescript": "^5.5.0",
|
||||
"vite": "^7.1.5",
|
||||
"vite": "npm:rolldown-vite@latest",
|
||||
"vite-plugin-mkcert": "^1.17.5",
|
||||
"yootils": "^0.3.1"
|
||||
},
|
||||
|
||||
@@ -340,7 +340,7 @@
|
||||
|
||||
let setCodeDisabled = false
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
function setNewValueFromCode(nvalue: any) {
|
||||
if (!deepEqual(nvalue, value)) {
|
||||
value = nvalue
|
||||
|
||||
@@ -30,8 +30,8 @@
|
||||
}
|
||||
|
||||
let showTooltip = false
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let inTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
let inTimeout: number | undefined = undefined
|
||||
|
||||
function open() {
|
||||
clearTimeout(timeout)
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
let useLock = $state(false)
|
||||
|
||||
let lockChanges = false
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
|
||||
let loadingCodebaseButton = $state(false)
|
||||
let lastCommandId = ''
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
|
||||
let lastArgs = $state.snapshot(otherArgs)
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = $state()
|
||||
let timeout: number | undefined = $state()
|
||||
let nargs = $state($state.snapshot(otherArgs))
|
||||
$effect(() => {
|
||||
otherArgs
|
||||
|
||||
@@ -1,72 +1,6 @@
|
||||
<script module>
|
||||
import '@codingame/monaco-vscode-standalone-languages'
|
||||
import '@codingame/monaco-vscode-standalone-typescript-language-features'
|
||||
import processStdContent from '$lib/process.d.ts.txt?raw'
|
||||
|
||||
languages.typescript.typescriptDefaults.addExtraLib(processStdContent, 'process.d.ts')
|
||||
|
||||
languages.typescript.typescriptDefaults.setModeConfiguration({
|
||||
completionItems: true,
|
||||
hovers: true,
|
||||
documentSymbols: true,
|
||||
definitions: true,
|
||||
references: true,
|
||||
documentHighlights: true,
|
||||
rename: true,
|
||||
diagnostics: true,
|
||||
documentRangeFormattingEdits: true,
|
||||
signatureHelp: true,
|
||||
onTypeFormattingEdits: true,
|
||||
codeActions: true,
|
||||
inlayHints: true
|
||||
})
|
||||
|
||||
// languages.typescript.javascriptDefaults.setEagerModelSync(true)
|
||||
languages.typescript.typescriptDefaults.setEagerModelSync(true)
|
||||
|
||||
// languages.typescript.javascriptDefaults.setDiagnosticsOptions({
|
||||
// noSemanticValidation: false,
|
||||
// noSyntaxValidation: false,
|
||||
// noSuggestionDiagnostics: false,
|
||||
// diagnosticCodesToIgnore: [1108]
|
||||
// })
|
||||
|
||||
languages.typescript.typescriptDefaults.setDiagnosticsOptions({
|
||||
noSemanticValidation: false,
|
||||
noSyntaxValidation: false,
|
||||
|
||||
noSuggestionDiagnostics: false,
|
||||
diagnosticCodesToIgnore: [1108, 7006, 7034, 7019, 7005]
|
||||
})
|
||||
|
||||
languages.typescript.typescriptDefaults.setCompilerOptions({
|
||||
target: languages.typescript.ScriptTarget.Latest,
|
||||
allowNonTsExtensions: true,
|
||||
noSemanticValidation: false,
|
||||
noSyntaxValidation: false,
|
||||
completionItems: true,
|
||||
hovers: true,
|
||||
documentSymbols: true,
|
||||
definitions: true,
|
||||
references: true,
|
||||
documentHighlights: true,
|
||||
rename: true,
|
||||
diagnostics: true,
|
||||
documentRangeFormattingEdits: true,
|
||||
signatureHelp: true,
|
||||
onTypeFormattingEdits: true,
|
||||
codeActions: true,
|
||||
inlayHints: true,
|
||||
checkJs: true,
|
||||
allowJs: true,
|
||||
noUnusedLocals: true,
|
||||
strict: true,
|
||||
noLib: false,
|
||||
allowImportingTsExtensions: true,
|
||||
allowSyntheticDefaultImports: true,
|
||||
moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs,
|
||||
jsx: languages.typescript.JsxEmit.React
|
||||
})
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
@@ -156,6 +90,7 @@
|
||||
import type { Selection } from 'monaco-editor'
|
||||
import { getDbSchemas } from './apps/components/display/dbtable/utils'
|
||||
import { PYTHON_PREPROCESSOR_MODULE_CODE, TS_PREPROCESSOR_MODULE_CODE } from '$lib/script_helpers'
|
||||
import { setMonacoTypescriptOptions } from './monacoLanguagesOptions'
|
||||
// import EditorTheme from './EditorTheme.svelte'
|
||||
|
||||
let divEl: HTMLDivElement | null = $state(null)
|
||||
@@ -237,7 +172,7 @@
|
||||
|
||||
let websockets: WebSocket[] = []
|
||||
let languageClients: MonacoLanguageClient[] = []
|
||||
let websocketInterval: NodeJS.Timeout | undefined
|
||||
let websocketInterval: number | undefined
|
||||
let lastWsAttempt: Date = new Date()
|
||||
let nbWsAttempt = 0
|
||||
let disposeMethod: (() => void) | undefined
|
||||
@@ -1128,7 +1063,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
let pathTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let pathTimeout: number | undefined = undefined
|
||||
|
||||
function getHostname() {
|
||||
return BROWSER ? window.location.protocol + '//' + window.location.host : 'SSR'
|
||||
@@ -1255,8 +1190,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
let timeoutModel: NodeJS.Timeout | undefined = undefined
|
||||
let timeoutModel: number | undefined = undefined
|
||||
async function loadMonaco() {
|
||||
setMonacoTypescriptOptions()
|
||||
console.log('path', uri)
|
||||
|
||||
try {
|
||||
@@ -1328,7 +1264,7 @@
|
||||
|
||||
// updateEditorKeybindingsMode(editor, 'vim', undefined)
|
||||
|
||||
let ataModel: NodeJS.Timeout | undefined = undefined
|
||||
let ataModel: number | undefined = undefined
|
||||
|
||||
editor?.onDidChangeModelContent((event) => {
|
||||
timeoutModel && clearTimeout(timeoutModel)
|
||||
@@ -1605,7 +1541,7 @@
|
||||
|
||||
let aiChatInlineWidget: AIChatInlineWidget | null = $state(null)
|
||||
|
||||
let loadTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let loadTimeout: number | undefined = undefined
|
||||
onMount(async () => {
|
||||
if (BROWSER) {
|
||||
if (loadAsync) {
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
let startedAt: number | undefined = undefined
|
||||
let busy: boolean = false
|
||||
let interval: NodeJS.Timeout | undefined
|
||||
let interval: number | undefined
|
||||
// Detect when execution of job started
|
||||
$: if (
|
||||
!busy &&
|
||||
|
||||
@@ -526,7 +526,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
|
||||
function saveSessionDraft() {
|
||||
timeout && clearTimeout(timeout)
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
)
|
||||
|
||||
let retry_selected = $state('')
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
|
||||
let expandedSubflows: Record<string, FlowModule[]> = $state({})
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
}
|
||||
let cachedArgs: Record<string, any> = {}
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
function refreshInterval() {
|
||||
timeout && clearTimeout(timeout)
|
||||
timeout = setTimeout(async () => {
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
|
||||
let lastStartedAt: number = Date.now()
|
||||
let currentId: string | undefined = $state(undefined)
|
||||
let noPingTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let noPingTimeout: number | undefined = undefined
|
||||
let lastNoLogs = $state(noLogs)
|
||||
let lastCompletedJobId = $state<string | undefined>(undefined)
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
function debouncedUpdate() {
|
||||
timeout && clearTimeout(timeout)
|
||||
timeout = setTimeout(updateValue, 500)
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
validateName(meta) && validatePath(path, kind)
|
||||
}
|
||||
|
||||
let validateTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let validateTimeout: number | undefined = undefined
|
||||
|
||||
async function validatePath(path: string, kind: PathKind): Promise<void> {
|
||||
if (validateTimeout) {
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
}
|
||||
|
||||
let showTooltip = $state(false)
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let inTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
let inTimeout: number | undefined = undefined
|
||||
|
||||
function open() {
|
||||
clearTimeout(timeout)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
minimal = false
|
||||
}: { jobId: string; workspaceId?: string | undefined; minimal?: boolean } = $props()
|
||||
|
||||
let queuePositionInterval: NodeJS.Timeout | undefined
|
||||
let queuePositionInterval: number | undefined
|
||||
let queueState = $state(undefined) as undefined | { position?: number }
|
||||
|
||||
let fetchingQueuePosition = false
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
let scheduledFor = $state(undefined) as undefined | number
|
||||
|
||||
let scheduledForTimeout: NodeJS.Timeout | undefined
|
||||
let scheduledForTimeout: number | undefined
|
||||
$effect(() => {
|
||||
if (jobId && workspace) {
|
||||
clearTimeout(scheduledForTimeout)
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
}
|
||||
})
|
||||
|
||||
let debounced: NodeJS.Timeout | undefined = undefined
|
||||
let debounced: number | undefined = undefined
|
||||
|
||||
function onArgsChange(args: any) {
|
||||
try {
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
|
||||
let filter = $state('')
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
let firstLoad = true
|
||||
|
||||
let secondaryStorageNames = usePromise(
|
||||
|
||||
@@ -320,7 +320,7 @@
|
||||
let loadingSave = $state(false)
|
||||
let loadingDraft = $state(false)
|
||||
|
||||
let timeout2: NodeJS.Timeout | undefined = undefined
|
||||
let timeout2: number | undefined = undefined
|
||||
function encodeScriptState(script: NewScript) {
|
||||
untrack(() => timeout2 && clearTimeout(timeout2))
|
||||
timeout2 = setTimeout(() => {
|
||||
@@ -334,7 +334,7 @@
|
||||
}, 500)
|
||||
}
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
function saveSessionDraft() {
|
||||
timeout && clearTimeout(timeout)
|
||||
timeout = setTimeout(() => {
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
type ByWorkerGroup = Record<string, ByHostname>
|
||||
type ByMode = Record<string, ByWorkerGroup>
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = $state(undefined)
|
||||
let timeout: number | undefined = $state(undefined)
|
||||
|
||||
let allLogs: ByMode | undefined = $state(undefined)
|
||||
let manualPicker: ManuelDatePicker | undefined = $state(undefined)
|
||||
@@ -298,7 +298,7 @@
|
||||
|
||||
let logs: any = $state()
|
||||
|
||||
let debounceTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let debounceTimeout: number | undefined = undefined
|
||||
const debouncePeriod: number = 400
|
||||
let loadingLogs = $state(false)
|
||||
let loadingLogCounts = $state(false)
|
||||
|
||||
@@ -7,51 +7,6 @@
|
||||
import '@codingame/monaco-vscode-standalone-css-language-features'
|
||||
import '@codingame/monaco-vscode-standalone-typescript-language-features'
|
||||
import '@codingame/monaco-vscode-standalone-html-language-features'
|
||||
import {
|
||||
editor as meditor,
|
||||
KeyCode,
|
||||
KeyMod,
|
||||
Uri as mUri,
|
||||
languages,
|
||||
type IRange,
|
||||
type IDisposable,
|
||||
type IPosition
|
||||
} from 'monaco-editor'
|
||||
|
||||
languages.typescript.javascriptDefaults.setCompilerOptions({
|
||||
target: languages.typescript.ScriptTarget.Latest,
|
||||
allowNonTsExtensions: true,
|
||||
noSemanticValidation: false,
|
||||
noLib: true,
|
||||
moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
|
||||
})
|
||||
function setDiagnosticsOptions() {
|
||||
languages.typescript.javascriptDefaults.setDiagnosticsOptions({
|
||||
noSemanticValidation: false,
|
||||
noSyntaxValidation: false,
|
||||
noSuggestionDiagnostics: false,
|
||||
diagnosticCodesToIgnore: [1108]
|
||||
})
|
||||
}
|
||||
setDiagnosticsOptions()
|
||||
languages.json.jsonDefaults.setDiagnosticsOptions({
|
||||
validate: true,
|
||||
allowComments: false,
|
||||
schemas: [],
|
||||
enableSchemaRequest: true
|
||||
})
|
||||
languages.json.jsonDefaults.setModeConfiguration({
|
||||
documentRangeFormattingEdits: false,
|
||||
documentFormattingEdits: true,
|
||||
hovers: true,
|
||||
completionItems: true,
|
||||
documentSymbols: true,
|
||||
tokens: true,
|
||||
colors: true,
|
||||
foldingRanges: true,
|
||||
selectionRanges: true,
|
||||
diagnostics: true
|
||||
})
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
@@ -83,6 +38,17 @@
|
||||
import FakeMonacoPlaceHolder from './FakeMonacoPlaceHolder.svelte'
|
||||
import { editorPositionMap } from '$lib/utils'
|
||||
import { langToExt } from '$lib/editorLangUtils'
|
||||
import {
|
||||
editor as meditor,
|
||||
KeyCode,
|
||||
KeyMod,
|
||||
Uri as mUri,
|
||||
languages,
|
||||
type IRange,
|
||||
type IDisposable,
|
||||
type IPosition
|
||||
} from 'monaco-editor'
|
||||
import { setMonacoJavascriptOptions, setMonacoJsonOptions } from './monacoLanguagesOptions'
|
||||
// import { createConfiguredEditor } from 'vscode/monaco'
|
||||
// import type { IStandaloneCodeEditor } from 'vscode/vscode/vs/editor/standalone/browser/standaloneCodeEditor'
|
||||
|
||||
@@ -334,31 +300,11 @@
|
||||
let fontSize = $derived(small ? 12 : 14)
|
||||
|
||||
async function loadMonaco() {
|
||||
setMonacoJsonOptions()
|
||||
setMonacoJavascriptOptions()
|
||||
await initializeVscode()
|
||||
initialized = true
|
||||
|
||||
// if (lang === 'javascript') {
|
||||
// languages.typescript.javascriptDefaults.setCompilerOptions({
|
||||
// target: languages.typescript.ScriptTarget.Latest,
|
||||
// allowNonTsExtensions: true,
|
||||
// noSemanticValidation: false,
|
||||
// noLib: true,
|
||||
// moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
|
||||
// })
|
||||
// languages.typescript.javascriptDefaults.setDiagnosticsOptions({
|
||||
// noSemanticValidation: false,
|
||||
// noSyntaxValidation: false,
|
||||
// noSuggestionDiagnostics: false,
|
||||
// diagnosticCodesToIgnore: [1108]
|
||||
// })
|
||||
// } else if (lang === 'json') {
|
||||
// languages.json.jsonDefaults.setDiagnosticsOptions({
|
||||
// validate: true,
|
||||
// allowComments: false,
|
||||
// schemas: [],
|
||||
// enableSchemaRequest: true
|
||||
// })
|
||||
// }
|
||||
try {
|
||||
model = meditor.createModel(code ?? '', lang, mUri.parse(uri))
|
||||
} catch (err) {
|
||||
@@ -413,7 +359,7 @@
|
||||
}
|
||||
keepModelAroundToAvoidDisposalOfWorkers()
|
||||
|
||||
let timeoutModel: NodeJS.Timeout | undefined = undefined
|
||||
let timeoutModel: number | undefined = undefined
|
||||
editor.onDidChangeModelContent((event) => {
|
||||
suggestion = ''
|
||||
timeoutModel && clearTimeout(timeoutModel)
|
||||
|
||||
@@ -1,19 +1,5 @@
|
||||
<script module>
|
||||
import '@codingame/monaco-vscode-standalone-typescript-language-features'
|
||||
|
||||
languages.typescript.javascriptDefaults.setCompilerOptions({
|
||||
target: languages.typescript.ScriptTarget.Latest,
|
||||
allowNonTsExtensions: true,
|
||||
noSemanticValidation: false,
|
||||
noLib: true,
|
||||
moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
|
||||
})
|
||||
languages.typescript.javascriptDefaults.setDiagnosticsOptions({
|
||||
noSemanticValidation: false,
|
||||
noSyntaxValidation: false,
|
||||
noSuggestionDiagnostics: false,
|
||||
diagnosticCodesToIgnore: [1108]
|
||||
})
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
@@ -39,6 +25,7 @@
|
||||
import { initializeVscode } from './vscode'
|
||||
import EditorTheme from './EditorTheme.svelte'
|
||||
import FakeMonacoPlaceHolder from './FakeMonacoPlaceHolder.svelte'
|
||||
import { setMonacoJsonOptions } from './monacoLanguagesOptions'
|
||||
|
||||
export const conf = {
|
||||
wordPattern:
|
||||
@@ -433,12 +420,11 @@
|
||||
|
||||
let initialized = false
|
||||
|
||||
let jsLoader: NodeJS.Timeout | undefined = undefined
|
||||
let timeoutModel: NodeJS.Timeout | undefined = undefined
|
||||
let jsLoader: number | undefined = undefined
|
||||
let timeoutModel: number | undefined = undefined
|
||||
async function loadMonaco() {
|
||||
console.log('init template')
|
||||
setMonacoJsonOptions()
|
||||
await initializeVscode('templateEditor')
|
||||
console.log('initialized')
|
||||
initialized = true
|
||||
|
||||
languages.register({ id: 'template' })
|
||||
@@ -612,7 +598,7 @@
|
||||
}
|
||||
|
||||
let mounted = false
|
||||
let loadTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let loadTimeout: number | undefined = undefined
|
||||
onMount(async () => {
|
||||
try {
|
||||
if (BROWSER) {
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
let loadingPendingJobs = $state(false)
|
||||
let isCancelingJob = $state(false)
|
||||
let prompt = $derived(
|
||||
`$-${working_directory === '/' ? '/' : working_directory.split('/').at(-1)} `
|
||||
`$-${working_directory === '/' ? '/' : working_directory.split('/').pop()} `
|
||||
)
|
||||
let codeObj: { language: SupportedLanguage; content: string } | undefined = $state(undefined)
|
||||
function getNewWorkingDirectoryPath(currentDir: string, newPath: string): string {
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
let loading = $state(false)
|
||||
let visible = $state(false)
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
let tagsToWorkerExists = $state<Record<string, boolean> | undefined>(undefined)
|
||||
|
||||
onMount(() => {
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
import { twMerge } from 'tailwind-merge'
|
||||
import type { Output } from '../../rx'
|
||||
import ResolveNavbarItemPath from './ResolveNavbarItemPath.svelte'
|
||||
import { urlParamsToObject } from '$lib/utils'
|
||||
|
||||
interface Props {
|
||||
navbarItem: NavbarItem
|
||||
@@ -83,7 +84,7 @@
|
||||
const hash = url.hash
|
||||
replaceStateFn?.(`${window.location.pathname}${queryParams}${hash}`)
|
||||
$worldStore.outputsById['ctx'].query.set(
|
||||
Object.fromEntries(new URLSearchParams(queryParams).entries())
|
||||
urlParamsToObject(new URLSearchParams(queryParams))
|
||||
)
|
||||
$worldStore.outputsById['ctx'].hash.set(hash.substring(1))
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
initConfig(components['dbexplorercomponent'].initialData.configuration, configuration)
|
||||
)
|
||||
|
||||
let timeoutInput: NodeJS.Timeout | undefined = undefined
|
||||
let timeoutInput: number | undefined = undefined
|
||||
|
||||
function computeInput(columnDefs: any, whereClause: string | undefined, resource: any) {
|
||||
if (timeoutInput) {
|
||||
@@ -318,7 +318,7 @@
|
||||
})
|
||||
|
||||
let lastTable: string | undefined = $state(undefined)
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
|
||||
function isSubset(subset: Record<string, any>, superset: Record<string, any>) {
|
||||
return Object.keys(subset).every((key) => {
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
...rest
|
||||
}: Props = $props()
|
||||
|
||||
let timer: NodeJS.Timeout
|
||||
let timer: number
|
||||
let inputElement: HTMLInputElement | null = $state(null)
|
||||
|
||||
function debounce(event: KeyboardEvent): void {
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
const { worldStore, state: stateStore, mode } = getContext<AppViewerContext>('AppViewerContext')
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
|
||||
let firstDebounce = true
|
||||
const debounce_ms = 50
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
|
||||
let args: Record<string, any> | undefined = $state(undefined)
|
||||
let runnableInputValues: Record<string, any> = $state({})
|
||||
let executeTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let executeTimeout: number | undefined = undefined
|
||||
|
||||
function setDebouncedExecute() {
|
||||
executeTimeout && clearTimeout(executeTimeout)
|
||||
|
||||
@@ -27,7 +27,13 @@
|
||||
import TabContent from '$lib/components/common/tabs/TabContent.svelte'
|
||||
import Tabs from '$lib/components/common/tabs/TabsV2.svelte'
|
||||
import { userStore, workspaceStore } from '$lib/stores'
|
||||
import { classNames, encodeState, getModifierKey, sendUserToast } from '$lib/utils'
|
||||
import {
|
||||
classNames,
|
||||
encodeState,
|
||||
getModifierKey,
|
||||
sendUserToast,
|
||||
urlParamsToObject
|
||||
} from '$lib/utils'
|
||||
import AppPreview from './AppPreview.svelte'
|
||||
import ComponentList from './componentsPanel/ComponentList.svelte'
|
||||
import ContextPanel from './contextPanel/ContextPanel.svelte'
|
||||
@@ -115,7 +121,7 @@
|
||||
groups: $userStore?.groups,
|
||||
username: $userStore?.username,
|
||||
name: $userStore?.name,
|
||||
query: Object.fromEntries(new URL(window.location.href).searchParams.entries()),
|
||||
query: urlParamsToObject(new URL(window.location.href).searchParams),
|
||||
hash: window.location.hash.substring(1),
|
||||
workspace: $workspaceStore,
|
||||
mode: 'editor',
|
||||
@@ -212,7 +218,7 @@
|
||||
stylePanel: () => StylePanel
|
||||
})
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
|
||||
function saveFrontendDraft() {
|
||||
timeout && clearTimeout(timeout)
|
||||
@@ -475,7 +481,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
let runnableJobEnterTimeout: NodeJS.Timeout | undefined = $state(undefined)
|
||||
let runnableJobEnterTimeout: number | undefined = $state(undefined)
|
||||
let stillInJobEnter = $state(false)
|
||||
let storedLeftPanelSize = 0
|
||||
let storedRightPanelSize = 0
|
||||
@@ -796,7 +802,7 @@
|
||||
untrack(() => setGridPanelSize($componentActive))
|
||||
})
|
||||
$effect(() => {
|
||||
$connectingInput.opened, untrack(() => updatePannelInConnecting())
|
||||
;($connectingInput.opened, untrack(() => updatePannelInConnecting()))
|
||||
})
|
||||
$effect(() => {
|
||||
forceDeactivatePanzoom = isModifierKeyPressed && handMode
|
||||
|
||||
@@ -946,7 +946,7 @@
|
||||
customPath
|
||||
})
|
||||
}
|
||||
let validateTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let validateTimeout: number | undefined = undefined
|
||||
async function validateCustomPath(customPath: string): Promise<void> {
|
||||
customPathError = ''
|
||||
if (validateTimeout) {
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
getContext<AppViewerContext>('AppViewerContext')
|
||||
const appEditorContext = getContext<AppEditorContext>('AppEditorContext')
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
let shouldRefresh = false
|
||||
let firstLoad = false
|
||||
let progressTimer: NodeJS.Timeout | undefined = undefined
|
||||
let progressTimer: number | undefined = undefined
|
||||
|
||||
$: !firstLoad &&
|
||||
canInitializeAll($initialized?.initializedComponents, $app) &&
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<script lang="ts" module>
|
||||
let outTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let outTimeout: number | undefined = undefined
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
}
|
||||
})
|
||||
|
||||
let dndTimeout: NodeJS.Timeout | undefined = $state(undefined)
|
||||
let dndTimeout: number | undefined = $state(undefined)
|
||||
|
||||
let ccDrawer: Drawer | undefined = $state()
|
||||
</script>
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
let templateChangeTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let templateChangeTimeout: number | undefined = undefined
|
||||
function onTemplateChange(e: CustomEvent<{ code: string }>) {
|
||||
const currentItem = item
|
||||
if (currentItem.data.componentInput?.type === 'templatev2') {
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
|
||||
let sign = { x: 0, y: 0 }
|
||||
let vel = { x: 0, y: 0 }
|
||||
let intervalId: NodeJS.Timeout | undefined = undefined
|
||||
let intervalId: number | undefined = undefined
|
||||
|
||||
const stopAutoscroll = () => {
|
||||
intervalId && clearInterval(intervalId)
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
$effect(() => {
|
||||
if (timeout) {
|
||||
clearTimeout(timeout)
|
||||
|
||||
@@ -514,7 +514,7 @@
|
||||
$selectedId !== 'triggers'
|
||||
)
|
||||
let debouncedWidth: number | undefined = $state(undefined)
|
||||
let timeout: NodeJS.Timeout | undefined = $state(undefined)
|
||||
let timeout: number | undefined = $state(undefined)
|
||||
$effect(() => {
|
||||
if (!debouncedWidth) {
|
||||
return
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
let { id, children }: Props = $props()
|
||||
let job: Job | undefined = $state(undefined)
|
||||
let hovered = $state(false)
|
||||
let timeout: NodeJS.Timeout | undefined
|
||||
let timeout: number | undefined
|
||||
let result: any = $state()
|
||||
let jobLoader: JobLoader | undefined = $state()
|
||||
let loaded = false
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
let { dropdownItems = [], fullMenu = false, noTrigger = false, close_button }: Props = $props()
|
||||
|
||||
let open = $state(false)
|
||||
let timeout: NodeJS.Timeout | null = null
|
||||
let timeout: number | null = null
|
||||
|
||||
function handleMouseEnter() {
|
||||
if (!fullMenu) return
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
import { languages } from 'monaco-editor'
|
||||
import processStdContent from '$lib/process.d.ts.txt?raw'
|
||||
|
||||
let jsonInitialized = false
|
||||
export function setMonacoJsonOptions() {
|
||||
if (jsonInitialized) return
|
||||
jsonInitialized = true
|
||||
languages.json.jsonDefaults.setDiagnosticsOptions({
|
||||
validate: true,
|
||||
allowComments: false,
|
||||
schemas: [],
|
||||
enableSchemaRequest: true
|
||||
})
|
||||
languages.json.jsonDefaults.setModeConfiguration({
|
||||
documentRangeFormattingEdits: false,
|
||||
documentFormattingEdits: true,
|
||||
hovers: true,
|
||||
completionItems: true,
|
||||
documentSymbols: true,
|
||||
tokens: true,
|
||||
colors: true,
|
||||
foldingRanges: true,
|
||||
selectionRanges: true,
|
||||
diagnostics: true
|
||||
})
|
||||
}
|
||||
|
||||
let typescriptInitialized = false
|
||||
|
||||
export function setMonacoTypescriptOptions() {
|
||||
if (typescriptInitialized) return
|
||||
typescriptInitialized = true
|
||||
|
||||
languages.typescript.typescriptDefaults.addExtraLib(processStdContent, 'process.d.ts')
|
||||
|
||||
languages.typescript.typescriptDefaults.setModeConfiguration({
|
||||
completionItems: true,
|
||||
hovers: true,
|
||||
documentSymbols: true,
|
||||
definitions: true,
|
||||
references: true,
|
||||
documentHighlights: true,
|
||||
rename: true,
|
||||
diagnostics: true,
|
||||
documentRangeFormattingEdits: true,
|
||||
signatureHelp: true,
|
||||
onTypeFormattingEdits: true,
|
||||
codeActions: true,
|
||||
inlayHints: true
|
||||
})
|
||||
|
||||
// languages.typescript.javascriptDefaults.setEagerModelSync(true)
|
||||
languages.typescript.typescriptDefaults.setEagerModelSync(true)
|
||||
|
||||
// languages.typescript.javascriptDefaults.setDiagnosticsOptions({
|
||||
// noSemanticValidation: false,
|
||||
// noSyntaxValidation: false,
|
||||
// noSuggestionDiagnostics: false,
|
||||
// diagnosticCodesToIgnore: [1108]
|
||||
// })
|
||||
|
||||
languages.typescript.typescriptDefaults.setDiagnosticsOptions({
|
||||
noSemanticValidation: false,
|
||||
noSyntaxValidation: false,
|
||||
|
||||
noSuggestionDiagnostics: false,
|
||||
diagnosticCodesToIgnore: [1108, 7006, 7034, 7019, 7005]
|
||||
})
|
||||
|
||||
languages.typescript.typescriptDefaults.setCompilerOptions({
|
||||
target: languages.typescript.ScriptTarget.Latest,
|
||||
allowNonTsExtensions: true,
|
||||
noSemanticValidation: false,
|
||||
noSyntaxValidation: false,
|
||||
completionItems: true,
|
||||
hovers: true,
|
||||
documentSymbols: true,
|
||||
definitions: true,
|
||||
references: true,
|
||||
documentHighlights: true,
|
||||
rename: true,
|
||||
diagnostics: true,
|
||||
documentRangeFormattingEdits: true,
|
||||
signatureHelp: true,
|
||||
onTypeFormattingEdits: true,
|
||||
codeActions: true,
|
||||
inlayHints: true,
|
||||
checkJs: true,
|
||||
allowJs: true,
|
||||
noUnusedLocals: true,
|
||||
strict: true,
|
||||
noLib: false,
|
||||
allowImportingTsExtensions: true,
|
||||
allowSyntheticDefaultImports: true,
|
||||
moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs,
|
||||
jsx: languages.typescript.JsxEmit.React
|
||||
})
|
||||
}
|
||||
|
||||
let javascriptInitialized = false
|
||||
export function setMonacoJavascriptOptions() {
|
||||
if (javascriptInitialized) return
|
||||
javascriptInitialized = true
|
||||
|
||||
languages.typescript.javascriptDefaults.setCompilerOptions({
|
||||
target: languages.typescript.ScriptTarget.Latest,
|
||||
allowNonTsExtensions: true,
|
||||
noSemanticValidation: false,
|
||||
noLib: true,
|
||||
moduleResolution: languages.typescript.ModuleResolutionKind.NodeJs
|
||||
})
|
||||
languages.typescript.javascriptDefaults.setDiagnosticsOptions({
|
||||
noSemanticValidation: false,
|
||||
noSyntaxValidation: false,
|
||||
noSuggestionDiagnostics: false,
|
||||
diagnosticCodesToIgnore: [1108]
|
||||
})
|
||||
}
|
||||
@@ -58,7 +58,7 @@
|
||||
return searchOpen && search ? keepByKeyOrValue(json, search) : json
|
||||
}
|
||||
|
||||
let searchTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let searchTimeout: number | undefined = undefined
|
||||
function onSearch() {
|
||||
if (searchTimeout) {
|
||||
clearTimeout(searchTimeout)
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
let flowInputsFiltered: any = pickableProperties.flow_input
|
||||
let resultByIdFiltered: any = pickableProperties.priorIds
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined
|
||||
let timeout: number | undefined
|
||||
function onSearch(search: string) {
|
||||
filterActive = false
|
||||
if (timeout) {
|
||||
@@ -193,7 +193,7 @@
|
||||
await updateCollapsable()
|
||||
}
|
||||
|
||||
$: search, $inputMatches, $propPickerConfig, pickableProperties, updateState()
|
||||
$: (search, $inputMatches, $propPickerConfig, pickableProperties, updateState())
|
||||
|
||||
onDestroy(() => {
|
||||
clearTimeout(timeout)
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
let files: Record<string, string> | undefined = $state(initFiles)
|
||||
|
||||
let draftTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let draftTimeout: number | undefined = undefined
|
||||
function saveFrontendDraft() {
|
||||
draftTimeout && clearTimeout(draftTimeout)
|
||||
draftTimeout = setTimeout(() => {
|
||||
|
||||
@@ -621,7 +621,7 @@
|
||||
customPath
|
||||
})
|
||||
}
|
||||
let validateTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let validateTimeout: number | undefined = undefined
|
||||
async function validateCustomPath(customPath: string): Promise<void> {
|
||||
customPathError = ''
|
||||
if (validateTimeout) {
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
perPage = undefined,
|
||||
allowWildcards = false
|
||||
}: Props = $props()
|
||||
let intervalId: NodeJS.Timeout | undefined = $state()
|
||||
let intervalId: number | undefined = $state()
|
||||
let sync = true
|
||||
|
||||
function onParamChanges() {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
let noWorkerWithTag = $state(false)
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
|
||||
let visible = true
|
||||
async function lookForTag(): Promise<void> {
|
||||
|
||||
@@ -107,10 +107,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
let labelTimeout: NodeJS.Timeout | undefined = $state(undefined)
|
||||
let concurrencyKeyTimeout: NodeJS.Timeout | undefined = $state(undefined)
|
||||
let tagTimeout: NodeJS.Timeout | undefined = $state(undefined)
|
||||
let workerTimeout: NodeJS.Timeout | undefined = $state(undefined)
|
||||
let labelTimeout: number | undefined = $state(undefined)
|
||||
let concurrencyKeyTimeout: number | undefined = $state(undefined)
|
||||
let tagTimeout: number | undefined = $state(undefined)
|
||||
let workerTimeout: number | undefined = $state(undefined)
|
||||
|
||||
let allWorkspacesValue = $state(allWorkspaces ? 'all' : 'admins')
|
||||
let displayedLabel = $derived(label)
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
)
|
||||
|
||||
let moreOpen = $state(false)
|
||||
let moreOpenTimeout: NodeJS.Timeout | undefined = $state()
|
||||
let moreOpenTimeout: number | undefined = $state()
|
||||
|
||||
function debouncedSetMoreOpen(value: boolean) {
|
||||
if (moreOpenTimeout) {
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
showTestingBadge = false
|
||||
}: Props = $props()
|
||||
|
||||
let validateTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let validateTimeout: number | undefined = undefined
|
||||
|
||||
let addressError: string = $state('')
|
||||
async function validateEmailAddress(
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
showTestingBadge = false
|
||||
}: Props = $props()
|
||||
|
||||
let validateTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let validateTimeout: number | undefined = undefined
|
||||
|
||||
let routeError: string = $state('')
|
||||
async function validateRoute(
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
})
|
||||
|
||||
let urlError: string = $state('')
|
||||
let validateTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let validateTimeout: number | undefined = undefined
|
||||
function validateUrl(url: string | undefined) {
|
||||
if (validateTimeout) {
|
||||
clearTimeout(validateTimeout)
|
||||
|
||||
@@ -62,7 +62,9 @@
|
||||
import Select from '../select/Select.svelte'
|
||||
import ResourcePicker from '../ResourcePicker.svelte'
|
||||
import { usePromise } from '$lib/svelte5Utils.svelte'
|
||||
import { SettingService, WorkspaceService, type GetSettingsResponse } from '$lib/gen'
|
||||
import { SettingService, WorkspaceService } from '$lib/gen'
|
||||
import { type GetSettingsResponse } from '$lib/gen'
|
||||
|
||||
import { superadmin, workspaceStore } from '$lib/stores'
|
||||
import { sendUserToast } from '$lib/toast'
|
||||
import ExploreAssetButton from '../ExploreAssetButton.svelte'
|
||||
|
||||
@@ -22,7 +22,7 @@ interface JobEntry {
|
||||
|
||||
export class JobManager {
|
||||
private activeJobs = new Map<string, JobEntry>()
|
||||
private cleanupInterval: NodeJS.Timeout | null = null
|
||||
private cleanupInterval: number | null = null
|
||||
private readonly STALE_TIMEOUT = 300000 // 5 minutes
|
||||
private readonly CLEANUP_INTERVAL = 60000 // 1 minute
|
||||
|
||||
@@ -49,7 +49,7 @@ export class JobManager {
|
||||
}
|
||||
}
|
||||
|
||||
staleJobs.forEach(jobId => {
|
||||
staleJobs.forEach((jobId) => {
|
||||
this.activeJobs.delete(jobId)
|
||||
})
|
||||
|
||||
@@ -58,10 +58,7 @@ export class JobManager {
|
||||
}
|
||||
}
|
||||
|
||||
async runWithProgress<T>(
|
||||
jobRunner: () => Promise<string>,
|
||||
options: JobOptions
|
||||
): Promise<T> {
|
||||
async runWithProgress<T>(jobRunner: () => Promise<string>, options: JobOptions): Promise<T> {
|
||||
const {
|
||||
onProgress,
|
||||
timeout = 60000,
|
||||
@@ -140,7 +137,7 @@ export class JobManager {
|
||||
}
|
||||
|
||||
cancelAll() {
|
||||
this.activeJobs.forEach(entry => entry.controller.abort())
|
||||
this.activeJobs.forEach((entry) => entry.controller.abort())
|
||||
this.activeJobs.clear()
|
||||
}
|
||||
|
||||
|
||||
@@ -1014,6 +1014,14 @@ export function isCodeInjection(expr: string | undefined): boolean {
|
||||
return dynamicTemplateRegex.test(expr)
|
||||
}
|
||||
|
||||
export function urlParamsToObject(params: URLSearchParams): Record<string, string> {
|
||||
const result: Record<string, string> = {}
|
||||
params.forEach((value, key) => {
|
||||
result[key] = value
|
||||
})
|
||||
return result
|
||||
}
|
||||
|
||||
export async function tryEvery({
|
||||
tryCode,
|
||||
timeoutCode,
|
||||
|
||||
@@ -265,7 +265,7 @@
|
||||
$defaultScripts = await WorkspaceService.getDefaultScripts({ workspace })
|
||||
}
|
||||
}
|
||||
let timeout: NodeJS.Timeout | undefined
|
||||
let timeout: number | undefined
|
||||
async function onUserStore(u: UserExt | undefined) {
|
||||
if (u && timeout) {
|
||||
clearTimeout(timeout)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
import { Button, Skeleton } from '$lib/components/common'
|
||||
import { AppService, type AppWithLastVersion } from '$lib/gen'
|
||||
import { userStore, workspaceStore } from '$lib/stores'
|
||||
import { canWrite } from '$lib/utils'
|
||||
import { canWrite, urlParamsToObject } from '$lib/utils'
|
||||
import { Pen } from 'lucide-svelte'
|
||||
import { writable } from 'svelte/store'
|
||||
import { twMerge } from 'tailwind-merge'
|
||||
@@ -53,7 +53,7 @@
|
||||
name: $userStore?.name,
|
||||
username: $userStore?.username,
|
||||
groups: $userStore?.groups,
|
||||
query: Object.fromEntries(page.url.searchParams.entries()),
|
||||
query: urlParamsToObject(page.url.searchParams),
|
||||
hash: page.url.hash.substring(1)
|
||||
}}
|
||||
workspace={$workspaceStore ?? ''}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
type TriggersCount,
|
||||
type WorkspaceDeployUISettings
|
||||
} from '$lib/gen'
|
||||
import { canWrite, defaultIfEmptyString, emptyString } from '$lib/utils'
|
||||
import { canWrite, defaultIfEmptyString, emptyString, urlParamsToObject } from '$lib/utils'
|
||||
import { isDeployable, ALL_DEPLOYABLE } from '$lib/utils_deployable'
|
||||
|
||||
import DetailPageLayout from '$lib/components/details/DetailPageLayout.svelte'
|
||||
@@ -75,7 +75,7 @@
|
||||
let jsonView = $state(false)
|
||||
let deploymentInProgress = $state(false)
|
||||
|
||||
let intervalId: NodeJS.Timeout | undefined = undefined
|
||||
let intervalId: number | undefined = undefined
|
||||
|
||||
const triggersCount = writable<TriggersCount | undefined>(undefined)
|
||||
|
||||
@@ -203,7 +203,10 @@
|
||||
if (hash.length > 1) {
|
||||
try {
|
||||
let searchParams = new URLSearchParams(hash.slice(1))
|
||||
let params = [...searchParams.entries()].map(([k, v]) => [k, JSON.parse(v)])
|
||||
let params = [...Object.entries(urlParamsToObject(searchParams))].map(([k, v]) => [
|
||||
k,
|
||||
JSON.parse(v)
|
||||
])
|
||||
args = Object.fromEntries(params)
|
||||
} catch (e) {
|
||||
console.error('Was not able to transform hash as args', e)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
import { Loader2 } from 'lucide-svelte'
|
||||
import { sendUserToast } from '$lib/toast'
|
||||
import { page } from '$app/state'
|
||||
import { urlParamsToObject } from '$lib/utils'
|
||||
|
||||
let client_name = page.params.client_name
|
||||
let error = page.url.searchParams.get('error')
|
||||
@@ -29,7 +30,7 @@
|
||||
} else if (code && state) {
|
||||
try {
|
||||
const extraParams = Object.fromEntries(
|
||||
Array.from(page.url.searchParams.entries()).filter(
|
||||
Array.from(Object.entries(urlParamsToObject(page.url.searchParams))).filter(
|
||||
([key]) => key !== 'code' && key !== 'state' && key !== 'error'
|
||||
)
|
||||
)
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
let extendedJobs: ExtendedJobs | undefined = $state(undefined)
|
||||
let argError = $state('')
|
||||
let resultError = $state('')
|
||||
let filterTimeout: NodeJS.Timeout | undefined = undefined
|
||||
let filterTimeout: number | undefined = undefined
|
||||
let selectedManualDate = $state(0)
|
||||
let autoRefresh: boolean = $state(getAutoRefresh())
|
||||
let runDrawer: Drawer | undefined = $state(undefined)
|
||||
@@ -470,7 +470,7 @@
|
||||
allowWildcards = false
|
||||
}
|
||||
|
||||
let calendarChangeTimeout: NodeJS.Timeout | undefined = $state(undefined)
|
||||
let calendarChangeTimeout: number | undefined = $state(undefined)
|
||||
|
||||
function typeOfChart(s: string | null): 'RunChart' | 'ConcurrencyChart' {
|
||||
switch (s) {
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
emptyString,
|
||||
canWrite,
|
||||
truncateHash,
|
||||
copyToClipboard
|
||||
copyToClipboard,
|
||||
urlParamsToObject
|
||||
} from '$lib/utils'
|
||||
import Tooltip from '$lib/components/Tooltip.svelte'
|
||||
import ShareModal from '$lib/components/ShareModal.svelte'
|
||||
@@ -88,7 +89,7 @@
|
||||
let topHash: string | undefined = $state()
|
||||
let can_write = $state(false)
|
||||
let deploymentInProgress = $state(false)
|
||||
let intervalId: NodeJS.Timeout
|
||||
let intervalId: number
|
||||
let shareModal: ShareModal | undefined = $state()
|
||||
let runForm: RunForm | undefined = $state()
|
||||
|
||||
@@ -260,7 +261,10 @@
|
||||
if (hash.length > 1) {
|
||||
try {
|
||||
let searchParams = new URLSearchParams(hash.slice(1))
|
||||
let params = [...searchParams.entries()].map(([k, v]) => [k, JSON.parse(v)])
|
||||
let params = [...Object.entries(urlParamsToObject(searchParams))].map(([k, v]) => [
|
||||
k,
|
||||
JSON.parse(v)
|
||||
])
|
||||
args = Object.fromEntries(params)
|
||||
} catch (e) {
|
||||
console.error('Was not able to transform hash as args', e)
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
let workers: WorkerPing[] | undefined = undefined
|
||||
let workerGroups: Record<string, any> | undefined = undefined
|
||||
let groupedWorkers: [string, [string, WorkerPing[]][]][] = []
|
||||
let intervalId: NodeJS.Timeout | undefined
|
||||
let intervalId: number | undefined
|
||||
const splitter = '_%%%_'
|
||||
let customTags: string[] | undefined = undefined
|
||||
$: groupedWorkers = groupWorkers(workers, workerGroups)
|
||||
@@ -90,7 +90,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
let secondInterval: NodeJS.Timeout | undefined = undefined
|
||||
let secondInterval: number | undefined = undefined
|
||||
async function loadCustomTags() {
|
||||
try {
|
||||
customTags = (await WorkerService.getCustomTags()) ?? []
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
let interval: NodeJS.Timeout | undefined = undefined
|
||||
let interval: number | undefined = undefined
|
||||
onMount(() => {
|
||||
window.onunhandledrejection = (event: PromiseRejectionEvent) => {
|
||||
event.preventDefault()
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
import { goto } from '$app/navigation'
|
||||
import { sendUserToast } from '$lib/toast'
|
||||
import { page } from '$app/state'
|
||||
import { urlParamsToObject } from '$lib/utils'
|
||||
|
||||
let app: (AppWithLastVersion & { value: any }) | undefined = undefined
|
||||
let notExists = false
|
||||
@@ -163,7 +164,7 @@
|
||||
name: $userStore?.name,
|
||||
groups: $userStore?.groups,
|
||||
username: $userStore?.username,
|
||||
query: Object.fromEntries(page.url.searchParams.entries()),
|
||||
query: urlParamsToObject(page.url.searchParams),
|
||||
hash: page.url.hash.substring(1)
|
||||
}}
|
||||
workspace={page.params.workspace}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
let dynamicSchema: any = $state({})
|
||||
|
||||
let timeout: NodeJS.Timeout | undefined = undefined
|
||||
let timeout: number | undefined = undefined
|
||||
let error: string | undefined = $state(undefined)
|
||||
let default_payload: any = $state({})
|
||||
let enum_payload: object = $state({})
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
import Alert from '$lib/components/common/alert/Alert.svelte'
|
||||
import Skeleton from '$lib/components/common/skeleton/Skeleton.svelte'
|
||||
import { page } from '$app/state'
|
||||
import { urlParamsToObject } from '$lib/utils'
|
||||
|
||||
let app: (AppWithLastVersion & { value: any }) | undefined = undefined
|
||||
let notExists = false
|
||||
@@ -151,7 +152,7 @@
|
||||
name: $userStore?.name,
|
||||
groups: $userStore?.groups,
|
||||
username: $userStore?.username,
|
||||
query: Object.fromEntries(page.url.searchParams.entries()),
|
||||
query: urlParamsToObject(page.url.searchParams),
|
||||
hash: page.url.hash.substring(1)
|
||||
}}
|
||||
workspace={page.params.workspace}
|
||||
|
||||
@@ -2,7 +2,6 @@ import { sveltekit } from '@sveltejs/kit/vite'
|
||||
import { readFileSync } from 'fs'
|
||||
import { fileURLToPath } from 'url'
|
||||
import mkcert from 'vite-plugin-mkcert'
|
||||
import importMetaUrlPlugin from '@windmill-labs/esbuild-import-meta-url-plugin'
|
||||
|
||||
const file = fileURLToPath(new URL('package.json', import.meta.url))
|
||||
const json = readFileSync(file, 'utf8')
|
||||
@@ -66,9 +65,6 @@ const config = {
|
||||
'@codingame/monaco-vscode-standalone-typescript-language-features',
|
||||
'@codingame/monaco-vscode-standalone-languages'
|
||||
],
|
||||
esbuildOptions: {
|
||||
plugins: [importMetaUrlPlugin]
|
||||
}
|
||||
},
|
||||
worker: {
|
||||
format: 'es'
|
||||
|
||||
Reference in New Issue
Block a user