diff --git a/lib/workers/repository/process/fetch.ts b/lib/workers/repository/process/fetch.ts index 918d5cb9df80718507b597a072f9660c0e2614ac..1d43ed4d52748d7eac19e5d4ca54d896ec0d9ea8 100644 --- a/lib/workers/repository/process/fetch.ts +++ b/lib/workers/repository/process/fetch.ts @@ -16,15 +16,16 @@ import { PackageUpdateResult, } from '../../../manager/common'; import { SkipReason } from '../../../types'; +import { clone } from '../../../util/clone'; async function fetchDepUpdates( packageFileConfig: ManagerConfig & PackageFile, - dep: PackageDependency -): Promise<void> { - /* eslint-disable no-param-reassign */ + indep: PackageDependency +): Promise<PackageDependency> { + const dep = clone(indep); dep.updates = []; if (dep.skipReason) { - return; + return dep; } const { manager, packageFile } = packageFileConfig; const { depName, currentValue } = dep; @@ -76,7 +77,7 @@ async function fetchDepUpdates( updates: dep.updates, }); } - /* eslint-enable no-param-reassign */ + return dep; } async function fetchManagerPackagerFileUpdates( @@ -87,14 +88,15 @@ async function fetchManagerPackagerFileUpdates( const { packageFile } = pFile; const packageFileConfig = mergeChildConfig(managerConfig, pFile); const { manager } = packageFileConfig; - const queue = pFile.deps.map((dep) => (): Promise<void> => + const queue = pFile.deps.map((dep) => (): Promise<PackageDependency> => fetchDepUpdates(packageFileConfig, dep) ); logger.trace( { manager, packageFile, queueLength: queue.length }, 'fetchManagerPackagerFileUpdates starting with concurrency' ); - await pAll(queue, { concurrency: 5 }); + // eslint-disable-next-line no-param-reassign + pFile.deps = await pAll(queue, { concurrency: 5 }); logger.trace({ packageFile }, 'fetchManagerPackagerFileUpdates finished'); }