From e8f22c076525c2fa55115349157f67085df287bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Mon, 13 Mar 2023 13:50:23 -0400 Subject: refactor(core): pass cwd explicitly to resolve_path (#18092) Towards landing #15454 --- core/examples/fs_module_loader.rs | 6 +++++- core/examples/ts_module_loader.rs | 6 +++++- core/module_specifier.rs | 10 ++++++---- 3 files changed, 16 insertions(+), 6 deletions(-) (limited to 'core') diff --git a/core/examples/fs_module_loader.rs b/core/examples/fs_module_loader.rs index a8d33e104..737ff1d5c 100644 --- a/core/examples/fs_module_loader.rs +++ b/core/examples/fs_module_loader.rs @@ -1,5 +1,6 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +use anyhow::Context; use deno_core::anyhow::Error; use deno_core::FsModuleLoader; use deno_core::JsRuntime; @@ -24,7 +25,10 @@ fn main() -> Result<(), Error> { .enable_all() .build()?; - let main_module = deno_core::resolve_path(main_url)?; + let main_module = deno_core::resolve_path( + main_url, + &std::env::current_dir().context("Unable to get CWD")?, + )?; let future = async move { let mod_id = js_runtime.load_main_module(&main_module, None).await?; diff --git a/core/examples/ts_module_loader.rs b/core/examples/ts_module_loader.rs index b57b04493..289b43dc9 100644 --- a/core/examples/ts_module_loader.rs +++ b/core/examples/ts_module_loader.rs @@ -9,6 +9,7 @@ use std::rc::Rc; use anyhow::anyhow; use anyhow::bail; +use anyhow::Context; use anyhow::Error; use deno_ast::MediaType; use deno_ast::ParseParams; @@ -106,7 +107,10 @@ fn main() -> Result<(), Error> { ..Default::default() }); - let main_module = resolve_path(main_url)?; + let main_module = resolve_path( + main_url, + &std::env::current_dir().context("Unable to get CWD")?, + )?; let future = async move { let mod_id = js_runtime.load_main_module(&main_module, None).await?; diff --git a/core/module_specifier.rs b/core/module_specifier.rs index c65f34110..72d693723 100644 --- a/core/module_specifier.rs +++ b/core/module_specifier.rs @@ -4,6 +4,7 @@ use crate::normalize_path; use std::env::current_dir; use std::error::Error; use std::fmt; +use std::path::Path; use std::path::PathBuf; use url::ParseError; use url::Url; @@ -128,7 +129,9 @@ pub fn resolve_url_or_path( if specifier_has_uri_scheme(specifier) { resolve_url(specifier) } else { - resolve_path(specifier) + let cwd = current_dir() + .map_err(|_| ModuleResolutionError::InvalidPath(specifier.into()))?; + resolve_path(specifier, &cwd) } } @@ -137,10 +140,9 @@ pub fn resolve_url_or_path( /// working directory. pub fn resolve_path( path_str: &str, + current_dir: &Path, ) -> Result { - let path = current_dir() - .map_err(|_| ModuleResolutionError::InvalidPath(path_str.into()))? - .join(path_str); + let path = current_dir.join(path_str); let path = normalize_path(path); Url::from_file_path(&path) .map_err(|()| ModuleResolutionError::InvalidPath(path)) -- cgit v1.2.3