From cdd9b44ae87bcc805c55c946aef25bb729963ff1 Mon Sep 17 00:00:00 2001
From: Sergei Zharinov <zharinov@users.noreply.github.com>
Date: Sun, 6 Feb 2022 19:30:53 +0300
Subject: [PATCH] refactor: Use null-safe Boolean filtering (#14039)

* refactor: Use null-safe Boolean filtering

* Simplify and remove file
---
 lib/datasource/maven/index.ts |  7 +------
 lib/util/host-rules.ts        | 11 ++++-------
 lib/versioning/regex/index.ts | 21 ++++++++-------------
 3 files changed, 13 insertions(+), 26 deletions(-)

diff --git a/lib/datasource/maven/index.ts b/lib/datasource/maven/index.ts
index db854ecbd3..916a55566b 100644
--- a/lib/datasource/maven/index.ts
+++ b/lib/datasource/maven/index.ts
@@ -292,12 +292,7 @@ async function addReleasesUsingHeadRequests(
 }
 
 function getReleasesFromMap(releaseMap: ReleaseMap): Release[] {
-  const releases: Release[] = [];
-  for (const release of Object.values(releaseMap)) {
-    if (release) {
-      releases.push(release);
-    }
-  }
+  const releases = Object.values(releaseMap).filter(is.truthy);
   if (releases.length) {
     return releases;
   }
diff --git a/lib/util/host-rules.ts b/lib/util/host-rules.ts
index 2d7ea8df87..875de740ba 100644
--- a/lib/util/host-rules.ts
+++ b/lib/util/host-rules.ts
@@ -151,13 +151,10 @@ export function find(search: HostRuleSearch): HostRule {
 }
 
 export function hosts({ hostType }: { hostType: string }): string[] {
-  const result: string[] = [];
-  for (const rule of hostRules) {
-    if (rule.hostType === hostType && rule.resolvedHost) {
-      result.push(rule.resolvedHost);
-    }
-  }
-  return result;
+  return hostRules
+    .filter((rule) => rule.hostType === hostType)
+    .map((rule) => rule.resolvedHost)
+    .filter(is.truthy);
 }
 
 export function findAll({ hostType }: { hostType: string }): HostRule[] {
diff --git a/lib/versioning/regex/index.ts b/lib/versioning/regex/index.ts
index eba5c900ed..67ea4729f6 100644
--- a/lib/versioning/regex/index.ts
+++ b/lib/versioning/regex/index.ts
@@ -109,17 +109,6 @@ export class RegExpVersioningApi extends GenericVersioningApi<RegExpVersion> {
     );
   }
 
-  private _getSemverVersions(versions: string[]): string[] {
-    const parsedVersions: string[] = [];
-    versions.forEach((v) => {
-      const parsedVersion = this._parse(v);
-      if (parsedVersion) {
-        parsedVersions.push(asSemver(parsedVersion));
-      }
-    });
-    return parsedVersions;
-  }
-
   override getSatisfyingVersion(
     versions: string[],
     range: string
@@ -127,7 +116,10 @@ export class RegExpVersioningApi extends GenericVersioningApi<RegExpVersion> {
     const parsedRange = this._parse(range);
     return parsedRange
       ? semver.maxSatisfying(
-          this._getSemverVersions(versions),
+          versions
+            .map((v) => this._parse(v))
+            .filter(is.truthy)
+            .map(asSemver),
           asSemver(parsedRange)
         )
       : null;
@@ -140,7 +132,10 @@ export class RegExpVersioningApi extends GenericVersioningApi<RegExpVersion> {
     const parsedRange = this._parse(range);
     return parsedRange
       ? semver.minSatisfying(
-          this._getSemverVersions(versions),
+          versions
+            .map((v) => this._parse(v))
+            .filter(is.truthy)
+            .map(asSemver),
           asSemver(parsedRange)
         )
       : null;
-- 
GitLab