summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-03-14 13:18:01 -0400
committerGitHub <noreply@github.com>2023-03-14 17:18:01 +0000
commit1930c09b04bbf2150a601c0fe47c44750d8c2b57 (patch)
tree3cda81496abf8d6b339c9ba51e4900ff05388ca8 /core
parent485e12062c95326815df0df59007cc31dd93bf8d (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 'core')
-rw-r--r--core/lib.rs1
-rw-r--r--core/module_specifier.rs27
-rw-r--r--core/ops_builtin_v8.rs10
3 files changed, 12 insertions, 26 deletions
diff --git a/core/lib.rs b/core/lib.rs
index b48a77f69..08df6e44d 100644
--- a/core/lib.rs
+++ b/core/lib.rs
@@ -72,7 +72,6 @@ pub use crate::module_specifier::resolve_import;
pub use crate::module_specifier::resolve_path;
pub use crate::module_specifier::resolve_url;
pub use crate::module_specifier::resolve_url_or_path;
-pub use crate::module_specifier::resolve_url_or_path_deprecated;
pub use crate::module_specifier::ModuleResolutionError;
pub use crate::module_specifier::ModuleSpecifier;
pub use crate::module_specifier::DUMMY_SPECIFIER;
diff --git a/core/module_specifier.rs b/core/module_specifier.rs
index 6c6dbad95..94ccd298c 100644
--- a/core/module_specifier.rs
+++ b/core/module_specifier.rs
@@ -121,24 +121,6 @@ pub fn resolve_url(
/// as it may be passed to deno as a command line argument.
/// The string is interpreted as a URL if it starts with a valid URI scheme,
/// e.g. 'http:' or 'file:' or 'git+ssh:'. If not, it's interpreted as a
-/// file path; if it is a relative path it's resolved relative to the current
-/// working directory.
-pub fn resolve_url_or_path_deprecated(
- specifier: &str,
-) -> Result<ModuleSpecifier, ModuleResolutionError> {
- if specifier_has_uri_scheme(specifier) {
- resolve_url(specifier)
- } else {
- let cwd = current_dir()
- .map_err(|_| ModuleResolutionError::InvalidPath(specifier.into()))?;
- resolve_path(specifier, &cwd)
- }
-}
-
-/// Takes a string representing either an absolute URL or a file path,
-/// as it may be passed to deno as a command line argument.
-/// The string is interpreted as a URL if it starts with a valid URI scheme,
-/// e.g. 'http:' or 'file:' or 'git+ssh:'. If not, it's interpreted as a
/// file path; if it is a relative path it's resolved relative to passed
/// `current_dir`.
pub fn resolve_url_or_path(
@@ -361,7 +343,7 @@ mod tests {
}
#[test]
- fn test_resolve_url_or_path_deprecated() {
+ fn test_resolve_url_or_path() {
// Absolute URL.
let mut tests: Vec<(&str, String)> = vec![
(
@@ -457,9 +439,7 @@ mod tests {
}
for (specifier, expected_url) in tests {
- let url = resolve_url_or_path_deprecated(specifier)
- .unwrap()
- .to_string();
+ let url = resolve_url_or_path(specifier, &cwd).unwrap().to_string();
assert_eq!(url, expected_url);
}
}
@@ -479,7 +459,8 @@ mod tests {
}
for (specifier, expected_err) in tests {
- let err = resolve_url_or_path_deprecated(specifier).unwrap_err();
+ let err =
+ resolve_url_or_path(specifier, &PathBuf::from("/")).unwrap_err();
assert_eq!(err, expected_err);
}
}
diff --git a/core/ops_builtin_v8.rs b/core/ops_builtin_v8.rs
index e00ed5a29..c66e4d3c2 100644
--- a/core/ops_builtin_v8.rs
+++ b/core/ops_builtin_v8.rs
@@ -6,13 +6,14 @@ use crate::error::range_error;
use crate::error::type_error;
use crate::error::JsError;
use crate::ops_builtin::WasmStreamingResource;
-use crate::resolve_url_or_path_deprecated;
+use crate::resolve_url_or_path;
use crate::serde_v8::from_v8;
use crate::source_map::apply_source_map as apply_source_map_;
use crate::JsRealm;
use crate::JsRuntime;
use crate::OpDecl;
use crate::ZeroCopyBuf;
+use anyhow::Context;
use anyhow::Error;
use deno_ops::op;
use serde::Deserialize;
@@ -165,7 +166,12 @@ fn op_eval_context<'a>(
let source = v8::Local::<v8::String>::try_from(source.v8_value)
.map_err(|_| type_error("Invalid source"))?;
let specifier = match specifier {
- Some(s) => resolve_url_or_path_deprecated(&s)?.to_string(),
+ Some(s) => {
+ // TODO(bartlomieju): ideally we shouldn't need to call `current_dir()` on each
+ // call - maybe it should be caller's responsibility to pass fully resolved URL?
+ let cwd = std::env::current_dir().context("Unable to get CWD")?;
+ resolve_url_or_path(&s, &cwd)?.to_string()
+ }
None => crate::DUMMY_SPECIFIER.to_string(),
};
let specifier = v8::String::new(tc_scope, &specifier).unwrap();