From da8f1ef2853fbdd1cb9ab15fc4993ee1cc96b021 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sun, 19 Apr 2020 09:15:47 +0200
Subject: [PATCH] fix: extractAllPackageFiles add depIndex

---
 .../__snapshots__/manager-files.spec.ts.snap  | 25 +++++++++++++------
 .../repository/extract/manager-files.spec.ts  |  4 ++-
 .../repository/extract/manager-files.ts       | 14 ++++++++++-
 3 files changed, 33 insertions(+), 10 deletions(-)

diff --git a/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap b/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap
index e24cafd5b5..8d00958e6f 100644
--- a/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap
+++ b/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap
@@ -3,25 +3,34 @@
 exports[`workers/repository/extract/manager-files getManagerPackageFiles() returns files with extractAllPackageFiles 1`] = `
 Array [
   Object {
-    "deps": Array [],
+    "deps": Array [
+      Object {
+        "currentValue": "2.0.0",
+        "datasource": "npm",
+        "depIndex": 0,
+        "depName": "chalk",
+        "depType": "dependencies",
+        "prettyDepType": "dependency",
+      },
+    ],
     "ignoreNpmrcFile": undefined,
-    "lernaClient": "yarn",
-    "lernaDir": ".",
+    "lernaClient": undefined,
+    "lernaDir": undefined,
     "lernaPackages": undefined,
     "managerPackageFileList": Array [
       "package.json",
     ],
-    "npmLock": "package-lock.json",
-    "npmrc": "{}",
+    "npmLock": undefined,
+    "npmrc": undefined,
     "packageFile": "package.json",
     "packageJsonName": undefined,
     "packageJsonType": "app",
     "packageJsonVersion": undefined,
-    "pnpmShrinkwrap": "pnpm-lock.yaml",
+    "pnpmShrinkwrap": undefined,
     "skipInstalls": undefined,
-    "yarnLock": "yarn.lock",
+    "yarnLock": undefined,
     "yarnWorkspacesPackages": undefined,
-    "yarnrc": "{}",
+    "yarnrc": undefined,
   },
 ]
 `;
diff --git a/lib/workers/repository/extract/manager-files.spec.ts b/lib/workers/repository/extract/manager-files.spec.ts
index ee3420fe2d..39559c944e 100644
--- a/lib/workers/repository/extract/manager-files.spec.ts
+++ b/lib/workers/repository/extract/manager-files.spec.ts
@@ -47,7 +47,9 @@ describe('workers/repository/extract/manager-files', () => {
     it('returns files with extractAllPackageFiles', async () => {
       const managerConfig = { manager: 'npm', enabled: true };
       fileMatch.getMatchingFiles.mockReturnValue(['package.json']);
-      platform.getFile.mockResolvedValue('{}');
+      platform.getFile.mockResolvedValueOnce(
+        '{"dependencies":{"chalk":"2.0.0"}}'
+      );
       const res = await getManagerPackageFiles(managerConfig);
       expect(res).toMatchSnapshot();
     });
diff --git a/lib/workers/repository/extract/manager-files.ts b/lib/workers/repository/extract/manager-files.ts
index c9544472f3..e9a7c0c1c6 100644
--- a/lib/workers/repository/extract/manager-files.ts
+++ b/lib/workers/repository/extract/manager-files.ts
@@ -36,7 +36,19 @@ export async function getManagerPackageFiles(config): Promise<PackageFile[]> {
   }
   // Extract package files synchronously if manager requires it
   if (get(manager, 'extractAllPackageFiles')) {
-    return extractAllPackageFiles(manager, config, matchedFiles);
+    const allPackageFiles = await extractAllPackageFiles(
+      manager,
+      config,
+      matchedFiles
+    );
+    if (allPackageFiles) {
+      for (const packageFile of allPackageFiles) {
+        for (let index = 0; index < packageFile.deps.length; index += 1) {
+          packageFile.deps[index].depIndex = index;
+        }
+      }
+    }
+    return allPackageFiles;
   }
   const packageFiles = [];
   for (const packageFile of matchedFiles) {
-- 
GitLab