From 866cedd3d36d71bc7e18e700901f37037fb0215c Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Mon, 13 Apr 2020 10:29:48 +0200
Subject: [PATCH] refactor: fetchDepUpdates no-param-reassign (#5957)

---
 lib/workers/repository/process/fetch.ts | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/lib/workers/repository/process/fetch.ts b/lib/workers/repository/process/fetch.ts
index 918d5cb9df..1d43ed4d52 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');
 }
 
-- 
GitLab