summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/args/mod.rs7
-rw-r--r--cli/factory.rs1
-rw-r--r--cli/standalone/binary.rs3
-rw-r--r--cli/standalone/mod.rs1
-rw-r--r--cli/tests/integration/run_tests.rs22
-rw-r--r--cli/tests/testdata/run/warn_on_deprecated_api/main.js32
-rw-r--r--cli/tests/testdata/run/warn_on_deprecated_api/main.out72
-rw-r--r--cli/tests/testdata/run/warn_on_deprecated_api/main_disabled_env.out15
-rw-r--r--cli/tests/testdata/run/warn_on_deprecated_api/main_disabled_flag.out14
-rw-r--r--cli/tests/testdata/run/warn_on_deprecated_api/mod.ts11
-rw-r--r--cli/worker.rs5
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(),