@@ -775,6 +775,7 @@ pub async fn eval_fetch_timeout(
775
775
ts_expr : String ,
776
776
js_expr : String ,
777
777
args : Option < & Json < HashMap < String , Box < RawValue > > > > ,
778
+ script_entrypoint_override : Option < String > ,
778
779
job_id : Uuid ,
779
780
job_timeout : Option < i32 > ,
780
781
db : & DB ,
@@ -789,7 +790,13 @@ pub async fn eval_fetch_timeout(
789
790
790
791
let ( sender, mut receiver) = oneshot:: channel :: < IsolateHandle > ( ) ;
791
792
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 ;
793
800
let spread = parsed_args
794
801
. into_iter ( )
795
802
. map ( |x| {
@@ -902,7 +909,7 @@ pub async fn eval_fetch_timeout(
902
909
903
910
let future = async {
904
911
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) ,
906
913
_ = memory_limit_rx. recv( ) => Err ( Error :: ExecutionErr ( "Memory limit reached, killing isolate" . to_string( ) ) )
907
914
} ;
908
915
@@ -990,6 +997,7 @@ async fn eval_fetch(
990
997
js_runtime : & mut JsRuntime ,
991
998
expr : & str ,
992
999
env_code : Option < String > ,
1000
+ script_entrypoint_override : Option < String > ,
993
1001
load_client : bool ,
994
1002
job_id : & Uuid ,
995
1003
) -> anyhow:: Result < Box < RawValue > > {
@@ -1016,13 +1024,16 @@ async fn eval_fetch(
1016
1024
} )
1017
1025
. context ( "failed to load module" ) ?;
1018
1026
1027
+ let main_override = script_entrypoint_override. unwrap_or ( "main" . to_string ( ) ) ;
1019
1028
let script = js_runtime
1020
1029
. execute_script (
1021
1030
"<anon>" ,
1022
- r#"
1031
+ format ! (
1032
+ r#"
1023
1033
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
+ ) ,
1026
1037
)
1027
1038
. map_err ( |e| {
1028
1039
write_error_expr ( expr, & job_id) ;
0 commit comments