summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorKenta Moriuchi <moriken@kimamass.com>2024-04-30 05:43:05 +0900
committerGitHub <noreply@github.com>2024-04-29 22:43:05 +0200
commit783533d2e354ad73356d7517b26293e48c10fc17 (patch)
tree68bd0fa01c59ab9c4ad6d2010fabb9babf6d8d85 /cli
parent4384a126bb759580777e7a2678fe49bb015f2f69 (diff)
FUTURE: remove import assertions support for JavaScript (#23541)
Ref #17944, https://github.com/swc-project/swc/issues/8893 TypeScript removes the `assert` keywords in the transpile, so this PR only works for JavaScript files
Diffstat (limited to 'cli')
-rw-r--r--cli/args/mod.rs2
-rw-r--r--cli/lsp/config.rs3
-rw-r--r--cli/main.rs11
3 files changed, 13 insertions, 3 deletions
diff --git a/cli/args/mod.rs b/cli/args/mod.rs
index 1d8b06f49..b77a8afdb 100644
--- a/cli/args/mod.rs
+++ b/cli/args/mod.rs
@@ -110,7 +110,7 @@ pub static DENO_DISABLE_PEDANTIC_NODE_WARNINGS: Lazy<bool> = Lazy::new(|| {
.is_some()
});
-static DENO_FUTURE: Lazy<bool> =
+pub static DENO_FUTURE: Lazy<bool> =
Lazy::new(|| std::env::var("DENO_FUTURE").ok().is_some());
pub fn jsr_url() -> &'static Url {
diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs
index 5ddc41cb2..e5703a21a 100644
--- a/cli/lsp/config.rs
+++ b/cli/lsp/config.rs
@@ -4,6 +4,7 @@ use super::logging::lsp_log;
use crate::args::ConfigFile;
use crate::args::FmtOptions;
use crate::args::LintOptions;
+use crate::args::DENO_FUTURE;
use crate::cache::FastInsecureHasher;
use crate::file_fetcher::FileFetcher;
use crate::lsp::logging::lsp_warn;
@@ -1324,7 +1325,7 @@ impl ConfigData {
.as_ref()
.map(|c| c.has_unstable("byonm"))
.unwrap_or(false)
- || (std::env::var("DENO_FUTURE").is_ok()
+ || (*DENO_FUTURE
&& package_json.is_some()
&& config_file
.as_ref()
diff --git a/cli/main.rs b/cli/main.rs
index 142ae017c..3b103e780 100644
--- a/cli/main.rs
+++ b/cli/main.rs
@@ -29,6 +29,7 @@ mod worker;
use crate::args::flags_from_vec;
use crate::args::DenoSubcommand;
use crate::args::Flags;
+use crate::args::DENO_FUTURE;
use crate::util::display;
use crate::util::v8::get_v8_flags_from_env;
use crate::util::v8::init_v8_flags;
@@ -389,7 +390,15 @@ fn resolve_flags_and_init(
// Using same default as VSCode:
// https://github.com/microsoft/vscode/blob/48d4ba271686e8072fc6674137415bc80d936bc7/extensions/typescript-language-features/src/configuration/configuration.ts#L213-L214
DenoSubcommand::Lsp => vec!["--max-old-space-size=3072".to_string()],
- _ => vec![],
+ _ => {
+ if *DENO_FUTURE {
+ // deno_ast removes TypeScript `assert` keywords, so this flag only affects JavaScript
+ // TODO(petamoriken): Need to check TypeScript `assert` keywords in deno_ast
+ vec!["--no-harmony-import-assertions".to_string()]
+ } else {
+ vec![]
+ }
+ }
};
init_v8_flags(&default_v8_flags, &flags.v8_flags, get_v8_flags_from_env());