diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/flags.rs | 53 | ||||
-rw-r--r-- | cli/lib.rs | 25 | ||||
-rw-r--r-- | cli/ops/os.rs | 1 | ||||
-rw-r--r-- | cli/tests/043_xeval_delim2.out | 2 | ||||
-rw-r--r-- | cli/tests/integration_tests.rs | 6 |
5 files changed, 35 insertions, 52 deletions
diff --git a/cli/flags.rs b/cli/flags.rs index c8e5c6e31..24d331bfa 100644 --- a/cli/flags.rs +++ b/cli/flags.rs @@ -14,7 +14,7 @@ use std::str::FromStr; macro_rules! std_url { ($x:expr) => { - concat!("https://deno.land/std@17a214b/", $x) + concat!("https://deno.land/std@8c90bd9/", $x) }; } @@ -24,6 +24,8 @@ const PRETTIER_URL: &str = std_url!("prettier/main.ts"); const INSTALLER_URL: &str = std_url!("installer/mod.ts"); /// Used for `deno test...` subcommand const TEST_RUNNER_URL: &str = std_url!("testing/runner.ts"); +/// Used for `deno xeval...` subcommand +const XEVAL_URL: &str = std_url!("xeval/mod.ts"); // Creates vector of strings, Vec<String> macro_rules! svec { @@ -54,8 +56,6 @@ pub struct DenoFlags { pub no_fetch: bool, pub seed: Option<u64>, pub v8_flags: Option<Vec<String>>, - pub xeval_replvar: Option<String>, - pub xeval_delim: Option<String>, // Use tokio::runtime::current_thread pub current_thread: bool, } @@ -705,7 +705,6 @@ pub enum DenoSubcommand { Run, Types, Version, - Xeval, } fn get_default_bundle_filename(source_file: &str) -> String { @@ -899,22 +898,31 @@ pub fn flags_from_vec( _ => unreachable!(), } } - ("xeval", Some(eval_match)) => { + ("xeval", Some(xeval_match)) => { flags.allow_net = true; flags.allow_env = true; flags.allow_run = true; flags.allow_read = true; flags.allow_write = true; flags.allow_hrtime = true; - let code: &str = eval_match.value_of("code").unwrap(); - flags.xeval_replvar = - Some(eval_match.value_of("replvar").unwrap_or("$").to_owned()); - // Currently clap never escapes string, - // So -d "\n" won't expand to newline. - // Instead, do -d $'\n' - flags.xeval_delim = eval_match.value_of("delim").map(String::from); - argv.extend(vec![code.to_string()]); - DenoSubcommand::Xeval + argv.push(XEVAL_URL.to_string()); + + if xeval_match.is_present("delim") { + let delim = xeval_match.value_of("delim").unwrap(); + argv.push("--delim".to_string()); + argv.push(delim.to_string()); + } + + if xeval_match.is_present("replvar") { + let replvar = xeval_match.value_of("replvar").unwrap(); + argv.push("--replvar".to_string()); + argv.push(replvar.to_string()); + } + + let code: &str = xeval_match.value_of("code").unwrap(); + argv.push(code.to_string()); + + DenoSubcommand::Run } (script, Some(script_match)) => { argv.extend(vec![script.to_string()]); @@ -1291,13 +1299,22 @@ mod tests { allow_read: true, allow_write: true, allow_hrtime: true, - xeval_replvar: Some("val".to_owned()), - xeval_delim: Some(" ".to_owned()), ..DenoFlags::default() } ); - assert_eq!(subcommand, DenoSubcommand::Xeval); - assert_eq!(argv, svec!["deno", "console.log(val)"]); + assert_eq!(subcommand, DenoSubcommand::Run); + assert_eq!( + argv, + svec![ + "deno", + XEVAL_URL, + "--delim", + " ", + "--replvar", + "val", + "console.log(val)" + ] + ); } #[test] diff --git a/cli/lib.rs b/cli/lib.rs index 09134dcdb..6584c0fa3 100644 --- a/cli/lib.rs +++ b/cli/lib.rs @@ -297,30 +297,6 @@ fn eval_command(flags: DenoFlags, argv: Vec<String>) { tokio_util::run(main_future); } -fn xeval_command(flags: DenoFlags, argv: Vec<String>) { - let xeval_replvar = flags.xeval_replvar.clone().unwrap(); - let (mut worker, state) = create_worker_and_state(flags, argv); - let xeval_source = format!( - "window._xevalWrapper = async function ({}){{ - {} - }}", - &xeval_replvar, &state.argv[1] - ); - - let main_future = lazy(move || { - // Setup runtime. - js_check(worker.execute(&xeval_source)); - js_check(worker.execute("denoMain()")); - worker - .then(|result| { - js_check(result); - Ok(()) - }) - .map_err(print_err_and_exit) - }); - tokio_util::run(main_future); -} - fn bundle_command(flags: DenoFlags, argv: Vec<String>) { let (mut _worker, state) = create_worker_and_state(flags, argv); @@ -429,6 +405,5 @@ pub fn main() { DenoSubcommand::Run => run_script(flags, argv), DenoSubcommand::Types => types_command(), DenoSubcommand::Version => version_command(), - DenoSubcommand::Xeval => xeval_command(flags, argv), } } diff --git a/cli/ops/os.rs b/cli/ops/os.rs index b35b76c2a..92f640afd 100644 --- a/cli/ops/os.rs +++ b/cli/ops/os.rs @@ -41,7 +41,6 @@ pub fn op_start( "denoVersion": version::DENO, "tsVersion": version::TYPESCRIPT, "noColor": !colors::use_color(), - "xevalDelim": state.flags.xeval_delim.clone(), "os": BUILD_OS, "arch": BUILD_ARCH, }))) diff --git a/cli/tests/043_xeval_delim2.out b/cli/tests/043_xeval_delim2.out deleted file mode 100644 index 312bdb964..000000000 --- a/cli/tests/043_xeval_delim2.out +++ /dev/null @@ -1,2 +0,0 @@ -!MAD -ADAM! diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs index 930ad9477..0e30e05c7 100644 --- a/cli/tests/integration_tests.rs +++ b/cli/tests/integration_tests.rs @@ -304,12 +304,6 @@ itest!(_042_dyn_import_evalcontext { output: "042_dyn_import_evalcontext.ts.out", }); -itest!(_043_xeval_delim2 { - args: "xeval -d MADAM console.log($)", - input: Some("!MADMADAMADAM!"), - output: "043_xeval_delim2.out", -}); - itest!(_044_bad_resource { args: "run --reload --allow-read 044_bad_resource.ts", output: "044_bad_resource.ts.out", |