diff options
Diffstat (limited to 'cli')
| -rw-r--r-- | cli/Cargo.toml | 3 | ||||
| -rw-r--r-- | cli/args/deno_json.rs | 56 | ||||
| -rw-r--r-- | cli/args/mod.rs | 5 | ||||
| -rw-r--r-- | cli/args/package_json.rs | 2 | ||||
| -rw-r--r-- | cli/factory.rs | 2 | ||||
| -rw-r--r-- | cli/lsp/config.rs | 10 | ||||
| -rw-r--r-- | cli/lsp/language_server.rs | 3 | ||||
| -rw-r--r-- | cli/npm/byonm.rs | 2 | ||||
| -rw-r--r-- | cli/resolver.rs | 2 | ||||
| -rw-r--r-- | cli/standalone/mod.rs | 4 | ||||
| -rw-r--r-- | cli/tools/registry/unfurl.rs | 2 |
11 files changed, 71 insertions, 20 deletions
diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 6c185560d..3fa5b54ed 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -65,7 +65,7 @@ winres.workspace = true [dependencies] deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "proposal", "react", "sourcemap", "transforms", "typescript", "view", "visit"] } deno_cache_dir = { workspace = true } -deno_config = { workspace = true, features = ["workspace"] } +deno_config = { version = "=0.26.1", features = ["workspace", "sync"] } deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] } deno_doc = { version = "=0.142.0", features = ["html", "syntect"] } deno_emit = "=0.43.1" @@ -73,6 +73,7 @@ deno_graph = { version = "=0.80.1", features = ["tokio_executor"] } deno_lint = { version = "=0.60.1", features = ["docs"] } deno_lockfile.workspace = true deno_npm = "=0.21.4" +deno_package_json.workspace = true deno_runtime = { workspace = true, features = ["include_js_files_for_snapshotting"] } deno_semver = "=0.5.7" deno_task_shell = "=0.17.0" diff --git a/cli/args/deno_json.rs b/cli/args/deno_json.rs index 2b3261a0b..cbc33aa0b 100644 --- a/cli/args/deno_json.rs +++ b/cli/args/deno_json.rs @@ -7,6 +7,62 @@ use deno_semver::jsr::JsrDepPackageReq; use deno_semver::jsr::JsrPackageReqReference; use deno_semver::npm::NpmPackageReqReference; +#[cfg(test)] // happens to only be used by the tests at the moment +pub struct DenoConfigFsAdapter<'a>( + pub &'a dyn deno_runtime::deno_fs::FileSystem, +); + +#[cfg(test)] +impl<'a> deno_config::fs::DenoConfigFs for DenoConfigFsAdapter<'a> { + fn read_to_string_lossy( + &self, + path: &std::path::Path, + ) -> Result<String, std::io::Error> { + self + .0 + .read_text_file_lossy_sync(path, None) + .map_err(|err| err.into_io_error()) + } + + fn stat_sync( + &self, + path: &std::path::Path, + ) -> Result<deno_config::fs::FsMetadata, std::io::Error> { + self + .0 + .stat_sync(path) + .map(|stat| deno_config::fs::FsMetadata { + is_file: stat.is_file, + is_directory: stat.is_directory, + is_symlink: stat.is_symlink, + }) + .map_err(|err| err.into_io_error()) + } + + fn read_dir( + &self, + path: &std::path::Path, + ) -> Result<Vec<deno_config::fs::FsDirEntry>, std::io::Error> { + self + .0 + .read_dir_sync(path) + .map_err(|err| err.into_io_error()) + .map(|entries| { + entries + .into_iter() + .map(|e| deno_config::fs::FsDirEntry { + path: path.join(e.name), + metadata: deno_config::fs::FsMetadata { + is_file: e.is_file, + is_directory: e.is_directory, + is_symlink: e.is_symlink, + }, + }) + .collect() + }) + } +} + pub fn deno_json_deps( config: &deno_config::deno_json::ConfigFile, ) -> HashSet<JsrDepPackageReq> { diff --git a/cli/args/mod.rs b/cli/args/mod.rs index c2ea3be4d..ba2e06e06 100644 --- a/cli/args/mod.rs +++ b/cli/args/mod.rs @@ -25,8 +25,6 @@ use deno_npm::npm_rc::NpmRc; use deno_npm::npm_rc::ResolvedNpmRc; use deno_npm::resolution::ValidSerializedNpmResolutionSnapshot; use deno_npm::NpmSystemInfo; -use deno_runtime::deno_fs::DenoConfigFsAdapter; -use deno_runtime::deno_fs::RealFs; use deno_runtime::deno_permissions::PermissionsContainer; use deno_runtime::deno_tls::RootCertStoreProvider; use deno_semver::npm::NpmPackageReqReference; @@ -835,7 +833,6 @@ impl CliOptions { pub fn from_flags(flags: Flags) -> Result<Self, AnyError> { let initial_cwd = std::env::current_dir().with_context(|| "Failed getting cwd.")?; - let config_fs_adapter = DenoConfigFsAdapter::new(&RealFs); let maybe_vendor_override = flags.vendor.map(|v| match v { true => VendorEnablement::Enable { cwd: &initial_cwd }, false => VendorEnablement::Disable, @@ -860,7 +857,7 @@ impl CliOptions { log::debug!("package.json auto-discovery is disabled"); } WorkspaceDiscoverOptions { - fs: &config_fs_adapter, + fs: Default::default(), // use real fs deno_json_cache: None, pkg_json_cache: Some( &deno_runtime::deno_node::PackageJsonThreadLocalCache, diff --git a/cli/args/package_json.rs b/cli/args/package_json.rs index 170f8b677..eedd0a194 100644 --- a/cli/args/package_json.rs +++ b/cli/args/package_json.rs @@ -3,8 +3,8 @@ use std::path::PathBuf; use std::sync::Arc; -use deno_config::package_json::PackageJsonDepValue; use deno_config::workspace::Workspace; +use deno_package_json::PackageJsonDepValue; use deno_semver::package::PackageReq; #[derive(Debug)] diff --git a/cli/factory.rs b/cli/factory.rs index 15c36cfd2..18757cda6 100644 --- a/cli/factory.rs +++ b/cli/factory.rs @@ -55,12 +55,12 @@ use std::collections::BTreeSet; use std::path::PathBuf; use deno_config::deno_json::ConfigFile; -use deno_config::package_json::PackageJsonDepValue; use deno_config::workspace::PackageJsonDepResolution; use deno_config::workspace::WorkspaceResolver; use deno_core::error::AnyError; use deno_core::futures::FutureExt; use deno_core::FeatureChecker; +use deno_package_json::PackageJsonDepValue; use deno_lockfile::WorkspaceMemberConfig; use deno_runtime::deno_fs; diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs index 2757500d1..ec5430e8a 100644 --- a/cli/lsp/config.rs +++ b/cli/lsp/config.rs @@ -11,7 +11,6 @@ use deno_config::fs::DenoConfigFs; use deno_config::fs::RealDenoConfigFs; use deno_config::glob::FilePatterns; use deno_config::glob::PathOrPatternSet; -use deno_config::package_json::PackageJsonCache; use deno_config::workspace::CreateResolverOptions; use deno_config::workspace::PackageJsonDepResolution; use deno_config::workspace::SpecifiedImportMap; @@ -34,6 +33,7 @@ use deno_core::serde_json::Value; use deno_core::ModuleSpecifier; use deno_lint::linter::LintConfig as DenoLintConfig; use deno_npm::npm_rc::ResolvedNpmRc; +use deno_package_json::PackageJsonCache; use deno_runtime::deno_node::PackageJson; use deno_runtime::deno_permissions::PermissionsContainer; use deno_runtime::fs_util::specifier_to_file_path; @@ -1560,9 +1560,7 @@ impl ConfigData { self.member_dir.maybe_deno_json() } - pub fn maybe_pkg_json( - &self, - ) -> Option<&Arc<deno_config::package_json::PackageJson>> { + pub fn maybe_pkg_json(&self) -> Option<&Arc<deno_package_json::PackageJson>> { self.member_dir.maybe_pkg_json() } } @@ -1793,7 +1791,7 @@ impl ConfigTree { &config_path, ), &deno_config::workspace::WorkspaceDiscoverOptions { - fs: &deno_runtime::deno_fs::DenoConfigFsAdapter::new(&test_fs), + fs: &crate::args::deno_json::DenoConfigFsAdapter(&test_fs), ..Default::default() }, ) @@ -1888,7 +1886,7 @@ impl deno_config::deno_json::DenoJsonCache for DenoJsonMemCache { #[derive(Default)] struct PackageJsonMemCache(Mutex<HashMap<PathBuf, Arc<PackageJson>>>); -impl deno_config::package_json::PackageJsonCache for PackageJsonMemCache { +impl deno_package_json::PackageJsonCache for PackageJsonMemCache { fn get(&self, path: &Path) -> Option<Arc<PackageJson>> { self.0.lock().get(path).cloned() } diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 9680c63f9..0e65d8b25 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -15,7 +15,6 @@ use deno_core::url; use deno_core::ModuleSpecifier; use deno_graph::GraphKind; use deno_graph::Resolution; -use deno_runtime::deno_fs::DenoConfigFsAdapter; use deno_runtime::deno_tls::rustls::RootCertStore; use deno_runtime::deno_tls::RootCertStoreProvider; use deno_semver::jsr::JsrPackageReqReference; @@ -3539,7 +3538,7 @@ impl Inner { initial_cwd.clone() ]), &WorkspaceDiscoverOptions { - fs: &DenoConfigFsAdapter::new(&deno_runtime::deno_fs::RealFs), + fs: Default::default(), // use real fs, deno_json_cache: None, pkg_json_cache: None, workspace_cache: None, diff --git a/cli/npm/byonm.rs b/cli/npm/byonm.rs index 6f45648a8..f776b79c1 100644 --- a/cli/npm/byonm.rs +++ b/cli/npm/byonm.rs @@ -6,10 +6,10 @@ use std::path::PathBuf; use std::sync::Arc; use deno_ast::ModuleSpecifier; -use deno_config::package_json::PackageJsonDepValue; use deno_core::anyhow::bail; use deno_core::error::AnyError; use deno_core::serde_json; +use deno_package_json::PackageJsonDepValue; use deno_runtime::deno_fs::FileSystem; use deno_runtime::deno_node::errors::PackageFolderResolveError; use deno_runtime::deno_node::errors::PackageFolderResolveErrorKind; diff --git a/cli/resolver.rs b/cli/resolver.rs index 7c47795c4..c332878a2 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -4,7 +4,6 @@ use async_trait::async_trait; use dashmap::DashMap; use dashmap::DashSet; use deno_ast::MediaType; -use deno_config::package_json::PackageJsonDepValue; use deno_config::workspace::MappedResolution; use deno_config::workspace::MappedResolutionError; use deno_config::workspace::WorkspaceResolver; @@ -21,6 +20,7 @@ use deno_graph::source::DEFAULT_JSX_IMPORT_SOURCE_MODULE; use deno_graph::NpmLoadError; use deno_graph::NpmResolvePkgReqsResult; use deno_npm::resolution::NpmResolutionError; +use deno_package_json::PackageJsonDepValue; use deno_runtime::deno_fs; use deno_runtime::deno_fs::FileSystem; use deno_runtime::deno_node::errors::ClosestPkgJsonError; diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index e0c8e66ff..14a857214 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -34,7 +34,6 @@ use crate::worker::CliMainWorkerOptions; use crate::worker::ModuleLoaderAndSourceMapGetter; use crate::worker::ModuleLoaderFactory; use deno_ast::MediaType; -use deno_config::package_json::PackageJsonDepValue; use deno_config::workspace::MappedResolution; use deno_config::workspace::MappedResolutionError; use deno_config::workspace::WorkspaceResolver; @@ -52,6 +51,7 @@ use deno_core::ModuleType; use deno_core::RequestedModuleType; use deno_core::ResolutionKind; use deno_npm::npm_rc::ResolvedNpmRc; +use deno_package_json::PackageJsonDepValue; use deno_runtime::deno_fs; use deno_runtime::deno_node::analyze::NodeCodeTranslator; use deno_runtime::deno_node::NodeResolutionMode; @@ -591,7 +591,7 @@ pub async fn run( .to_file_path() .unwrap(); let pkg_json = - deno_config::package_json::PackageJson::load_from_value(path, json); + deno_package_json::PackageJson::load_from_value(path, json); Arc::new(pkg_json) }) .collect(); diff --git a/cli/tools/registry/unfurl.rs b/cli/tools/registry/unfurl.rs index 63c773f01..f7c1049ca 100644 --- a/cli/tools/registry/unfurl.rs +++ b/cli/tools/registry/unfurl.rs @@ -3,7 +3,6 @@ use deno_ast::ParsedSource; use deno_ast::SourceRange; use deno_ast::SourceTextInfo; -use deno_config::package_json::PackageJsonDepValue; use deno_config::workspace::MappedResolution; use deno_config::workspace::PackageJsonDepResolution; use deno_config::workspace::WorkspaceResolver; @@ -12,6 +11,7 @@ use deno_graph::DependencyDescriptor; use deno_graph::DynamicTemplatePart; use deno_graph::ParserModuleAnalyzer; use deno_graph::TypeScriptReference; +use deno_package_json::PackageJsonDepValue; use deno_runtime::deno_node::is_builtin_node_module; use crate::resolver::SloppyImportsResolver; |
