From bc0b5617c517c7bc1c6e24695e7b20447b7dbd2e Mon Sep 17 00:00:00 2001
From: RahulGautamSingh <rahul_ug@cse.nits.ac.in>
Date: Thu, 20 Jan 2022 03:33:55 +0545
Subject: [PATCH] refactor(versioning/cargo): enable strict null (#13607)

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
---
 lib/versioning/cargo/index.spec.ts |  2 +-
 lib/versioning/cargo/index.ts      | 20 ++++++++++++++------
 tsconfig.strict.json               |  1 +
 3 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/lib/versioning/cargo/index.spec.ts b/lib/versioning/cargo/index.spec.ts
index d0e83962c8..b4e6c1c351 100644
--- a/lib/versioning/cargo/index.spec.ts
+++ b/lib/versioning/cargo/index.spec.ts
@@ -56,7 +56,7 @@ describe('versioning/cargo/index', () => {
   `(
     'isLessThanRange("$version", "$range") === "$expected"',
     ({ version, range, expected }) => {
-      expect(semver.isLessThanRange(version, range)).toBe(expected);
+      expect(semver.isLessThanRange?.(version, range)).toBe(expected);
     }
   );
 
diff --git a/lib/versioning/cargo/index.ts b/lib/versioning/cargo/index.ts
index 2a699e8de5..3c35d50990 100644
--- a/lib/versioning/cargo/index.ts
+++ b/lib/versioning/cargo/index.ts
@@ -55,7 +55,7 @@ function npm2cargo(input: string): string {
 }
 
 const isLessThanRange = (version: string, range: string): boolean =>
-  npm.isLessThanRange(version, cargo2npm(range));
+  !!npm.isLessThanRange?.(version, cargo2npm(range));
 
 export const isValid = (input: string): boolean =>
   npm.isValid(cargo2npm(input));
@@ -63,11 +63,19 @@ export const isValid = (input: string): boolean =>
 const matches = (version: string, range: string): boolean =>
   npm.matches(version, cargo2npm(range));
 
-const getSatisfyingVersion = (versions: string[], range: string): string =>
-  npm.getSatisfyingVersion(versions, cargo2npm(range));
+function getSatisfyingVersion(
+  versions: string[],
+  range: string
+): string | null {
+  return npm.getSatisfyingVersion(versions, cargo2npm(range));
+}
 
-const minSatisfyingVersion = (versions: string[], range: string): string =>
-  npm.minSatisfyingVersion(versions, cargo2npm(range));
+function minSatisfyingVersion(
+  versions: string[],
+  range: string
+): string | null {
+  return npm.minSatisfyingVersion(versions, cargo2npm(range));
+}
 
 const isSingleVersion = (constraint: string): boolean =>
   constraint.trim().startsWith('=') &&
@@ -96,7 +104,7 @@ function getNewValue({
     currentVersion,
     newVersion,
   });
-  let newCargo = npm2cargo(newSemver);
+  let newCargo = newSemver ? npm2cargo(newSemver) : null;
   // istanbul ignore if
   if (!newCargo) {
     logger.info(
diff --git a/tsconfig.strict.json b/tsconfig.strict.json
index c23f0583f7..9dbfaa564a 100644
--- a/tsconfig.strict.json
+++ b/tsconfig.strict.json
@@ -44,6 +44,7 @@
     "lib/proxy.ts",
     "lib/types/**/*.ts",
     "lib/util/**/*.ts",
+    "lib/versioning/cargo/**/*.ts",
     "lib/versioning/gradle/compare.ts",
     "lib/versioning/hex/**/*.ts",
     "lib/versioning/loose/**/*.ts",
-- 
GitLab