diff options
author | Kenta Moriuchi <moriken@kimamass.com> | 2024-04-30 05:43:05 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-29 22:43:05 +0200 |
commit | 783533d2e354ad73356d7517b26293e48c10fc17 (patch) | |
tree | 68bd0fa01c59ab9c4ad6d2010fabb9babf6d8d85 /cli | |
parent | 4384a126bb759580777e7a2678fe49bb015f2f69 (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.rs | 2 | ||||
-rw-r--r-- | cli/lsp/config.rs | 3 | ||||
-rw-r--r-- | cli/main.rs | 11 |
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()); |