Skip to content

Commit

Permalink
refactor: resolve dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
zkochan committed Aug 26, 2022
1 parent 1efb987 commit 3d761b0
Showing 1 changed file with 7 additions and 11 deletions.
18 changes: 7 additions & 11 deletions packages/resolve-dependencies/src/resolveDependencies.ts
Expand Up @@ -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'
Expand Down Expand Up @@ -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<PkgAddress | LinkedDependency> = 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
}
Expand All @@ -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 {
Expand Down

0 comments on commit 3d761b0

Please sign in to comment.