diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-06-06 18:37:41 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-06 22:37:41 +0000 |
commit | 7a17eba5a748b2362bec48de4edd9f1c214df1f1 (patch) | |
tree | 39b48d22126a8ac658bedee87fd448458be5fb80 /cli/npm/managed/mod.rs | |
parent | 47d19461a59cc7997f24987d8564e757683b8a5e (diff) |
refactor: `NpmRegistryApi` - `#[async_trait(?Send)]` (#24126)
Diffstat (limited to 'cli/npm/managed/mod.rs')
-rw-r--r-- | cli/npm/managed/mod.rs | 45 |
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( |