From b717bf1b71931ecfc9fcd85912c79bc8c546b2a2 Mon Sep 17 00:00:00 2001
From: Dmitry Shibanov <shibanov-1997@inbox.ru>
Date: Wed, 30 Nov 2022 11:48:41 +0100
Subject: [PATCH] remove if

---
 dist/setup/index.js | 22 ++++++++++------------
 src/installer.ts    | 32 ++++++++++++--------------------
 2 files changed, 22 insertions(+), 32 deletions(-)

diff --git a/dist/setup/index.js b/dist/setup/index.js
index 912c7c58..522ca2a3 100644
--- a/dist/setup/index.js
+++ b/dist/setup/index.js
@@ -73245,18 +73245,16 @@ exports.nightlyV8MatcherFactory = (version, distribution) => {
     return matcher;
 };
 exports.splitVersionSpec = (versionSpec) => versionSpec.split(/-(.*)/s);
-const createRangePreRelease = (versionSpec, preRelease = '') => {
+const createRangePreRelease = (versionSpec, distribution = '') => {
     let range;
     const [raw, prerelease] = exports.splitVersionSpec(versionSpec);
     const isValidVersion = semver.valid(raw);
-    const rawVersion = isValidVersion ? raw : semver.coerce(raw);
-    if (rawVersion) {
-        if (`-${prerelease}` !== preRelease) {
-            range = `${rawVersion}${`-${prerelease}`.replace(preRelease, `${preRelease}.`)}`;
-        }
-        else {
-            range = `${semver.validRange(`^${rawVersion}${preRelease}`)}-0`;
-        }
+    const rawVersion = (isValidVersion ? raw : semver.coerce(raw));
+    if (`-${prerelease}` !== distribution) {
+        range = `${rawVersion}${`-${prerelease}`.replace(distribution, `${distribution}.`)}`;
+    }
+    else {
+        range = `${semver.validRange(`^${rawVersion}${distribution}`)}-0`;
     }
     return { range, includePrerelease: !isValidVersion };
 };
@@ -73264,12 +73262,12 @@ function versionMatcherFactory(versionSpec) {
     var _a;
     const raw = exports.splitVersionSpec(versionSpec)[0];
     const validVersion = semver.valid(raw) ? raw : (_a = semver.coerce(raw)) === null || _a === void 0 ? void 0 : _a.version;
+    const distribution = exports.distributionOf(versionSpec);
     if (validVersion) {
-        switch (exports.distributionOf(versionSpec)) {
+        switch (distribution) {
             case Distributions.CANARY:
-                return exports.nightlyV8MatcherFactory(versionSpec, Distributions.CANARY);
             case Distributions.NIGHTLY:
-                return exports.nightlyV8MatcherFactory(versionSpec, Distributions.NIGHTLY);
+                return exports.nightlyV8MatcherFactory(versionSpec, distribution);
             case Distributions.RC:
             case Distributions.DEFAULT:
                 return exports.semverVersionMatcherFactory(versionSpec);
diff --git a/src/installer.ts b/src/installer.ts
index 50d89921..ffee7dd5 100644
--- a/src/installer.ts
+++ b/src/installer.ts
@@ -87,22 +87,20 @@ export const splitVersionSpec = (versionSpec: string): string[] =>
 
 const createRangePreRelease = (
   versionSpec: string,
-  preRelease: string = ''
+  distribution: string = ''
 ) => {
   let range: string | undefined;
   const [raw, prerelease] = splitVersionSpec(versionSpec);
   const isValidVersion = semver.valid(raw);
-  const rawVersion = isValidVersion ? raw : semver.coerce(raw);
+  const rawVersion = (isValidVersion ? raw : semver.coerce(raw))!;
 
-  if (rawVersion) {
-    if (`-${prerelease}` !== preRelease) {
-      range = `${rawVersion}${`-${prerelease}`.replace(
-        preRelease,
-        `${preRelease}.`
-      )}`;
-    } else {
-      range = `${semver.validRange(`^${rawVersion}${preRelease}`)}-0`;
-    }
+  if (`-${prerelease}` !== distribution) {
+    range = `${rawVersion}${`-${prerelease}`.replace(
+      distribution,
+      `${distribution}.`
+    )}`;
+  } else {
+    range = `${semver.validRange(`^${rawVersion}${distribution}`)}-0`;
   }
 
   return {range, includePrerelease: !isValidVersion};
@@ -111,19 +109,13 @@ const createRangePreRelease = (
 export function versionMatcherFactory(versionSpec: string): VersionMatcher {
   const raw = splitVersionSpec(versionSpec)[0];
   const validVersion = semver.valid(raw) ? raw : semver.coerce(raw)?.version;
+  const distribution = distributionOf(versionSpec);
 
   if (validVersion) {
-    switch (distributionOf(versionSpec)) {
+    switch (distribution) {
       case Distributions.CANARY:
-        return nightlyV8MatcherFactory(
-          versionSpec,
-          Distributions.CANARY
-        );
       case Distributions.NIGHTLY:
-        return nightlyV8MatcherFactory(
-          versionSpec,
-          Distributions.NIGHTLY
-        );
+        return nightlyV8MatcherFactory(versionSpec, distribution);      
       case Distributions.RC:
       case Distributions.DEFAULT:
         return semverVersionMatcherFactory(versionSpec);