summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-03-13 19:31:03 -0400
committerGitHub <noreply@github.com>2023-03-13 19:31:03 -0400
commitc4771356f27b250e7fdbcede0de5682982720455 (patch)
tree1d3507a0b9ee7c6388b3dae8c752328c2528fe74
parenta35c8e6588fec21586bcb19146cad19fa01f4f23 (diff)
refactor: Remove call sites of "deno_core::resolve_url_or_path" (#18169)
These call sites didn't need to use "resolve_url_or_path". Towards landing https://github.com/denoland/deno/pull/15454
-rw-r--r--cli/file_fetcher.rs24
-rw-r--r--cli/proc_state.rs3
-rw-r--r--cli/tests/unit/process_test.ts2
-rw-r--r--cli/tools/doc.rs5
-rw-r--r--cli/tools/repl/mod.rs6
-rw-r--r--cli/tools/repl/session.rs4
-rw-r--r--cli/tools/run.rs8
-rw-r--r--cli/tsc/mod.rs20
-rw-r--r--cli/worker.rs12
-rw-r--r--runtime/permissions/mod.rs23
10 files changed, 64 insertions, 43 deletions
diff --git a/cli/file_fetcher.rs b/cli/file_fetcher.rs
index f28720964..b4dadba71 100644
--- a/cli/file_fetcher.rs
+++ b/cli/file_fetcher.rs
@@ -742,7 +742,6 @@ mod tests {
use super::*;
use deno_core::error::get_custom_error_class;
use deno_core::resolve_url;
- use deno_core::resolve_url_or_path;
use deno_core::url::Url;
use deno_runtime::deno_fetch::create_http_client;
use deno_runtime::deno_web::Blob;
@@ -827,7 +826,8 @@ mod tests {
async fn test_fetch_local_encoded(charset: &str, expected: String) {
let p = test_util::testdata_path().join(format!("encoding/{charset}.ts"));
- let specifier = resolve_url_or_path(p.to_str().unwrap()).unwrap();
+ let specifier =
+ ModuleSpecifier::from_file_path(p.to_str().unwrap()).unwrap();
let (file, _) = test_fetch(&specifier).await;
assert_eq!(&*file.source, expected);
}
@@ -845,7 +845,7 @@ mod tests {
];
for (specifier, is_ok, expected) in fixtures {
- let specifier = resolve_url_or_path(specifier).unwrap();
+ let specifier = ModuleSpecifier::parse(specifier).unwrap();
let actual = get_validated_scheme(&specifier);
assert_eq!(actual.is_ok(), is_ok);
if is_ok {
@@ -1021,7 +1021,7 @@ mod tests {
];
for (specifier, maybe_content_type, media_type, maybe_charset) in fixtures {
- let specifier = resolve_url_or_path(specifier).unwrap();
+ let specifier = ModuleSpecifier::parse(specifier).unwrap();
assert_eq!(
map_content_type(&specifier, maybe_content_type.as_ref()),
(media_type, maybe_charset)
@@ -1034,7 +1034,8 @@ mod tests {
let (file_fetcher, temp_dir) = setup(CacheSetting::Use, None);
let local = temp_dir.path().join("a.ts");
let specifier =
- resolve_url_or_path(local.as_os_str().to_str().unwrap()).unwrap();
+ ModuleSpecifier::from_file_path(local.as_os_str().to_str().unwrap())
+ .unwrap();
let file = File {
local,
maybe_types: None,
@@ -1143,7 +1144,7 @@ mod tests {
let (file_fetcher_01, _) = setup(CacheSetting::Use, Some(temp_dir.clone()));
let (file_fetcher_02, _) = setup(CacheSetting::Use, Some(temp_dir.clone()));
let specifier =
- resolve_url_or_path("http://localhost:4545/subdir/mod2.ts").unwrap();
+ ModuleSpecifier::parse("http://localhost:4545/subdir/mod2.ts").unwrap();
let result = file_fetcher
.fetch(&specifier, PermissionsContainer::allow_all())
@@ -1587,8 +1588,7 @@ mod tests {
async fn test_fetch_local_bypasses_file_cache() {
let (file_fetcher, temp_dir) = setup(CacheSetting::Use, None);
let fixture_path = temp_dir.path().join("mod.ts");
- let specifier =
- resolve_url_or_path(&fixture_path.to_string_lossy()).unwrap();
+ let specifier = ModuleSpecifier::from_file_path(&fixture_path).unwrap();
fs::write(fixture_path.clone(), r#"console.log("hello deno");"#).unwrap();
let result = file_fetcher
.fetch(&specifier, PermissionsContainer::allow_all())
@@ -1690,7 +1690,8 @@ mod tests {
#[tokio::test]
async fn test_fetch_remote_javascript_with_types() {
let specifier =
- resolve_url_or_path("http://127.0.0.1:4545/xTypeScriptTypes.js").unwrap();
+ ModuleSpecifier::parse("http://127.0.0.1:4545/xTypeScriptTypes.js")
+ .unwrap();
let (file, _) = test_fetch_remote(&specifier).await;
assert_eq!(
file.maybe_types,
@@ -1701,7 +1702,7 @@ mod tests {
#[tokio::test]
async fn test_fetch_remote_jsx_with_types() {
let specifier =
- resolve_url_or_path("http://127.0.0.1:4545/xTypeScriptTypes.jsx")
+ ModuleSpecifier::parse("http://127.0.0.1:4545/xTypeScriptTypes.jsx")
.unwrap();
let (file, _) = test_fetch_remote(&specifier).await;
assert_eq!(file.media_type, MediaType::Jsx,);
@@ -1714,7 +1715,8 @@ mod tests {
#[tokio::test]
async fn test_fetch_remote_typescript_with_types() {
let specifier =
- resolve_url_or_path("http://127.0.0.1:4545/xTypeScriptTypes.ts").unwrap();
+ ModuleSpecifier::parse("http://127.0.0.1:4545/xTypeScriptTypes.ts")
+ .unwrap();
let (file, _) = test_fetch_remote(&specifier).await;
assert_eq!(file.maybe_types, None);
}
diff --git a/cli/proc_state.rs b/cli/proc_state.rs
index 52afcd631..eb43e75d7 100644
--- a/cli/proc_state.rs
+++ b/cli/proc_state.rs
@@ -565,7 +565,8 @@ impl ProcState {
// but sadly that's not the case due to missing APIs in V8.
let is_repl = matches!(self.options.sub_command(), DenoSubcommand::Repl(_));
let referrer = if referrer.is_empty() && is_repl {
- deno_core::resolve_url_or_path("./$deno$repl.ts")?
+ let cwd = std::env::current_dir().context("Unable to get CWD")?;
+ deno_core::resolve_path("./$deno$repl.ts", &cwd)?
} else {
deno_core::resolve_url_or_path(referrer)?
};
diff --git a/cli/tests/unit/process_test.ts b/cli/tests/unit/process_test.ts
index 3291956f9..e79365a6d 100644
--- a/cli/tests/unit/process_test.ts
+++ b/cli/tests/unit/process_test.ts
@@ -658,6 +658,6 @@ Deno.test(
p.close();
p.stdout.close();
assertStrictEquals(code, 1);
- assertStringIncludes(stderr, "invalid module path");
+ assertStringIncludes(stderr, "Unable to get CWD");
},
);
diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs
index 1f8bfad7a..2ee80f6b7 100644
--- a/cli/tools/doc.rs
+++ b/cli/tools/doc.rs
@@ -12,7 +12,9 @@ use crate::proc_state::ProcState;
use crate::tsc::get_types_declaration_file_text;
use deno_ast::MediaType;
use deno_core::anyhow::bail;
+use deno_core::anyhow::Context;
use deno_core::error::AnyError;
+use deno_core::resolve_path;
use deno_core::resolve_url_or_path;
use deno_doc as doc;
use deno_graph::ModuleSpecifier;
@@ -60,11 +62,12 @@ pub async fn print_docs(
doc_parser.parse_module(&source_file_specifier)?.definitions
}
DocSourceFileFlag::Path(source_file) => {
+ let cwd = std::env::current_dir().context("Unable to get CWD")?;
let module_specifier = resolve_url_or_path(&source_file)?;
// If the root module has external types, the module graph won't redirect it,
// so instead create a dummy file which exports everything from the actual file being documented.
- let root_specifier = resolve_url_or_path("./$deno$doc.ts").unwrap();
+ let root_specifier = resolve_path("./$deno$doc.ts", &cwd).unwrap();
let root = File {
local: PathBuf::from("./$deno$doc.ts"),
maybe_types: None,
diff --git a/cli/tools/repl/mod.rs b/cli/tools/repl/mod.rs
index a9cb0132b..99dab6261 100644
--- a/cli/tools/repl/mod.rs
+++ b/cli/tools/repl/mod.rs
@@ -5,8 +5,9 @@ use crate::args::ReplFlags;
use crate::colors;
use crate::proc_state::ProcState;
use crate::worker::create_main_worker;
+use deno_core::anyhow::Context;
use deno_core::error::AnyError;
-use deno_core::resolve_url_or_path;
+use deno_core::resolve_path;
use deno_runtime::permissions::Permissions;
use deno_runtime::permissions::PermissionsContainer;
use rustyline::error::ReadlineError;
@@ -80,7 +81,8 @@ async fn read_eval_file(
}
pub async fn run(flags: Flags, repl_flags: ReplFlags) -> Result<i32, AnyError> {
- let main_module = resolve_url_or_path("./$deno$repl.ts").unwrap();
+ let cwd = std::env::current_dir().context("Unable to get CWD")?;
+ let main_module = resolve_path("./$deno$repl.ts", &cwd).unwrap();
let ps = ProcState::build(flags).await?;
let mut worker = create_main_worker(
&ps,
diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs
index e9ddd09b1..1cd67fc97 100644
--- a/cli/tools/repl/session.rs
+++ b/cli/tools/repl/session.rs
@@ -11,6 +11,7 @@ use deno_ast::swc::visit::VisitWith;
use deno_ast::DiagnosticsError;
use deno_ast::ImportsNotUsedAsValues;
use deno_ast::ModuleSpecifier;
+use deno_core::anyhow::Context;
use deno_core::error::AnyError;
use deno_core::futures::channel::mpsc::UnboundedReceiver;
use deno_core::futures::FutureExt;
@@ -143,7 +144,8 @@ impl ReplSession {
}
assert_ne!(context_id, 0);
- let referrer = deno_core::resolve_url_or_path("./$deno$repl.ts").unwrap();
+ let cwd = std::env::current_dir().context("Unable to get CWD")?;
+ let referrer = deno_core::resolve_path("./$deno$repl.ts", &cwd).unwrap();
let mut repl_session = ReplSession {
proc_state,
diff --git a/cli/tools/run.rs b/cli/tools/run.rs
index d72378510..d949a1cdb 100644
--- a/cli/tools/run.rs
+++ b/cli/tools/run.rs
@@ -5,7 +5,9 @@ use std::sync::Arc;
use deno_ast::MediaType;
use deno_ast::ModuleSpecifier;
+use deno_core::anyhow::Context;
use deno_core::error::AnyError;
+use deno_core::resolve_path;
use deno_core::resolve_url_or_path;
use deno_graph::npm::NpmPackageReqReference;
use deno_runtime::permissions::Permissions;
@@ -67,7 +69,8 @@ To grant permissions, set them before the script argument. For example:
pub async fn run_from_stdin(flags: Flags) -> Result<i32, AnyError> {
let ps = ProcState::build(flags).await?;
- let main_module = resolve_url_or_path("./$deno$stdin.ts").unwrap();
+ let cwd = std::env::current_dir().context("Unable to get CWD")?;
+ let main_module = resolve_path("./$deno$stdin.ts", &cwd).unwrap();
let mut worker = create_main_worker(
&ps,
main_module.clone(),
@@ -139,8 +142,9 @@ pub async fn eval_command(
) -> Result<i32, AnyError> {
// deno_graph works off of extensions for local files to determine the media
// type, and so our "fake" specifier needs to have the proper extension.
+ let cwd = std::env::current_dir().context("Unable to get CWD")?;
let main_module =
- resolve_url_or_path(&format!("./$deno$eval.{}", eval_flags.ext))?;
+ resolve_path(&format!("./$deno$eval.{}", eval_flags.ext), &cwd)?;
let ps = ProcState::build(flags).await?;
let permissions = PermissionsContainer::new(Permissions::from_options(
&ps.options.permissions_options(),
diff --git a/cli/tsc/mod.rs b/cli/tsc/mod.rs
index 2f9b4224c..6add7d1fd 100644
--- a/cli/tsc/mod.rs
+++ b/cli/tsc/mod.rs
@@ -928,7 +928,7 @@ mod tests {
maybe_tsbuildinfo: Option<String>,
) -> OpState {
let specifier = maybe_specifier
- .unwrap_or_else(|| resolve_url_or_path("file:///main.ts").unwrap());
+ .unwrap_or_else(|| ModuleSpecifier::parse("file:///main.ts").unwrap());
let hash_data = maybe_hash_data.unwrap_or_else(|| vec![b"".to_vec()]);
let fixtures = test_util::testdata_path().join("tsc2");
let mut loader = MockLoader { fixtures };
@@ -1050,7 +1050,7 @@ mod tests {
("file:///.tsbuildinfo", MediaType::Unknown),
];
for (specifier, media_type) in fixtures {
- let specifier = resolve_url_or_path(specifier).unwrap();
+ let specifier = ModuleSpecifier::parse(specifier).unwrap();
assert_eq!(get_tsc_media_type(&specifier), media_type);
}
}
@@ -1076,7 +1076,7 @@ mod tests {
#[tokio::test]
async fn test_load() {
let mut state = setup(
- Some(resolve_url_or_path("https://deno.land/x/mod.ts").unwrap()),
+ Some(ModuleSpecifier::parse("https://deno.land/x/mod.ts").unwrap()),
None,
Some("some content".to_string()),
)
@@ -1107,7 +1107,7 @@ mod tests {
#[tokio::test]
async fn test_load_asset() {
let mut state = setup(
- Some(resolve_url_or_path("https://deno.land/x/mod.ts").unwrap()),
+ Some(ModuleSpecifier::parse("https://deno.land/x/mod.ts").unwrap()),
None,
Some("some content".to_string()),
)
@@ -1128,7 +1128,7 @@ mod tests {
#[tokio::test]
async fn test_load_tsbuildinfo() {
let mut state = setup(
- Some(resolve_url_or_path("https://deno.land/x/mod.ts").unwrap()),
+ Some(ModuleSpecifier::parse("https://deno.land/x/mod.ts").unwrap()),
None,
Some("some content".to_string()),
)
@@ -1169,7 +1169,7 @@ mod tests {
#[tokio::test]
async fn test_resolve() {
let mut state = setup(
- Some(resolve_url_or_path("https://deno.land/x/a.ts").unwrap()),
+ Some(ModuleSpecifier::parse("https://deno.land/x/a.ts").unwrap()),
None,
None,
)
@@ -1191,7 +1191,7 @@ mod tests {
#[tokio::test]
async fn test_resolve_empty() {
let mut state = setup(
- Some(resolve_url_or_path("https://deno.land/x/a.ts").unwrap()),
+ Some(ModuleSpecifier::parse("https://deno.land/x/a.ts").unwrap()),
None,
None,
)
@@ -1253,7 +1253,7 @@ mod tests {
#[tokio::test]
async fn test_exec_basic() {
- let specifier = resolve_url_or_path("https://deno.land/x/a.ts").unwrap();
+ let specifier = ModuleSpecifier::parse("https://deno.land/x/a.ts").unwrap();
let actual = test_exec(&specifier)
.await
.expect("exec should not have errored");
@@ -1264,7 +1264,7 @@ mod tests {
#[tokio::test]
async fn test_exec_reexport_dts() {
- let specifier = resolve_url_or_path("file:///reexports.ts").unwrap();
+ let specifier = ModuleSpecifier::parse("file:///reexports.ts").unwrap();
let actual = test_exec(&specifier)
.await
.expect("exec should not have errored");
@@ -1275,7 +1275,7 @@ mod tests {
#[tokio::test]
async fn fix_lib_ref() {
- let specifier = resolve_url_or_path("file:///libref.ts").unwrap();
+ let specifier = ModuleSpecifier::parse("file:///libref.ts").unwrap();
let actual = test_exec(&specifier)
.await
.expect("exec should not have errored");
diff --git a/cli/worker.rs b/cli/worker.rs
index 97794caf3..151f70f05 100644
--- a/cli/worker.rs
+++ b/cli/worker.rs
@@ -728,6 +728,7 @@ fn create_web_worker_callback(
#[cfg(test)]
mod tests {
use super::*;
+ use deno_core::resolve_path;
use deno_core::resolve_url_or_path;
use deno_core::FsModuleLoader;
use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel;
@@ -735,7 +736,8 @@ mod tests {
use deno_runtime::permissions::Permissions;
fn create_test_worker() -> MainWorker {
- let main_module = resolve_url_or_path("./hello.js").unwrap();
+ let main_module =
+ resolve_path("./hello.js", &std::env::current_dir().unwrap()).unwrap();
let permissions = PermissionsContainer::new(Permissions::default());
let options = WorkerOptions {
@@ -802,7 +804,7 @@ mod tests {
.parent()
.unwrap()
.join("tests/circular1.js");
- let module_specifier = resolve_url_or_path(&p.to_string_lossy()).unwrap();
+ let module_specifier = ModuleSpecifier::from_file_path(&p).unwrap();
let mut worker = create_test_worker();
let result = worker.execute_main_module(&module_specifier).await;
if let Err(err) = result {
@@ -817,7 +819,9 @@ mod tests {
async fn execute_mod_resolve_error() {
// "foo" is not a valid module specifier so this should return an error.
let mut worker = create_test_worker();
- let module_specifier = resolve_url_or_path("does-not-exist").unwrap();
+ let module_specifier =
+ resolve_path("./does-not-exist", &std::env::current_dir().unwrap())
+ .unwrap();
let result = worker.execute_main_module(&module_specifier).await;
assert!(result.is_err());
}
@@ -828,7 +832,7 @@ mod tests {
// tests).
let mut worker = create_test_worker();
let p = test_util::testdata_path().join("run/001_hello.js");
- let module_specifier = resolve_url_or_path(&p.to_string_lossy()).unwrap();
+ let module_specifier = ModuleSpecifier::from_file_path(&p).unwrap();
let result = worker.execute_main_module(&module_specifier).await;
assert!(result.is_ok());
}
diff --git a/runtime/permissions/mod.rs b/runtime/permissions/mod.rs
index 20978f3b2..3662b2d7f 100644
--- a/runtime/permissions/mod.rs
+++ b/runtime/permissions/mod.rs
@@ -2550,7 +2550,6 @@ pub fn create_child_permissions(
#[cfg(test)]
mod tests {
use super::*;
- use deno_core::resolve_url_or_path;
use deno_core::serde_json::json;
use prompter::tests::*;
@@ -2854,27 +2853,31 @@ mod tests {
let mut fixtures = vec![
(
- resolve_url_or_path("http://localhost:4545/mod.ts").unwrap(),
+ ModuleSpecifier::parse("http://localhost:4545/mod.ts").unwrap(),
true,
),
(
- resolve_url_or_path("http://deno.land/x/mod.ts").unwrap(),
+ ModuleSpecifier::parse("http://deno.land/x/mod.ts").unwrap(),
false,
),
(
- resolve_url_or_path("data:text/plain,Hello%2C%20Deno!").unwrap(),
+ ModuleSpecifier::parse("data:text/plain,Hello%2C%20Deno!").unwrap(),
true,
),
];
if cfg!(target_os = "windows") {
fixtures
- .push((resolve_url_or_path("file:///C:/a/mod.ts").unwrap(), true));
- fixtures
- .push((resolve_url_or_path("file:///C:/b/mod.ts").unwrap(), false));
+ .push((ModuleSpecifier::parse("file:///C:/a/mod.ts").unwrap(), true));
+ fixtures.push((
+ ModuleSpecifier::parse("file:///C:/b/mod.ts").unwrap(),
+ false,
+ ));
} else {
- fixtures.push((resolve_url_or_path("file:///a/mod.ts").unwrap(), true));
- fixtures.push((resolve_url_or_path("file:///b/mod.ts").unwrap(), false));
+ fixtures
+ .push((ModuleSpecifier::parse("file:///a/mod.ts").unwrap(), true));
+ fixtures
+ .push((ModuleSpecifier::parse("file:///b/mod.ts").unwrap(), false));
}
for (specifier, expected) in fixtures {
@@ -2898,7 +2901,7 @@ mod tests {
for url in test_cases {
assert!(perms
- .check_specifier(&resolve_url_or_path(url).unwrap())
+ .check_specifier(&ModuleSpecifier::parse(url).unwrap())
.is_err());
}
}