From 3d761b02c60ea3954a66a387cc162b3713956a96 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Fri, 26 Aug 2022 15:22:14 +0300 Subject: [PATCH] refactor: resolve dependencies --- .../src/resolveDependencies.ts | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/resolve-dependencies/src/resolveDependencies.ts b/packages/resolve-dependencies/src/resolveDependencies.ts index 6c82fc0ccfd..3d670619f51 100644 --- a/packages/resolve-dependencies/src/resolveDependencies.ts +++ b/packages/resolve-dependencies/src/resolveDependencies.ts @@ -41,6 +41,7 @@ import { import * as dp from 'dependency-path' import exists from 'path-exists' import isEmpty from 'ramda/src/isEmpty' +import zipObj from 'ramda/src/zipObj' import zipWith from 'ramda/src/zipWith' import semver from 'semver' import encodePkgId from './encodePkgId' @@ -259,11 +260,10 @@ export async function resolveRootDependencies ( importersToResolve.push({ ctx, options, parentPkgAliases, preferredVersions, wantedDependencies }) } const result = await resolveDependenciesOfImporters(importersToResolve) - const results = await Promise.all(zipWith(async (importerResolutionResult, importerToResolve) => { - const pkgAddresses: Array = importerResolutionResult.pkgAddresses - const parentPkgAliases = importerToResolve.parentPkgAliases + const results = await Promise.all(zipWith(async (importerResolutionResult, { ctx, parentPkgAliases, preferredVersions, options }) => { + const pkgAddresses = importerResolutionResult.pkgAddresses + if (!ctx.autoInstallPeers) return pkgAddresses while (true) { - if (!importerToResolve.ctx.autoInstallPeers) break for (const pkgAddress of importerResolutionResult.pkgAddresses) { parentPkgAliases[pkgAddress.alias] = true } @@ -281,19 +281,15 @@ export async function resolveRootDependencies ( if (!Object.keys(importerResolutionResult.missingPeers).length) break const wantedDependencies = getNonDevWantedDependencies({ dependencies: importerResolutionResult.missingPeers }) - importerResolutionResult = await resolveDependencies(importerToResolve.ctx, importerToResolve.preferredVersions, wantedDependencies, { - ...importerToResolve.options, + importerResolutionResult = await resolveDependencies(ctx, preferredVersions, wantedDependencies, { + ...options, parentPkgAliases, }) pkgAddresses.push(...importerResolutionResult.pkgAddresses) } return pkgAddresses }, result, importersToResolve)) - const pkgAddressesByImporterId = {} - Object.keys(importers).forEach((importerId, index) => { - pkgAddressesByImporterId[importerId] = results[index] - }) - return pkgAddressesByImporterId + return zipObj(Object.keys(importers), results) } interface ResolvedDependenciesResult {