summaryrefslogtreecommitdiff
path: root/cli/npm/managed/mod.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-06-06 18:37:41 -0400
committerGitHub <noreply@github.com>2024-06-06 22:37:41 +0000
commit7a17eba5a748b2362bec48de4edd9f1c214df1f1 (patch)
tree39b48d22126a8ac658bedee87fd448458be5fb80 /cli/npm/managed/mod.rs
parent47d19461a59cc7997f24987d8564e757683b8a5e (diff)
refactor: `NpmRegistryApi` - `#[async_trait(?Send)]` (#24126)
Diffstat (limited to 'cli/npm/managed/mod.rs')
-rw-r--r--cli/npm/managed/mod.rs45
1 files changed, 25 insertions, 20 deletions
diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs
index f139a6f4b..6a2dfdd67 100644
--- a/cli/npm/managed/mod.rs
+++ b/cli/npm/managed/mod.rs
@@ -83,26 +83,31 @@ pub async fn create_managed_npm_resolver_for_lsp(
) -> Arc<dyn CliNpmResolver> {
let npm_cache = create_cache(&options);
let npm_api = create_api(&options, npm_cache.clone());
- let snapshot = match resolve_snapshot(&npm_api, options.snapshot).await {
- Ok(snapshot) => snapshot,
- Err(err) => {
- log::warn!("failed to resolve snapshot: {}", err);
- None
- }
- };
- create_inner(
- options.fs,
- options.http_client_provider,
- options.maybe_lockfile,
- npm_api,
- npm_cache,
- options.npmrc,
- options.package_json_installer,
- options.text_only_progress_bar,
- options.maybe_node_modules_path,
- options.npm_system_info,
- snapshot,
- )
+ // spawn due to the lsp's `Send` requirement
+ deno_core::unsync::spawn(async move {
+ let snapshot = match resolve_snapshot(&npm_api, options.snapshot).await {
+ Ok(snapshot) => snapshot,
+ Err(err) => {
+ log::warn!("failed to resolve snapshot: {}", err);
+ None
+ }
+ };
+ create_inner(
+ options.fs,
+ options.http_client_provider,
+ options.maybe_lockfile,
+ npm_api,
+ npm_cache,
+ options.npmrc,
+ options.package_json_installer,
+ options.text_only_progress_bar,
+ options.maybe_node_modules_path,
+ options.npm_system_info,
+ snapshot,
+ )
+ })
+ .await
+ .unwrap()
}
pub async fn create_managed_npm_resolver(