diff options
Diffstat (limited to 'cli/config_file.rs')
-rw-r--r-- | cli/config_file.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/cli/config_file.rs b/cli/config_file.rs index dd002ca97..3a71d41a9 100644 --- a/cli/config_file.rs +++ b/cli/config_file.rs @@ -10,6 +10,7 @@ use deno_core::serde::Serializer; use deno_core::serde_json; use deno_core::serde_json::json; use deno_core::serde_json::Value; +use deno_core::ModuleSpecifier; use std::collections::BTreeMap; use std::collections::HashMap; use std::fmt; @@ -401,6 +402,19 @@ impl ConfigFile { } } + /// If the configuration file contains "extra" modules (like TypeScript + /// `"types"`) options, return them as imports to be added to a module graph. + pub fn to_maybe_imports( + &self, + ) -> Option<Vec<(ModuleSpecifier, Vec<String>)>> { + let compiler_options_value = self.json.compiler_options.as_ref()?; + let compiler_options: CompilerOptions = + serde_json::from_value(compiler_options_value.clone()).ok()?; + let referrer = ModuleSpecifier::from_file_path(&self.path).ok()?; + let types = compiler_options.types?; + Some(vec![(referrer, types)]) + } + pub fn to_fmt_config(&self) -> Result<Option<FmtConfig>, AnyError> { if let Some(config) = self.json.fmt.clone() { let fmt_config: FmtConfig = serde_json::from_value(config) |