From 2b8c1d26e74e4e8a3b3994c94644720583d20556 Mon Sep 17 00:00:00 2001 From: Ramon Brullo Date: Sat, 13 Jan 2024 11:02:33 +0100 Subject: [PATCH] refactor: extract parameter Make `fetchPackageDependencies` function take the npm-client as a parameter. That way it will not be recreated for each call. --- src/cmd-add.ts | 3 ++- src/cmd-deps.ts | 7 +++++-- src/registry-client.ts | 5 +++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/cmd-add.ts b/src/cmd-add.ts index 4d77acfd..e8905c96 100644 --- a/src/cmd-add.ts +++ b/src/cmd-add.ts @@ -156,7 +156,8 @@ export const add = async function ( env.upstreamRegistry, name, version, - true + true, + client ); // add depsValid to pkgsInScope. depsValid diff --git a/src/cmd-deps.ts b/src/cmd-deps.ts index 7945ad5d..0d24c653 100644 --- a/src/cmd-deps.ts +++ b/src/cmd-deps.ts @@ -1,6 +1,6 @@ import log from "./logger"; import { parseEnv } from "./utils/env"; -import { fetchPackageDependencies } from "./registry-client"; +import { fetchPackageDependencies, getNpmClient } from "./registry-client"; import { isPackageUrl } from "./types/package-url"; import { packageReference, @@ -26,6 +26,8 @@ export const deps = async function ( const env = await parseEnv(options, false); if (env === null) return 1; + const client = getNpmClient(); + const [name, version] = splitPackageReference(pkg); if (version !== undefined && isPackageUrl(version)) @@ -36,7 +38,8 @@ export const deps = async function ( env.upstreamRegistry, name, version, - options.deep || false + options.deep || false, + client ); depsValid .filter((x) => !x.self) diff --git a/src/registry-client.ts b/src/registry-client.ts index 436948da..3746fd34 100644 --- a/src/registry-client.ts +++ b/src/registry-client.ts @@ -139,19 +139,20 @@ export const fetchPackument = async function ( * @param name The name of the package * @param version The version for which to search dependencies * @param deep Whether to search for all dependencies + * @param client The client to use for communicating with the registries */ export const fetchPackageDependencies = async function ( registry: Registry, upstreamRegistry: Registry, name: DomainName, version: SemanticVersion | "latest" | undefined, - deep: boolean + deep: boolean, + client: NpmClient ): Promise<[Dependency[], Dependency[]]> { log.verbose( "dependency", `fetch: ${packageReference(name, version)} deep=${deep}` ); - const client = getNpmClient(); // a list of pending dependency {name, version} const pendingList: NameVersionPair[] = [{ name, version }]; // a list of processed dependency {name, version}