summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/args/mod.rs28
-rw-r--r--tests/specs/task/invalid_unstable_feature/__test__.jsonc6
-rw-r--r--tests/specs/task/invalid_unstable_feature/deno.json22
-rw-r--r--tests/specs/task/invalid_unstable_feature/index.js1
-rw-r--r--tests/specs/task/invalid_unstable_feature/invalid_unstable_feature.out5
5 files changed, 62 insertions, 0 deletions
diff --git a/cli/args/mod.rs b/cli/args/mod.rs
index 950ba72e2..04a011196 100644
--- a/cli/args/mod.rs
+++ b/cli/args/mod.rs
@@ -1660,6 +1660,34 @@ impl CliOptions {
});
}
+ if !from_config_file.is_empty() {
+ // collect unstable granular flags
+ let mut all_valid_unstable_flags: Vec<&str> =
+ crate::UNSTABLE_GRANULAR_FLAGS
+ .iter()
+ .map(|granular_flag| granular_flag.0)
+ .collect();
+
+ let mut another_unstable_flags =
+ Vec::from(["sloppy-imports", "byonm", "bare-node-builtins"]);
+ // add more unstable flags to the same vector holding granular flags
+ all_valid_unstable_flags.append(&mut another_unstable_flags);
+
+ // check and warn if the unstable flag of config file isn't supported, by
+ // iterating through the vector holding the unstable flags
+ for unstable_value_from_config_file in &from_config_file {
+ if !all_valid_unstable_flags
+ .contains(&unstable_value_from_config_file.as_str())
+ {
+ log::warn!(
+ "{} '{}' isn't a valid unstable feature",
+ colors::yellow("Warning"),
+ unstable_value_from_config_file
+ );
+ }
+ }
+ }
+
from_config_file
}
diff --git a/tests/specs/task/invalid_unstable_feature/__test__.jsonc b/tests/specs/task/invalid_unstable_feature/__test__.jsonc
new file mode 100644
index 000000000..bfac9d153
--- /dev/null
+++ b/tests/specs/task/invalid_unstable_feature/__test__.jsonc
@@ -0,0 +1,6 @@
+{
+ "steps": [{
+ "args": "task start",
+ "output": "invalid_unstable_feature.out"
+ }]
+}
diff --git a/tests/specs/task/invalid_unstable_feature/deno.json b/tests/specs/task/invalid_unstable_feature/deno.json
new file mode 100644
index 000000000..36f084e47
--- /dev/null
+++ b/tests/specs/task/invalid_unstable_feature/deno.json
@@ -0,0 +1,22 @@
+{
+ "tasks": {
+ "start": "deno run index.js"
+ },
+ "unstable": [
+ "abc",
+ "byonm",
+ "bare-node-builtins",
+ "sloppy-imports",
+ "unsafe-proto",
+ "webgpu",
+ "broadcast-channel",
+ "worker-options",
+ "cron",
+ "kv",
+ "ffi",
+ "fs",
+ "net",
+ "http",
+ "cba"
+ ]
+}
diff --git a/tests/specs/task/invalid_unstable_feature/index.js b/tests/specs/task/invalid_unstable_feature/index.js
new file mode 100644
index 000000000..fb5a295b6
--- /dev/null
+++ b/tests/specs/task/invalid_unstable_feature/index.js
@@ -0,0 +1 @@
+console.log("Hello unstable features");
diff --git a/tests/specs/task/invalid_unstable_feature/invalid_unstable_feature.out b/tests/specs/task/invalid_unstable_feature/invalid_unstable_feature.out
new file mode 100644
index 000000000..78c4eaca9
--- /dev/null
+++ b/tests/specs/task/invalid_unstable_feature/invalid_unstable_feature.out
@@ -0,0 +1,5 @@
+Task start deno run index.js
+Warning Sloppy imports are not recommended and have a negative impact on performance.
+Warning 'abc' isn't a valid unstable feature
+Warning 'cba' isn't a valid unstable feature
+Hello unstable features