From d05f1a6c9b6b55a762414a66f80be91faedff3b7 Mon Sep 17 00:00:00 2001 From: gonzaloriestra <14979109+gonzaloriestra@users.noreply.github.com> Date: Wed, 19 Aug 2026 00:37:05 +0000 Subject: [PATCH] [Refactor] Simplify control flow in globalCLIVersion Replace nested if statements in globalCLIVersion with early exit guard clauses and optional chaining. Give shopifyBinaries[0] a descriptive variable name globalBinary. --- packages/cli-kit/src/public/node/version.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/cli-kit/src/public/node/version.ts b/packages/cli-kit/src/public/node/version.ts index a28ba9e44cf..4a3a530a72b 100644 --- a/packages/cli-kit/src/public/node/version.ts +++ b/packages/cli-kit/src/public/node/version.ts @@ -27,15 +27,17 @@ export async function globalCLIVersion(): Promise { const env = {...process.env, SHOPIFY_CLI_NO_ANALYTICS: '1'} // Both execa and which find the project dependency. We need to exclude it. const shopifyBinaries = which.sync('shopify', {all: true}).filter((path) => !path.includes('node_modules')) - if (!shopifyBinaries[0]) return undefined - const output = await captureOutput(shopifyBinaries[0], [], {env}) - const versionMatch = output.match(/@shopify\/cli\/([^\s]+)/) - if (versionMatch && versionMatch[1]) { - const version = versionMatch[1] - if (satisfies(version, `>=3.59.0`) || isPreReleaseVersion(version)) { - return version - } + const globalBinary = shopifyBinaries[0] + if (!globalBinary) return undefined + + const output = await captureOutput(globalBinary, [], {env}) + const version = output.match(/@shopify\/cli\/([^\s]+)/)?.[1] + if (!version) return undefined + + if (satisfies(version, `>=3.59.0`) || isPreReleaseVersion(version)) { + return version } + return undefined // eslint-disable-next-line no-catch-all/no-catch-all } catch {