fix: improve native runtime with axios support

This commit is contained in:
Ruben Fiszel
2024-07-29 21:13:02 +02:00
parent 5031a8cb01
commit 6e91005daa
6 changed files with 34 additions and 10 deletions
+12 -2
View File
@@ -304,6 +304,7 @@ enum LoaderMode {
Bun,
BunBundle,
NodeBundle,
BrowserBundle,
}
async fn build_loader(
job_dir: &str,
@@ -373,7 +374,10 @@ plugin(p)
),
)
.await?;
} else if mode == LoaderMode::BunBundle || mode == LoaderMode::NodeBundle {
} else if mode == LoaderMode::BunBundle
|| mode == LoaderMode::NodeBundle
|| mode == LoaderMode::BrowserBundle
{
write_file(
&job_dir,
"node_builder.ts",
@@ -402,8 +406,10 @@ if (!bo.success) {{
loader,
if mode == LoaderMode::BunBundle {
"bun"
} else {
} else if mode == LoaderMode::NodeBundle {
"node"
} else {
"browser"
}
),
)
@@ -598,6 +604,8 @@ pub async fn prebundle_script(
script_path,
if annotation.nodejs_mode {
LoaderMode::NodeBundle
} else if annotation.native_mode {
LoaderMode::BrowserBundle
} else {
LoaderMode::BunBundle
},
@@ -978,6 +986,8 @@ try {{
&job.script_path(),
if annotation.nodejs_mode {
LoaderMode::NodeBundle
} else if annotation.native_mode {
LoaderMode::BrowserBundle
} else {
LoaderMode::BunBundle
},
+1
View File
@@ -29,6 +29,7 @@ globalThis.atob = base64.atob;
globalThis.btoa = base64.btoa;
globalThis.fetch = fetch.fetch;
globalThis.Request = request.Request;
globalThis.Response = response.Response;
globalThis.Blob = file.Blob;
globalThis.URL = url.URL;
globalThis.FormData = formData.FormData;
+7 -4
View File
@@ -46,7 +46,7 @@
import Popover from './Popover.svelte'
import ResourceEditorDrawer from './ResourceEditorDrawer.svelte'
export let lang: SupportedLanguage | undefined
export let lang: SupportedLanguage | 'bunnative' | undefined
export let editor: Editor | undefined
export let websocketAlive: {
pyright: boolean
@@ -87,6 +87,7 @@
'go',
'deno',
'bun',
'bunnative',
'nativets',
'php'
].includes(lang ?? '')
@@ -97,6 +98,7 @@
'go',
'deno',
'bun',
'bunnative',
'nativets',
'php'
].includes(lang ?? '')
@@ -107,6 +109,7 @@
'go',
'deno',
'bun',
'bunnative',
'nativets',
'php'
].includes(lang ?? '')
@@ -316,7 +319,7 @@
if (!editor) return
if (lang == 'deno') {
editor.insertAtCursor(`Deno.env.get('${name}')`)
} else if (lang === 'bun' || lang == 'nativets') {
} else if (lang === 'bun' || lang === 'bunnative' || lang == 'nativets') {
editor.insertAtCursor(`process.env["${name}"]`)
} else if (lang == 'python3') {
if (!editor.getCode().includes('import os')) {
@@ -354,7 +357,7 @@
editor.insertAtBeginning(`import * as wmill from "npm:windmill-client@1"\n`)
}
editor.insertAtCursor(`(await wmill.getVariable('${path}'))`)
} else if (lang === 'bun') {
} else if (lang === 'bun' || lang === 'bunnative') {
const code = editor.getCode()
if (!code.includes(`import * as wmill from`)) {
editor.insertAtBeginning(`import * as wmill from "windmill-client"\n`)
@@ -424,7 +427,7 @@ $var = json_decode(curl_exec($ch));`)
editor.insertAtBeginning(`import * as wmill from "npm:windmill-client@1"\n`)
}
editor.insertAtCursor(`(await wmill.getResource('${path}'))`)
} else if (lang === 'bun') {
} else if (lang === 'bun' || lang === 'bunnative') {
const code = editor.getCode()
if (!code.includes(`import * as wmill from`)) {
editor.insertAtBeginning(`import * as wmill from "windmill-client"\n`)
@@ -16,10 +16,10 @@
import HighlightTheme from './HighlightTheme.svelte'
export let code: string = ''
export let language: Script['language'] | 'frontend' | undefined
export let language: Script['language'] | 'bunnative' | 'frontend' | undefined
export let lines = false
function getLang(lang: Script['language'] | 'frontend' | undefined) {
function getLang(lang: Script['language'] | 'bunnative' | 'frontend' | undefined) {
switch (lang) {
case 'python3':
return python
@@ -29,6 +29,8 @@
return typescript
case 'bun':
return typescript
case 'bunnative':
return typescript
case 'go':
return go
case 'bash':
@@ -37,13 +37,17 @@
// props
export let iconOnly: boolean = false
export let lang: SupportedLanguage | 'frontend' | undefined
export let lang: SupportedLanguage | 'bunnative' | 'frontend' | undefined
export let editor: Editor | SimpleEditor | undefined
export let diffEditor: DiffEditor | undefined
export let inlineScript = false
export let args: Record<string, any>
export let transformer = false
$: if (lang == 'bunnative') {
lang = 'bun'
}
// state
let funcDesc = ''
let trimmedDesc = ''
@@ -71,6 +75,7 @@
if (mode === 'edit') {
await copilot(
{
// @ts-ignore
language: transformer && lang === 'frontend' ? 'transformer' : lang!,
description: trimmedDesc,
code: editor?.getCode() || '',
@@ -84,6 +89,7 @@
} else {
await copilot(
{
// @ts-ignore
language: transformer && lang === 'frontend' ? 'transformer' : lang!,
description: trimmedDesc,
dbSchema: dbSchema,
+3 -1
View File
@@ -574,7 +574,7 @@ export function initialCode(
}
export function getResetCode(
language: SupportedLanguage | undefined,
language: SupportedLanguage | 'bunnative' | undefined,
kind: Script['kind'] | undefined,
subkind:
| 'pgsql'
@@ -595,6 +595,8 @@ export function getResetCode(
return NATIVETS_INIT_CODE_CLEAR
} else if (language === 'bun') {
return BUN_INIT_CODE_CLEAR
} else if (language === 'bunnative') {
return BUNNATIVE_INIT_CODE
} else {
return initialCode(language, kind, subkind)
}