Skip to content

Commit 5ffdf1a

Browse files
PiyushXCoderdiegoimbert
authored andcommitted
fix: Dynamic select does not work with tag //native (#5576)
closes #5490
1 parent 5561b53 commit 5ffdf1a

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

backend/windmill-worker/src/bun_executor.rs

+1
Original file line numberDiff line numberDiff line change
@@ -1271,6 +1271,7 @@ try {{
12711271
inner_content.clone(),
12721272
js_code,
12731273
job_args,
1274+
job.script_entrypoint_override.clone(),
12741275
job.id,
12751276
job.timeout,
12761277
db,

backend/windmill-worker/src/js_eval.rs

+16-5
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,7 @@ pub async fn eval_fetch_timeout(
775775
ts_expr: String,
776776
js_expr: String,
777777
args: Option<&Json<HashMap<String, Box<RawValue>>>>,
778+
script_entrypoint_override: Option<String>,
778779
job_id: Uuid,
779780
job_timeout: Option<i32>,
780781
db: &DB,
@@ -789,7 +790,13 @@ pub async fn eval_fetch_timeout(
789790

790791
let (sender, mut receiver) = oneshot::channel::<IsolateHandle>();
791792

792-
let parsed_args = windmill_parser_ts::parse_deno_signature(&ts_expr, true, false, None)?.args;
793+
let parsed_args = windmill_parser_ts::parse_deno_signature(
794+
&ts_expr,
795+
true,
796+
false,
797+
script_entrypoint_override.clone(),
798+
)?
799+
.args;
793800
let spread = parsed_args
794801
.into_iter()
795802
.map(|x| {
@@ -902,7 +909,7 @@ pub async fn eval_fetch_timeout(
902909

903910
let future = async {
904911
let r = tokio::select! {
905-
r = eval_fetch(&mut js_runtime, &js_expr, Some(env_code), load_client, &job_id) => Ok(r),
912+
r = eval_fetch(&mut js_runtime, &js_expr, Some(env_code), script_entrypoint_override, load_client, &job_id) => Ok(r),
906913
_ = memory_limit_rx.recv() => Err(Error::ExecutionErr("Memory limit reached, killing isolate".to_string()))
907914
};
908915

@@ -990,6 +997,7 @@ async fn eval_fetch(
990997
js_runtime: &mut JsRuntime,
991998
expr: &str,
992999
env_code: Option<String>,
1000+
script_entrypoint_override: Option<String>,
9931001
load_client: bool,
9941002
job_id: &Uuid,
9951003
) -> anyhow::Result<Box<RawValue>> {
@@ -1016,13 +1024,16 @@ async fn eval_fetch(
10161024
})
10171025
.context("failed to load module")?;
10181026

1027+
let main_override = script_entrypoint_override.unwrap_or("main".to_string());
10191028
let script = js_runtime
10201029
.execute_script(
10211030
"<anon>",
1022-
r#"
1031+
format!(
1032+
r#"
10231033
let args = Deno.core.ops.op_get_static_args().map(JSON.parse)
1024-
import("file:///eval.ts").then((module) => module.main(...args)).then(JSON.stringify)
1025-
"#,
1034+
import("file:///eval.ts").then((module) => module.{main_override}(...args)).then(JSON.stringify)
1035+
"#
1036+
),
10261037
)
10271038
.map_err(|e| {
10281039
write_error_expr(expr, &job_id);

backend/windmill-worker/src/worker.rs

+1
Original file line numberDiff line numberDiff line change
@@ -1991,6 +1991,7 @@ async fn do_nativets(
19911991
code.clone(),
19921992
transpile_ts(code)?,
19931993
job_args,
1994+
None,
19941995
job.id,
19951996
job.timeout,
19961997
db,

0 commit comments

Comments
 (0)