mirror of
https://github.com/denoland/deno.git
synced 2025-08-03 18:38:33 +00:00
refactor(npm): use deno_npm and deno_semver (#18602)
This commit is contained in:
parent
1586c52b5b
commit
d07aa4a072
36 changed files with 759 additions and 5852 deletions
|
@ -27,12 +27,12 @@ use deno_core::serde::Deserialize;
|
|||
use deno_core::serde_json;
|
||||
use deno_core::serde_json::json;
|
||||
use deno_core::ModuleSpecifier;
|
||||
use deno_graph::npm::NpmPackageReqReference;
|
||||
use deno_graph::Resolution;
|
||||
use deno_graph::ResolutionError;
|
||||
use deno_graph::SpecifierError;
|
||||
use deno_lint::rules::LintRule;
|
||||
use deno_runtime::tokio_util::create_basic_runtime;
|
||||
use deno_semver::npm::NpmPackageReqReference;
|
||||
use log::error;
|
||||
use std::collections::HashMap;
|
||||
use std::sync::Arc;
|
||||
|
|
|
@ -21,7 +21,7 @@ use crate::node;
|
|||
use crate::node::node_resolve_npm_reference;
|
||||
use crate::node::NodeResolution;
|
||||
use crate::npm::NpmPackageResolver;
|
||||
use crate::npm::NpmRegistryApi;
|
||||
use crate::npm::NpmRegistry;
|
||||
use crate::npm::NpmResolution;
|
||||
use crate::npm::PackageJsonDepsInstaller;
|
||||
use crate::resolver::CliGraphResolver;
|
||||
|
@ -37,16 +37,17 @@ use deno_core::futures::future;
|
|||
use deno_core::parking_lot::Mutex;
|
||||
use deno_core::url;
|
||||
use deno_core::ModuleSpecifier;
|
||||
use deno_graph::npm::NpmPackageReq;
|
||||
use deno_graph::npm::NpmPackageReqReference;
|
||||
use deno_graph::GraphImport;
|
||||
use deno_graph::Resolution;
|
||||
use deno_runtime::deno_node::NodeResolutionMode;
|
||||
use deno_runtime::deno_node::PackageJson;
|
||||
use deno_runtime::permissions::PermissionsContainer;
|
||||
use deno_semver::npm::NpmPackageReq;
|
||||
use deno_semver::npm::NpmPackageReqReference;
|
||||
use indexmap::IndexMap;
|
||||
use lsp::Url;
|
||||
use once_cell::sync::Lazy;
|
||||
use std::collections::BTreeMap;
|
||||
use std::collections::HashMap;
|
||||
use std::collections::HashSet;
|
||||
use std::collections::VecDeque;
|
||||
|
@ -1165,7 +1166,7 @@ impl Documents {
|
|||
maybe_import_map: Option<Arc<import_map::ImportMap>>,
|
||||
maybe_config_file: Option<&ConfigFile>,
|
||||
maybe_package_json: Option<&PackageJson>,
|
||||
npm_registry_api: NpmRegistryApi,
|
||||
npm_registry_api: NpmRegistry,
|
||||
npm_resolution: NpmResolution,
|
||||
) {
|
||||
fn calculate_resolver_config_hash(
|
||||
|
@ -1186,7 +1187,23 @@ impl Documents {
|
|||
hasher.write_str(import_map.base_url().as_str());
|
||||
}
|
||||
hasher.write_hashable(&maybe_jsx_config);
|
||||
hasher.write_hashable(&maybe_package_json_deps);
|
||||
if let Some(package_json_deps) = &maybe_package_json_deps {
|
||||
// We need to ensure the hashing is deterministic so explicitly type
|
||||
// this in order to catch if the type of package_json_deps ever changes
|
||||
// from a sorted/deterministic BTreeMap to something else.
|
||||
let package_json_deps: &BTreeMap<_, _> = *package_json_deps;
|
||||
for (key, value) in package_json_deps {
|
||||
hasher.write_hashable(key);
|
||||
match value {
|
||||
Ok(value) => {
|
||||
hasher.write_hashable(value);
|
||||
}
|
||||
Err(err) => {
|
||||
hasher.write_str(&err.to_string());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
hasher.finish()
|
||||
}
|
||||
|
||||
|
@ -1847,7 +1864,7 @@ console.log(b, "hello deno");
|
|||
|
||||
#[test]
|
||||
fn test_documents_refresh_dependencies_config_change() {
|
||||
let npm_registry_api = NpmRegistryApi::new_uninitialized();
|
||||
let npm_registry_api = NpmRegistry::new_uninitialized();
|
||||
let npm_resolution =
|
||||
NpmResolution::new(npm_registry_api.clone(), None, None);
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ use crate::lsp::urls::LspUrlKind;
|
|||
use crate::npm::create_npm_fs_resolver;
|
||||
use crate::npm::NpmCache;
|
||||
use crate::npm::NpmPackageResolver;
|
||||
use crate::npm::NpmRegistryApi;
|
||||
use crate::npm::NpmRegistry;
|
||||
use crate::npm::NpmResolution;
|
||||
use crate::proc_state::ProcState;
|
||||
use crate::tools::fmt::format_file;
|
||||
|
@ -145,7 +145,7 @@ pub struct Inner {
|
|||
/// A lazily create "server" for handling test run requests.
|
||||
maybe_testing_server: Option<testing::TestServer>,
|
||||
/// Npm's registry api.
|
||||
npm_api: NpmRegistryApi,
|
||||
npm_api: NpmRegistry,
|
||||
/// Npm cache
|
||||
npm_cache: NpmCache,
|
||||
/// Npm resolution that is stored in memory.
|
||||
|
@ -417,8 +417,8 @@ impl LanguageServer {
|
|||
fn create_lsp_structs(
|
||||
dir: &DenoDir,
|
||||
http_client: HttpClient,
|
||||
) -> (NpmRegistryApi, NpmCache, NpmPackageResolver, NpmResolution) {
|
||||
let registry_url = NpmRegistryApi::default_url();
|
||||
) -> (NpmRegistry, NpmCache, NpmPackageResolver, NpmResolution) {
|
||||
let registry_url = NpmRegistry::default_url();
|
||||
let progress_bar = ProgressBar::new(ProgressBarStyle::TextOnly);
|
||||
let npm_cache = NpmCache::from_deno_dir(
|
||||
dir,
|
||||
|
@ -430,7 +430,7 @@ fn create_lsp_structs(
|
|||
http_client.clone(),
|
||||
progress_bar.clone(),
|
||||
);
|
||||
let api = NpmRegistryApi::new(
|
||||
let api = NpmRegistry::new(
|
||||
registry_url.clone(),
|
||||
npm_cache.clone(),
|
||||
http_client,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue