diff options
Diffstat (limited to 'cli')
| -rw-r--r-- | cli/args/mod.rs | 7 | ||||
| -rw-r--r-- | cli/factory.rs | 1 | ||||
| -rw-r--r-- | cli/standalone/binary.rs | 3 | ||||
| -rw-r--r-- | cli/standalone/mod.rs | 1 | ||||
| -rw-r--r-- | cli/tests/integration/run_tests.rs | 22 | ||||
| -rw-r--r-- | cli/tests/testdata/run/warn_on_deprecated_api/main.js | 32 | ||||
| -rw-r--r-- | cli/tests/testdata/run/warn_on_deprecated_api/main.out | 72 | ||||
| -rw-r--r-- | cli/tests/testdata/run/warn_on_deprecated_api/main_disabled_env.out | 15 | ||||
| -rw-r--r-- | cli/tests/testdata/run/warn_on_deprecated_api/main_disabled_flag.out | 14 | ||||
| -rw-r--r-- | cli/tests/testdata/run/warn_on_deprecated_api/mod.ts | 11 | ||||
| -rw-r--r-- | cli/worker.rs | 5 |
11 files changed, 183 insertions, 0 deletions
diff --git a/cli/args/mod.rs b/cli/args/mod.rs index 3ca7b5e32..c07df3a80 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -682,6 +682,7 @@ pub struct CliOptions { maybe_lockfile: Option<Arc<Mutex<Lockfile>>>, overrides: CliOptionOverrides, maybe_workspace_config: Option<WorkspaceConfig>, + pub disable_deprecated_api_warning: bool, } impl CliOptions { @@ -728,6 +729,10 @@ impl CliOptions { } } + let disable_deprecated_api_warning = flags.log_level + == Some(log::Level::Error) + || std::env::var("DENO_NO_DEPRECATION_WARNINGS").ok().is_some(); + Ok(Self { flags, initial_cwd, @@ -738,6 +743,7 @@ impl CliOptions { maybe_vendor_folder, overrides: Default::default(), maybe_workspace_config, + disable_deprecated_api_warning, }) } @@ -1058,6 +1064,7 @@ impl CliOptions { maybe_lockfile: self.maybe_lockfile.clone(), maybe_workspace_config: self.maybe_workspace_config.clone(), overrides: self.overrides.clone(), + disable_deprecated_api_warning: self.disable_deprecated_api_warning, } } diff --git a/cli/factory.rs b/cli/factory.rs index 204ea7e87..ed5232470 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -673,6 +673,7 @@ impl CliFactory { self.feature_checker().clone(), self.create_cli_main_worker_options()?, self.options.node_ipc_fd(), + self.options.disable_deprecated_api_warning, )) } diff --git a/cli/standalone/binary.rs b/cli/standalone/binary.rs index 18880b7a1..cdf86fffa 100644 --- a/cli/standalone/binary.rs +++ b/cli/standalone/binary.rs @@ -150,6 +150,7 @@ pub struct Metadata { pub maybe_import_map: Option<(Url, String)>, pub entrypoint: ModuleSpecifier, pub node_modules: Option<NodeModules>, + pub disable_deprecated_api_warning: bool, } pub fn load_npm_vfs(root_dir_path: PathBuf) -> Result<FileBackedVfs, AnyError> { @@ -557,6 +558,8 @@ impl<'a> DenoCompileBinaryWriter<'a> { entrypoint: entrypoint.clone(), maybe_import_map, node_modules, + disable_deprecated_api_warning: cli_options + .disable_deprecated_api_warning, }; write_binary_bytes( diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index 55c3db48c..8a98636a4 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -539,6 +539,7 @@ pub async fn run( maybe_root_package_json_deps: package_json_deps_provider.deps().cloned(), }, None, + metadata.disable_deprecated_api_warning, ); v8_set_flags(construct_v8_flags(&[], &metadata.v8_flags, vec![])); diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index 8db06470d..3fd013376 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -4939,3 +4939,25 @@ itest!(unstable_temporal_api_missing_flag { http_server: false, exit_code: 1, }); + +itest!(warn_on_deprecated_api { + args: "run -A run/warn_on_deprecated_api/main.js", + output: "run/warn_on_deprecated_api/main.out", + http_server: true, + exit_code: 0, +}); + +itest!(warn_on_deprecated_api_with_flag { + args: "run -A --quiet run/warn_on_deprecated_api/main.js", + output: "run/warn_on_deprecated_api/main_disabled_flag.out", + http_server: true, + exit_code: 0, +}); + +itest!(warn_on_deprecated_api_with_env_var { + args: "run -A run/warn_on_deprecated_api/main.js", + envs: vec![("DENO_NO_DEPRECATION_WARNINGS".to_string(), "1".to_string())], + output: "run/warn_on_deprecated_api/main_disabled_env.out", + http_server: true, + exit_code: 0, +}); diff --git a/cli/tests/testdata/run/warn_on_deprecated_api/main.js b/cli/tests/testdata/run/warn_on_deprecated_api/main.js new file mode 100644 index 000000000..a464be60a --- /dev/null +++ b/cli/tests/testdata/run/warn_on_deprecated_api/main.js @@ -0,0 +1,32 @@ +import { runEcho as runEcho2 } from "http://localhost:4545/run/warn_on_deprecated_api/mod.ts"; + +const p = Deno.run({ + cmd: [ + Deno.execPath(), + "eval", + "console.log('hello world')", + ], +}); +await p.status(); +p.close(); + +async function runEcho() { + const p = Deno.run({ + cmd: [ + Deno.execPath(), + "eval", + "console.log('hello world')", + ], + }); + await p.status(); + p.close(); +} + +await runEcho(); +await runEcho(); + +for (let i = 0; i < 10; i++) { + await runEcho(); +} + +await runEcho2(); diff --git a/cli/tests/testdata/run/warn_on_deprecated_api/main.out b/cli/tests/testdata/run/warn_on_deprecated_api/main.out new file mode 100644 index 000000000..984dbc291 --- /dev/null +++ b/cli/tests/testdata/run/warn_on_deprecated_api/main.out @@ -0,0 +1,72 @@ +Download http://localhost:4545/run/warn_on_deprecated_api/mod.ts +Warning +├ Use of deprecated "Deno.run()" API. +│ +├ This API will be removed in Deno 2.0. Make sure to upgrade to a stable API before then. +│ +├ Suggestion: Use "Deno.Command()" API instead. +│ +└ Stack trace: + └─ at [WILDCARD]warn_on_deprecated_api/main.js:3:16 + +hello world +Warning +├ Use of deprecated "Deno.run()" API. +│ +├ This API will be removed in Deno 2.0. Make sure to upgrade to a stable API before then. +│ +├ Suggestion: Use "Deno.Command()" API instead. +│ +└ Stack trace: + ├─ at runEcho ([WILDCARD]warn_on_deprecated_api/main.js:14:18) + └─ at [WILDCARD]warn_on_deprecated_api/main.js:25:7 + +hello world +Warning +├ Use of deprecated "Deno.run()" API. +│ +├ This API will be removed in Deno 2.0. Make sure to upgrade to a stable API before then. +│ +├ Suggestion: Use "Deno.Command()" API instead. +│ +└ Stack trace: + ├─ at runEcho ([WILDCARD]warn_on_deprecated_api/main.js:14:18) + └─ at [WILDCARD]warn_on_deprecated_api/main.js:26:7 + +hello world +Warning +├ Use of deprecated "Deno.run()" API. +│ +├ This API will be removed in Deno 2.0. Make sure to upgrade to a stable API before then. +│ +├ Suggestion: Use "Deno.Command()" API instead. +│ +└ Stack trace: + ├─ at runEcho ([WILDCARD]warn_on_deprecated_api/main.js:14:18) + └─ at [WILDCARD]warn_on_deprecated_api/main.js:29:9 + +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +Warning +├ Use of deprecated "Deno.run()" API. +│ +├ This API will be removed in Deno 2.0. Make sure to upgrade to a stable API before then. +│ +├ Suggestion: Use "Deno.Command()" API instead. +│ +├ Suggestion: It appears this API is used by a remote dependency. +│ Try upgrading to the latest version of that dependency. +│ +└ Stack trace: + ├─ at runEcho (http://localhost:4545/run/warn_on_deprecated_api/mod.ts:2:18) + └─ at [WILDCARD]warn_on_deprecated_api/main.js:32:7 + +hello world diff --git a/cli/tests/testdata/run/warn_on_deprecated_api/main_disabled_env.out b/cli/tests/testdata/run/warn_on_deprecated_api/main_disabled_env.out new file mode 100644 index 000000000..ef85a6f99 --- /dev/null +++ b/cli/tests/testdata/run/warn_on_deprecated_api/main_disabled_env.out @@ -0,0 +1,15 @@ +Download http://localhost:4545/run/warn_on_deprecated_api/mod.ts +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world diff --git a/cli/tests/testdata/run/warn_on_deprecated_api/main_disabled_flag.out b/cli/tests/testdata/run/warn_on_deprecated_api/main_disabled_flag.out new file mode 100644 index 000000000..ce3755d16 --- /dev/null +++ b/cli/tests/testdata/run/warn_on_deprecated_api/main_disabled_flag.out @@ -0,0 +1,14 @@ +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world +hello world diff --git a/cli/tests/testdata/run/warn_on_deprecated_api/mod.ts b/cli/tests/testdata/run/warn_on_deprecated_api/mod.ts new file mode 100644 index 000000000..f74632b2c --- /dev/null +++ b/cli/tests/testdata/run/warn_on_deprecated_api/mod.ts @@ -0,0 +1,11 @@ +export async function runEcho() { + const p = Deno.run({ + cmd: [ + Deno.execPath(), + "eval", + "console.log('hello world')", + ], + }); + await p.status(); + p.close(); +} diff --git a/cli/worker.rs b/cli/worker.rs index 8c2eed0c6..4807e2699 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -125,6 +125,7 @@ struct SharedWorkerState { maybe_lockfile: Option<Arc<Mutex<Lockfile>>>, feature_checker: Arc<FeatureChecker>, node_ipc: Option<i64>, + disable_deprecated_api_warning: bool, } impl SharedWorkerState { @@ -405,6 +406,7 @@ impl CliMainWorkerFactory { feature_checker: Arc<FeatureChecker>, options: CliMainWorkerOptions, node_ipc: Option<i64>, + disable_deprecated_api_warning: bool, ) -> Self { Self { shared: Arc::new(SharedWorkerState { @@ -426,6 +428,7 @@ impl CliMainWorkerFactory { maybe_lockfile, feature_checker, node_ipc, + disable_deprecated_api_warning, }), } } @@ -588,6 +591,7 @@ impl CliMainWorkerFactory { .maybe_binary_npm_command_name .clone(), node_ipc_fd: shared.node_ipc, + disable_deprecated_api_warning: shared.disable_deprecated_api_warning, }, extensions: custom_extensions, startup_snapshot: crate::js::deno_isolate_init(), @@ -786,6 +790,7 @@ fn create_web_worker_callback( .maybe_binary_npm_command_name .clone(), node_ipc_fd: None, + disable_deprecated_api_warning: shared.disable_deprecated_api_warning, }, extensions: vec![], startup_snapshot: crate::js::deno_isolate_init(), |
