From a1ba00d5cf28218e51089b1d4c747a1036c91639 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sun, 19 Apr 2020 08:02:30 +0200
Subject: [PATCH] refactor: extractAllPackageFiles insert depIndex

---
 lib/manager/index.spec.ts                     | 12 +++++++-----
 lib/manager/index.ts                          | 19 ++++++++++++++-----
 .../__snapshots__/manager-files.spec.ts.snap  |  3 +++
 3 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/lib/manager/index.spec.ts b/lib/manager/index.spec.ts
index f8cbb1229d..9274aa27c7 100644
--- a/lib/manager/index.spec.ts
+++ b/lib/manager/index.spec.ts
@@ -41,22 +41,24 @@ describe('manager', () => {
   });
 
   describe('extractAllPackageFiles()', () => {
-    it('returns null', () => {
+    it('returns null', async () => {
       manager.getManagers().set('dummy', {
         defaultConfig: {},
       });
       expect(
-        manager.extractAllPackageFiles('unknown', {} as any, [])
+        await manager.extractAllPackageFiles('unknown', {} as any, [])
+      ).toBeNull();
+      expect(
+        await manager.extractAllPackageFiles('dummy', {} as any, [])
       ).toBeNull();
-      expect(manager.extractAllPackageFiles('dummy', {} as any, [])).toBeNull();
     });
-    it('returns non-null', () => {
+    it('returns non-null', async () => {
       manager.getManagers().set('dummy', {
         defaultConfig: {},
         extractAllPackageFiles: () => Promise.resolve([]),
       });
       expect(
-        manager.extractAllPackageFiles('dummy', {} as any, [])
+        await manager.extractAllPackageFiles('dummy', {} as any, [])
       ).not.toBeNull();
     });
     afterEach(() => {
diff --git a/lib/manager/index.ts b/lib/manager/index.ts
index 13417a453d..072966ed9d 100644
--- a/lib/manager/index.ts
+++ b/lib/manager/index.ts
@@ -49,18 +49,27 @@ export const getLanguageList = (): string[] => languageList;
 export const getManagerList = (): string[] => managerList;
 export const getManagers = (): Map<string, ManagerApi> => managers;
 
-export function extractAllPackageFiles(
+export async function extractAllPackageFiles(
   manager: string,
   config: ExtractConfig,
   files: string[]
-): Result<PackageFile[] | null> {
+): Promise<PackageFile[] | null> {
   if (!managers.has(manager)) {
     return null;
   }
   const m = managers.get(manager);
-  return m.extractAllPackageFiles
-    ? m.extractAllPackageFiles(config, files)
-    : null;
+  if (m.extractAllPackageFiles) {
+    const res = await m.extractAllPackageFiles(config, files);
+    // istanbul ignore if
+    if (!res) {
+      return null;
+    }
+    return res.map((packageFile) => ({
+      ...packageFile,
+      managerPackageFileList: files,
+    }));
+  }
+  return null;
 }
 
 export function getPackageUpdates(
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 50b14424a3..e24cafd5b5 100644
--- a/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap
+++ b/lib/workers/repository/extract/__snapshots__/manager-files.spec.ts.snap
@@ -8,6 +8,9 @@ Array [
     "lernaClient": "yarn",
     "lernaDir": ".",
     "lernaPackages": undefined,
+    "managerPackageFileList": Array [
+      "package.json",
+    ],
     "npmLock": "package-lock.json",
     "npmrc": "{}",
     "packageFile": "package.json",
-- 
GitLab