From 56363e4f4e097eadc85f5219e9e08c7ffc059e31 Mon Sep 17 00:00:00 2001 From: Leo Kettmeir Date: Fri, 6 Sep 2024 03:11:59 -0700 Subject: [PATCH] fix(jupyter): allow unstable flags (#25483) Closes #25463 --- cli/args/flags.rs | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/cli/args/flags.rs b/cli/args/flags.rs index 07fef2c75a..8c2d3bffd5 100644 --- a/cli/args/flags.rs +++ b/cli/args/flags.rs @@ -2461,7 +2461,7 @@ fn json_reference_subcommand() -> Command { } fn jupyter_subcommand() -> Command { - Command::new("jupyter") + command("jupyter", "Deno kernel for Jupyter notebooks", UnstableArgsConfig::ResolutionAndRuntime) .arg( Arg::new("install") .long("install") @@ -2484,7 +2484,6 @@ fn jupyter_subcommand() -> Command { .value_parser(value_parser!(String)) .value_hint(ValueHint::FilePath) .conflicts_with("install")) - .about("Deno kernel for Jupyter notebooks") } fn uninstall_subcommand() -> Command { @@ -4584,6 +4583,8 @@ fn json_reference_parse( } fn jupyter_parse(flags: &mut Flags, matches: &mut ArgMatches) { + unstable_args_parse(flags, matches, UnstableArgsConfig::ResolutionAndRuntime); + let conn_file = matches.remove_one::("conn"); let kernel = matches.get_flag("kernel"); let install = matches.get_flag("install"); @@ -10746,6 +10747,35 @@ mod tests { .contains("Note: Permission flags can only be used in a global setting")); } + #[test] + fn jupyter_unstable_flags() { + let r = flags_from_vec(svec![ + "deno", + "jupyter", + "--unstable-ffi", + "--unstable-bare-node-builtins", + "--unstable-worker-options" + ]); + + assert_eq!( + r.unwrap(), + Flags { + subcommand: DenoSubcommand::Jupyter(JupyterFlags { + install: false, + kernel: false, + conn_file: None, + }), + unstable_config: UnstableConfig { + legacy_flag_enabled: false, + bare_node_builtins: true, + sloppy_imports: false, + features: svec!["ffi", "worker-options"], + }, + ..Flags::default() + } + ); + } + #[test] fn escape_and_split_commas_test() { assert_eq!(escape_and_split_commas("foo".to_string()).unwrap(), ["foo"]);