diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2023-03-14 13:18:01 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-14 17:18:01 +0000 |
commit | 1930c09b04bbf2150a601c0fe47c44750d8c2b57 (patch) | |
tree | 3cda81496abf8d6b339c9ba51e4900ff05388ca8 /cli/tsc/mod.rs | |
parent | 485e12062c95326815df0df59007cc31dd93bf8d (diff) |
refactor(core): remove "resolve_url_or_path_deprecated" (#18174)
Remove remaining usages of "resolve_url_or_path_deprecated" in favor
of "resolve_url_or_path" with explicit calls to
"std::env::current_dir()".
Towards landing https://github.com/denoland/deno/pull/15454
Diffstat (limited to 'cli/tsc/mod.rs')
-rw-r--r-- | cli/tsc/mod.rs | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs index 010d65a41..e8fe58c26 100644 --- a/cli/tsc/mod.rs +++ b/cli/tsc/mod.rs @@ -13,7 +13,7 @@ use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::located_script_name; use deno_core::op; -use deno_core::resolve_url_or_path_deprecated; +use deno_core::resolve_url_or_path; use deno_core::serde::Deserialize; use deno_core::serde::Deserializer; use deno_core::serde::Serialize; @@ -39,6 +39,7 @@ use once_cell::sync::Lazy; use std::borrow::Cow; use std::collections::HashMap; use std::fmt; +use std::path::Path; use std::path::PathBuf; use std::sync::Arc; @@ -378,6 +379,7 @@ struct State { maybe_npm_resolver: Option<NpmPackageResolver>, remapped_specifiers: HashMap<String, ModuleSpecifier>, root_map: HashMap<String, ModuleSpecifier>, + current_dir: PathBuf, } impl State { @@ -388,6 +390,7 @@ impl State { maybe_tsbuildinfo: Option<String>, root_map: HashMap<String, ModuleSpecifier>, remapped_specifiers: HashMap<String, ModuleSpecifier>, + current_dir: PathBuf, ) -> Self { State { hash_data, @@ -397,12 +400,16 @@ impl State { maybe_response: None, remapped_specifiers, root_map, + current_dir, } } } -fn normalize_specifier(specifier: &str) -> Result<ModuleSpecifier, AnyError> { - resolve_url_or_path_deprecated(specifier).map_err(|err| err.into()) +fn normalize_specifier( + specifier: &str, + current_dir: &Path, +) -> Result<ModuleSpecifier, AnyError> { + resolve_url_or_path(specifier, current_dir).map_err(|err| err.into()) } #[derive(Debug, Deserialize)] @@ -481,7 +488,7 @@ fn op_load(state: &mut OpState, args: Value) -> Result<Value, AnyError> { let state = state.borrow_mut::<State>(); let v: LoadArgs = serde_json::from_value(args) .context("Invalid request from JavaScript for \"op_load\".")?; - let specifier = normalize_specifier(&v.specifier) + let specifier = normalize_specifier(&v.specifier, &state.current_dir) .context("Error converting a string module specifier for \"op_load\".")?; let mut hash: Option<String> = None; let mut media_type = MediaType::Unknown; @@ -584,7 +591,7 @@ fn op_resolve( } else if let Some(remapped_base) = state.root_map.get(&args.base) { remapped_base.clone() } else { - normalize_specifier(&args.base).context( + normalize_specifier(&args.base, &state.current_dir).context( "Error converting a string module specifier for \"op_resolve\".", )? }; @@ -831,6 +838,9 @@ pub fn exec(request: Request) -> Result<Response, AnyError> { request.maybe_tsbuildinfo.clone(), root_map.clone(), remapped_specifiers.clone(), + std::env::current_dir() + .context("Unable to get CWD") + .unwrap(), )); }) .build()], @@ -943,6 +953,9 @@ mod tests { maybe_tsbuildinfo, HashMap::new(), HashMap::new(), + std::env::current_dir() + .context("Unable to get CWD") + .unwrap(), ); let mut op_state = OpState::new(1); op_state.put(state); |