From 33e865c99d09552d08bfb611a189cfedd94e9bf0 Mon Sep 17 00:00:00 2001
From: Sergei Zharinov <zharinov@users.noreply.github.com>
Date: Thu, 17 Jun 2021 19:10:56 +0400
Subject: [PATCH] refactor: Match all project sections to its dep type (#10477)

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
---
 lib/manager/leiningen/extract.ts | 43 +++++++++++---------------------
 1 file changed, 14 insertions(+), 29 deletions(-)

diff --git a/lib/manager/leiningen/extract.ts b/lib/manager/leiningen/extract.ts
index d34b8e7deb..71a4489823 100644
--- a/lib/manager/leiningen/extract.ts
+++ b/lib/manager/leiningen/extract.ts
@@ -22,7 +22,6 @@ export function expandDepName(name: string): string {
 
 export function extractFromVectors(
   str: string,
-  offset = 0,
   ctx: ExtractContext = {}
 ): PackageDependency[] {
   if (!str.startsWith('[')) {
@@ -34,7 +33,6 @@ export function extractFromVectors(
   let vecPos = 0;
   let artifactId = '';
   let version = '';
-  let fileReplacePosition: number = null;
 
   const isSpace = (ch: string): boolean => ch && /[\s,]/.test(ch);
 
@@ -42,7 +40,7 @@ export function extractFromVectors(
     s.replace(/^"/, '').replace(/"$/, '');
 
   const yieldDep = (): void => {
-    if (artifactId && version && fileReplacePosition) {
+    if (artifactId && version) {
       result.push({
         ...ctx,
         datasource: ClojureDatasource.id,
@@ -77,9 +75,6 @@ export function extractFromVectors(
       } else if (vecPos === 0) {
         artifactId += char;
       } else if (vecPos === 1) {
-        if (isSpace(prevChar)) {
-          fileReplacePosition = offset + idx + 1;
-        }
         version += char;
       }
     }
@@ -122,12 +117,18 @@ function extractLeinRepos(content: string): string[] {
 }
 
 export function extractPackageFile(content: string): PackageFile {
-  const collect = (key: string, ctx: ExtractContext): PackageDependency[] => {
+  const collect = (
+    key: string,
+    registryUrls: string[]
+  ): PackageDependency[] => {
+    const ctx = {
+      depType: key,
+      registryUrls,
+    };
     let result: PackageDependency[] = [];
     let restContent = trimAtKey(content, key);
     while (restContent) {
-      const offset = content.length - restContent.length;
-      result = [...result, ...extractFromVectors(restContent, offset, ctx)];
+      result = [...result, ...extractFromVectors(restContent, ctx)];
       restContent = trimAtKey(restContent, key);
     }
     return result;
@@ -136,26 +137,10 @@ export function extractPackageFile(content: string): PackageFile {
   const registryUrls = extractLeinRepos(content);
 
   const deps: PackageDependency[] = [
-    ...collect('dependencies', {
-      depType: 'dependencies',
-      registryUrls,
-    }),
-    ...collect('managed-dependencies', {
-      depType: 'managed-dependencies',
-      registryUrls,
-    }),
-    ...collect('dev-dependencies', {
-      depType: 'managed-dependencies',
-      registryUrls,
-    }),
-    ...collect('plugins', {
-      depType: 'plugins',
-      registryUrls,
-    }),
-    ...collect('pom-plugins', {
-      depType: 'pom-plugins',
-      registryUrls,
-    }),
+    ...collect('dependencies', registryUrls),
+    ...collect('managed-dependencies', registryUrls),
+    ...collect('plugins', registryUrls),
+    ...collect('pom-plugins', registryUrls),
   ];
 
   return { deps };
-- 
GitLab