From d1c8917a26df8df0ea9ab2ec3fa083aa3373c197 Mon Sep 17 00:00:00 2001
From: Sergei Zharinov <zharinov@users.noreply.github.com>
Date: Fri, 9 Apr 2021 19:05:05 +0400
Subject: [PATCH] refactor(workers): Extract common file matching configuration
 logic (#9471)

---
 lib/workers/repository/extract/index.ts | 26 +++++++++++--------------
 1 file changed, 11 insertions(+), 15 deletions(-)

diff --git a/lib/workers/repository/extract/index.ts b/lib/workers/repository/extract/index.ts
index 9cd27d4224..69de5551a8 100644
--- a/lib/workers/repository/extract/index.ts
+++ b/lib/workers/repository/extract/index.ts
@@ -23,30 +23,26 @@ export async function extractAllDependencies(
   }
   const extractList: RenovateConfig[] = [];
   const fileList = await getFileList();
+
+  const tryConfig = (extractConfig: RenovateConfig): void => {
+    const matchingFileList = getMatchingFiles(extractConfig, fileList);
+    if (matchingFileList.length) {
+      extractList.push({ ...extractConfig, fileList: matchingFileList });
+    }
+  };
+
   for (const manager of managerList) {
     const managerConfig = getManagerConfig(config, manager);
     managerConfig.manager = manager;
     if (manager === 'regex') {
       for (const regexManager of config.regexManagers) {
-        const regexManagerConfig = mergeChildConfig(
-          managerConfig,
-          regexManager
-        );
-        regexManagerConfig.fileList = getMatchingFiles(
-          regexManagerConfig,
-          fileList
-        );
-        if (regexManagerConfig.fileList.length) {
-          extractList.push(regexManagerConfig);
-        }
+        tryConfig(mergeChildConfig(managerConfig, regexManager));
       }
     } else {
-      managerConfig.fileList = getMatchingFiles(managerConfig, fileList);
-      if (managerConfig.fileList.length) {
-        extractList.push(managerConfig);
-      }
+      tryConfig(managerConfig);
     }
   }
+
   const extractResults = await Promise.all(
     extractList.map(async (managerConfig) => {
       const packageFiles = await getManagerPackageFiles(managerConfig);
-- 
GitLab