Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

💅 Bug with "unused else branch" #5362

Open
1 task done
maelp opened this issue Mar 15, 2025 · 1 comment
Open
1 task done

💅 Bug with "unused else branch" #5362

maelp opened this issue Mar 15, 2025 · 1 comment
Labels
S-Needs triage Status: this issue needs to be triaged

Comments

@maelp
Copy link

maelp commented Mar 15, 2025

Environment information

I've got this code (sorry it's a bit long, didn't want to edit it for now) which I use as a small script with a "hacky" argument parser, which expects something like `./myscript someArgs -- someCommand someArgs`

and this it stops parsing args when it spots "--", but `biome` is telling me that the "else" clause is unused, although I'm pretty sure it is used... not sure why?


#!/usr/bin/env -S pnpm tsx

import { spawn } from "node:child_process";
/**
 * Environment Variable Loader
 *
 * This module can be used in two ways:
 *
 * 1. As a preload script with -r flag:
 *    tsx -r '@workspace/config/env-loader' src/index.ts
 *    (Requires ENV_LOADER_PACKAGES env var as a comma-separated list of packages)
 *
 * 2. As a CLI tool:
 *    tsx env-loader -p package1 -p package2 -v KEY=VALUE -v ANOTHER=VALUE -- command args
 *
 * It loads environment variables from the TypeScript config
 * rather than from .env files, allowing for a single source of truth.
 *
 * The loader will always load the root ENV, then each specified package in order.
 * If a variable is defined in multiple places, it will exit with an error.
 */
import { config } from "@workspace/config";

const exitWithMessage = (message: string) => {
  console.error(`❌ env-loader: [${config.environment}] ${message}`);
  process.exit(1);
};
// Log infos to stderr to avoid interfering with stdout
const logToStderr = (message: string) => {
  console.error(`👉 env-loader: [${config.environment}] ${message}`);
};

// Parse package names and custom environment variables

let packageNames: string[] = [];
// Check if ENV_LOADER_PACKAGES is set (comma-separated list)
// eslint-disable-next-line turbo/no-undeclared-env-vars
const envPackages = process.env.ENV_LOADER_PACKAGES;
if (envPackages) {
  packageNames = envPackages
    .split(",")
    .map((p) => p.trim())
    .filter(Boolean);
}

const customEnvVars: Record<string, string> = {};
let commandString: string | undefined;

// CLI mode: parse arguments
const args = process.argv.slice(2);
let i = 0;

// Process arguments as a stream
while (i < args.length) {
  const arg = args[i];

  if (arg === "--") {
    // End of options, rest is command
    const commandArgs = args.slice(i + 1);
    if (commandArgs.length > 0) {
      commandString = commandArgs.join(" ");
    }
    break;
  } else if (arg === "-p") {
    // Package argument
    if (i + 1 >= args.length) {
      exitWithMessage("Error: -p flag requires a package name");
    }
    if (args[i + 1] === "--") {
      exitWithMessage("Error: -p flag requires a package name, got -- instead");
    }
    if (args[i + 1].startsWith("-")) {
      exitWithMessage(
        `Error: -p flag requires a package name, got ${args[i + 1]} instead`,
      );
    }
    packageNames.push(args[i + 1]);
    i += 2; // Skip next arg (package name)
  } else if (arg === "-v") {
    // Environment variable argument
    if (i + 1 >= args.length) {
      exitWithMessage("Error: -v flag requires a KEY=VALUE pair");
    }
    if (args[i + 1] === "--") {
      exitWithMessage(
        "Error: -v flag requires a KEY=VALUE pair, got -- instead",
      );
    }

    const envString = args[i + 1];
    const equalIndex = envString.indexOf("=");
    if (equalIndex <= 0) {
      exitWithMessage(
        `Error: -v flag requires a KEY=VALUE pair, got ${envString} instead`,
      );
    }

    const key = envString.substring(0, equalIndex);
    const value = envString.substring(equalIndex + 1);
    customEnvVars[key] = value;
    i += 2; // Skip next arg (env var)
  } else {
    // Unknown argument
    exitWithMessage(`Error: Unrecognized argument: ${arg}`);
  }
}

// Prepare to collect all environment variables
const allEnvVars: Record<string, string> = {};
const envSources: Record<string, string> = {};

logToStderr(`Loading environment variables`);

// Always load the root ENV first
const rootEnv = config.ENV || {};
// logToStderr(`Loading environment variables from root ENV`);
for (const [key, value] of Object.entries(rootEnv)) {
  allEnvVars[key] = value as string;
  envSources[key] = "root";
  if (config.isDevelopment) {
    logToStderr(` - ${key}=${value} (from config ENV)`);
  }
}

// Load each package's ENV section
for (const packageName of packageNames) {
  const packageConfig = config[packageName as keyof typeof config];
  if (!packageConfig) {
    exitWithMessage(`Package "${packageName}" not found in config`);
  }

  const packageEnv =
    (packageConfig as unknown as Record<string, unknown>).ENV || {};
  //   logToStderr(`Loading environment variables for package "${packageName}"`);

  for (const [key, value] of Object.entries(packageEnv)) {
    if (key in allEnvVars) {
      exitWithMessage(
        `Error: Environment variable "${key}" is defined multiple times (in ${envSources[key]} and ${packageName})`,
      );
    }
    allEnvVars[key] = value as string;
    envSources[key] = packageName;
    if (config.isDevelopment) {
      logToStderr(` - ${key}=${value} (from ${packageName} ENV)`);
    }
  }
}

// Add custom environment variables passed via command line
for (const [key, value] of Object.entries(customEnvVars)) {
  if (key in allEnvVars) {
    logToStderr(
      `Warning: Environment variable "${key}" is defined in ${envSources[key]} and also passed via command line`,
    );
  }
  allEnvVars[key] = value;
  envSources[key] = "command-line";
  if (config.isDevelopment) {
    logToStderr(` - ${key}=${value} (from command line)`);
  }
}

// Set all environment variables
for (const [key, value] of Object.entries(allEnvVars)) {
  process.env[key] = value;
}

// Validate that a command was specified
if (!commandString) {
  exitWithMessage(
    "Error: No command specified. You must provide a command to execute after the -- separator.",
  );
}

// Execute the command
// logToStderr(`Executing command: ${commandString}`);

// Spawn the command in a shell to support piping, redirection, etc.
const child = spawn("sh", ["-c", commandString as string], {
  stdio: "inherit",
  env: process.env,
});

// Handle command completion
await new Promise<void>((resolve, _reject) => {
  child.on("close", (code) => {
    if (code !== 0) {
      // Exit with the same code but without the zx stack trace
      process.exit(code || 1);
    }
    resolve();
  });

  child.on("error", (err) => {
    console.error(`Error executing command: ${err.message}`);
    process.exit(1);
  });
});

Rule name

lint/style/noUselessElse

Playground link

https://biomejs.dev/playground/?code=IwAhAC8AdQBzAHIALwBiAGkAbgAvAGUAbgB2ACAALQBTACAAcABuAHAAbQAgAHQAcwB4AAoACgBpAG0AcABvAHIAdAAgAHsAIABzAHAAYQB3AG4AIAB9ACAAZgByAG8AbQAgACIAbgBvAGQAZQA6AGMAaABpAGwAZABfAHAAcgBvAGMAZQBzAHMAIgA7AAoALwAqACoACgAgACoAIABFAG4AdgBpAHIAbwBuAG0AZQBuAHQAIABWAGEAcgBpAGEAYgBsAGUAIABMAG8AYQBkAGUAcgAKACAAKgAKACAAKgAgAFQAaABpAHMAIABtAG8AZAB1AGwAZQAgAGMAYQBuACAAYgBlACAAdQBzAGUAZAAgAGkAbgAgAHQAdwBvACAAdwBhAHkAcwA6AAoAIAAqAAoAIAAqACAAMQAuACAAQQBzACAAYQAgAHAAcgBlAGwAbwBhAGQAIABzAGMAcgBpAHAAdAAgAHcAaQB0AGgAIAAtAHIAIABmAGwAYQBnADoACgAgACoAIAAgACAAIAB0AHMAeAAgAC0AcgAgACcAQAB3AG8AcgBrAHMAcABhAGMAZQAvAGMAbwBuAGYAaQBnAC8AZQBuAHYALQBsAG8AYQBkAGUAcgAnACAAcwByAGMALwBpAG4AZABlAHgALgB0AHMACgAgACoAIAAgACAAIAAoAFIAZQBxAHUAaQByAGUAcwAgAEUATgBWAF8ATABPAEEARABFAFIAXwBQAEEAQwBLAEEARwBFAFMAIABlAG4AdgAgAHYAYQByACAAYQBzACAAYQAgAGMAbwBtAG0AYQAtAHMAZQBwAGEAcgBhAHQAZQBkACAAbABpAHMAdAAgAG8AZgAgAHAAYQBjAGsAYQBnAGUAcwApAAoAIAAqAAoAIAAqACAAMgAuACAAQQBzACAAYQAgAEMATABJACAAdABvAG8AbAA6AAoAIAAqACAAIAAgACAAdABzAHgAIABlAG4AdgAtAGwAbwBhAGQAZQByACAALQBwACAAcABhAGMAawBhAGcAZQAxACAALQBwACAAcABhAGMAawBhAGcAZQAyACAALQB2ACAASwBFAFkAPQBWAEEATABVAEUAIAAtAHYAIABBAE4ATwBUAEgARQBSAD0AVgBBAEwAVQBFACAALQAtACAAYwBvAG0AbQBhAG4AZAAgAGEAcgBnAHMACgAgACoACgAgACoAIABJAHQAIABsAG8AYQBkAHMAIABlAG4AdgBpAHIAbwBuAG0AZQBuAHQAIAB2AGEAcgBpAGEAYgBsAGUAcwAgAGYAcgBvAG0AIAB0AGgAZQAgAFQAeQBwAGUAUwBjAHIAaQBwAHQAIABjAG8AbgBmAGkAZwAKACAAKgAgAHIAYQB0AGgAZQByACAAdABoAGEAbgAgAGYAcgBvAG0AIAAuAGUAbgB2ACAAZgBpAGwAZQBzACwAIABhAGwAbABvAHcAaQBuAGcAIABmAG8AcgAgAGEAIABzAGkAbgBnAGwAZQAgAHMAbwB1AHIAYwBlACAAbwBmACAAdAByAHUAdABoAC4ACgAgACoACgAgACoAIABUAGgAZQAgAGwAbwBhAGQAZQByACAAdwBpAGwAbAAgAGEAbAB3AGEAeQBzACAAbABvAGEAZAAgAHQAaABlACAAcgBvAG8AdAAgAEUATgBWACwAIAB0AGgAZQBuACAAZQBhAGMAaAAgAHMAcABlAGMAaQBmAGkAZQBkACAAcABhAGMAawBhAGcAZQAgAGkAbgAgAG8AcgBkAGUAcgAuAAoAIAAqACAASQBmACAAYQAgAHYAYQByAGkAYQBiAGwAZQAgAGkAcwAgAGQAZQBmAGkAbgBlAGQAIABpAG4AIABtAHUAbAB0AGkAcABsAGUAIABwAGwAYQBjAGUAcwAsACAAaQB0ACAAdwBpAGwAbAAgAGUAeABpAHQAIAB3AGkAdABoACAAYQBuACAAZQByAHIAbwByAC4ACgAgACoALwAKAGkAbQBwAG8AcgB0ACAAewAgAGMAbwBuAGYAaQBnACAAfQAgAGYAcgBvAG0AIAAiAEAAdwBvAHIAawBzAHAAYQBjAGUALwBjAG8AbgBmAGkAZwAiADsACgAKAGMAbwBuAHMAdAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACAAPQAgACgAbQBlAHMAcwBhAGcAZQA6ACAAcwB0AHIAaQBuAGcAKQAgAD0APgAgAHsACgAgACAAYwBvAG4AcwBvAGwAZQAuAGUAcgByAG8AcgAoAGAATCcgAGUAbgB2AC0AbABvAGEAZABlAHIAOgAgAFsAJAB7AGMAbwBuAGYAaQBnAC4AZQBuAHYAaQByAG8AbgBtAGUAbgB0AH0AXQAgACQAewBtAGUAcwBzAGEAZwBlAH0AYAApADsACgAgACAAcAByAG8AYwBlAHMAcwAuAGUAeABpAHQAKAAxACkAOwAKAH0AOwAKAC8ALwAgAEwAbwBnACAAaQBuAGYAbwBzACAAdABvACAAcwB0AGQAZQByAHIAIAB0AG8AIABhAHYAbwBpAGQAIABpAG4AdABlAHIAZgBlAHIAaQBuAGcAIAB3AGkAdABoACAAcwB0AGQAbwB1AHQACgBjAG8AbgBzAHQAIABsAG8AZwBUAG8AUwB0AGQAZQByAHIAIAA9ACAAKABtAGUAcwBzAGEAZwBlADoAIABzAHQAcgBpAG4AZwApACAAPQA%2BACAAewAKACAAIABjAG8AbgBzAG8AbABlAC4AZQByAHIAbwByACgAYAA92EncIABlAG4AdgAtAGwAbwBhAGQAZQByADoAIABbACQAewBjAG8AbgBmAGkAZwAuAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAB9AF0AIAAkAHsAbQBlAHMAcwBhAGcAZQB9AGAAKQA7AAoAfQA7AAoACgAvAC8AIABQAGEAcgBzAGUAIABwAGEAYwBrAGEAZwBlACAAbgBhAG0AZQBzACAAYQBuAGQAIABjAHUAcwB0AG8AbQAgAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAAgAHYAYQByAGkAYQBiAGwAZQBzAAoACgBsAGUAdAAgAHAAYQBjAGsAYQBnAGUATgBhAG0AZQBzADoAIABzAHQAcgBpAG4AZwBbAF0AIAA9ACAAWwBdADsACgAvAC8AIABDAGgAZQBjAGsAIABpAGYAIABFAE4AVgBfAEwATwBBAEQARQBSAF8AUABBAEMASwBBAEcARQBTACAAaQBzACAAcwBlAHQAIAAoAGMAbwBtAG0AYQAtAHMAZQBwAGEAcgBhAHQAZQBkACAAbABpAHMAdAApAAoALwAvACAAZQBzAGwAaQBuAHQALQBkAGkAcwBhAGIAbABlAC0AbgBlAHgAdAAtAGwAaQBuAGUAIAB0AHUAcgBiAG8ALwBuAG8ALQB1AG4AZABlAGMAbABhAHIAZQBkAC0AZQBuAHYALQB2AGEAcgBzAAoAYwBvAG4AcwB0ACAAZQBuAHYAUABhAGMAawBhAGcAZQBzACAAPQAgAHAAcgBvAGMAZQBzAHMALgBlAG4AdgAuAEUATgBWAF8ATABPAEEARABFAFIAXwBQAEEAQwBLAEEARwBFAFMAOwAKAGkAZgAgACgAZQBuAHYAUABhAGMAawBhAGcAZQBzACkAIAB7AAoAIAAgAHAAYQBjAGsAYQBnAGUATgBhAG0AZQBzACAAPQAgAGUAbgB2AFAAYQBjAGsAYQBnAGUAcwAKACAAIAAgACAALgBzAHAAbABpAHQAKAAiACwAIgApAAoAIAAgACAAIAAuAG0AYQBwACgAKABwACkAIAA9AD4AIABwAC4AdAByAGkAbQAoACkAKQAKACAAIAAgACAALgBmAGkAbAB0AGUAcgAoAEIAbwBvAGwAZQBhAG4AKQA7AAoAfQAKAAoAYwBvAG4AcwB0ACAAYwB1AHMAdABvAG0ARQBuAHYAVgBhAHIAcwA6ACAAUgBlAGMAbwByAGQAPABzAHQAcgBpAG4AZwAsACAAcwB0AHIAaQBuAGcAPgAgAD0AIAB7AH0AOwAKAGwAZQB0ACAAYwBvAG0AbQBhAG4AZABTAHQAcgBpAG4AZwA6ACAAcwB0AHIAaQBuAGcAIAB8ACAAdQBuAGQAZQBmAGkAbgBlAGQAOwAKAAoALwAvACAAQwBMAEkAIABtAG8AZABlADoAIABwAGEAcgBzAGUAIABhAHIAZwB1AG0AZQBuAHQAcwAKAGMAbwBuAHMAdAAgAGEAcgBnAHMAIAA9ACAAcAByAG8AYwBlAHMAcwAuAGEAcgBnAHYALgBzAGwAaQBjAGUAKAAyACkAOwAKAGwAZQB0ACAAaQAgAD0AIAAwADsACgAKAC8ALwAgAFAAcgBvAGMAZQBzAHMAIABhAHIAZwB1AG0AZQBuAHQAcwAgAGEAcwAgAGEAIABzAHQAcgBlAGEAbQAKAHcAaABpAGwAZQAgACgAaQAgADwAIABhAHIAZwBzAC4AbABlAG4AZwB0AGgAKQAgAHsACgAgACAAYwBvAG4AcwB0ACAAYQByAGcAIAA9ACAAYQByAGcAcwBbAGkAXQA7AAoACgAgACAAaQBmACAAKABhAHIAZwAgAD0APQA9ACAAIgAtAC0AIgApACAAewAKACAAIAAgACAALwAvACAARQBuAGQAIABvAGYAIABvAHAAdABpAG8AbgBzACwAIAByAGUAcwB0ACAAaQBzACAAYwBvAG0AbQBhAG4AZAAKACAAIAAgACAAYwBvAG4AcwB0ACAAYwBvAG0AbQBhAG4AZABBAHIAZwBzACAAPQAgAGEAcgBnAHMALgBzAGwAaQBjAGUAKABpACAAKwAgADEAKQA7AAoAIAAgACAAIABpAGYAIAAoAGMAbwBtAG0AYQBuAGQAQQByAGcAcwAuAGwAZQBuAGcAdABoACAAPgAgADAAKQAgAHsACgAgACAAIAAgACAAIABjAG8AbQBtAGEAbgBkAFMAdAByAGkAbgBnACAAPQAgAGMAbwBtAG0AYQBuAGQAQQByAGcAcwAuAGoAbwBpAG4AKAAiACAAIgApADsACgAgACAAIAAgAH0ACgAgACAAIAAgAGIAcgBlAGEAawA7AAoAIAAgAH0AIABlAGwAcwBlACAAaQBmACAAKABhAHIAZwAgAD0APQA9ACAAIgAtAHAAIgApACAAewAKACAAIAAgACAALwAvACAAUABhAGMAawBhAGcAZQAgAGEAcgBnAHUAbQBlAG4AdAAKACAAIAAgACAAaQBmACAAKABpACAAKwAgADEAIAA%2BAD0AIABhAHIAZwBzAC4AbABlAG4AZwB0AGgAKQAgAHsACgAgACAAIAAgACAAIABlAHgAaQB0AFcAaQB0AGgATQBlAHMAcwBhAGcAZQAoACIARQByAHIAbwByADoAIAAtAHAAIABmAGwAYQBnACAAcgBlAHEAdQBpAHIAZQBzACAAYQAgAHAAYQBjAGsAYQBnAGUAIABuAGEAbQBlACIAKQA7AAoAIAAgACAAIAB9AAoAIAAgACAAIABpAGYAIAAoAGEAcgBnAHMAWwBpACAAKwAgADEAXQAgAD0APQA9ACAAIgAtAC0AIgApACAAewAKACAAIAAgACAAIAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACgAIgBFAHIAcgBvAHIAOgAgAC0AcAAgAGYAbABhAGcAIAByAGUAcQB1AGkAcgBlAHMAIABhACAAcABhAGMAawBhAGcAZQAgAG4AYQBtAGUALAAgAGcAbwB0ACAALQAtACAAaQBuAHMAdABlAGEAZAAiACkAOwAKACAAIAAgACAAfQAKACAAIAAgACAAaQBmACAAKABhAHIAZwBzAFsAaQAgACsAIAAxAF0ALgBzAHQAYQByAHQAcwBXAGkAdABoACgAIgAtACIAKQApACAAewAKACAAIAAgACAAIAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACgACgAgACAAIAAgACAAIAAgACAAYABFAHIAcgBvAHIAOgAgAC0AcAAgAGYAbABhAGcAIAByAGUAcQB1AGkAcgBlAHMAIABhACAAcABhAGMAawBhAGcAZQAgAG4AYQBtAGUALAAgAGcAbwB0ACAAJAB7AGEAcgBnAHMAWwBpACAAKwAgADEAXQB9ACAAaQBuAHMAdABlAGEAZABgACwACgAgACAAIAAgACAAIAApADsACgAgACAAIAAgAH0ACgAgACAAIAAgAHAAYQBjAGsAYQBnAGUATgBhAG0AZQBzAC4AcAB1AHMAaAAoAGEAcgBnAHMAWwBpACAAKwAgADEAXQApADsACgAgACAAIAAgAGkAIAArAD0AIAAyADsAIAAvAC8AIABTAGsAaQBwACAAbgBlAHgAdAAgAGEAcgBnACAAKABwAGEAYwBrAGEAZwBlACAAbgBhAG0AZQApAAoAIAAgAH0AIABlAGwAcwBlACAAaQBmACAAKABhAHIAZwAgAD0APQA9ACAAIgAtAHYAIgApACAAewAKACAAIAAgACAALwAvACAARQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAdgBhAHIAaQBhAGIAbABlACAAYQByAGcAdQBtAGUAbgB0AAoAIAAgACAAIABpAGYAIAAoAGkAIAArACAAMQAgAD4APQAgAGEAcgBnAHMALgBsAGUAbgBnAHQAaAApACAAewAKACAAIAAgACAAIAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACgAIgBFAHIAcgBvAHIAOgAgAC0AdgAgAGYAbABhAGcAIAByAGUAcQB1AGkAcgBlAHMAIABhACAASwBFAFkAPQBWAEEATABVAEUAIABwAGEAaQByACIAKQA7AAoAIAAgACAAIAB9AAoAIAAgACAAIABpAGYAIAAoAGEAcgBnAHMAWwBpACAAKwAgADEAXQAgAD0APQA9ACAAIgAtAC0AIgApACAAewAKACAAIAAgACAAIAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACgACgAgACAAIAAgACAAIAAgACAAIgBFAHIAcgBvAHIAOgAgAC0AdgAgAGYAbABhAGcAIAByAGUAcQB1AGkAcgBlAHMAIABhACAASwBFAFkAPQBWAEEATABVAEUAIABwAGEAaQByACwAIABnAG8AdAAgAC0ALQAgAGkAbgBzAHQAZQBhAGQAIgAsAAoAIAAgACAAIAAgACAAKQA7AAoAIAAgACAAIAB9AAoACgAgACAAIAAgAGMAbwBuAHMAdAAgAGUAbgB2AFMAdAByAGkAbgBnACAAPQAgAGEAcgBnAHMAWwBpACAAKwAgADEAXQA7AAoAIAAgACAAIABjAG8AbgBzAHQAIABlAHEAdQBhAGwASQBuAGQAZQB4ACAAPQAgAGUAbgB2AFMAdAByAGkAbgBnAC4AaQBuAGQAZQB4AE8AZgAoACIAPQAiACkAOwAKACAAIAAgACAAaQBmACAAKABlAHEAdQBhAGwASQBuAGQAZQB4ACAAPAA9ACAAMAApACAAewAKACAAIAAgACAAIAAgAGUAeABpAHQAVwBpAHQAaABNAGUAcwBzAGEAZwBlACgACgAgACAAIAAgACAAIAAgACAAYABFAHIAcgBvAHIAOgAgAC0AdgAgAGYAbABhAGcAIAByAGUAcQB1AGkAcgBlAHMAIABhACAASwBFAFkAPQBWAEEATABVAEUAIABwAGEAaQByACwAIABnAG8AdAAgACQAewBlAG4AdgBTAHQAcgBpAG4AZwB9ACAAaQBuAHMAdABlAGEAZABgACwACgAgACAAIAAgACAAIAApADsACgAgACAAIAAgAH0ACgAKACAAIAAgACAAYwBvAG4AcwB0ACAAawBlAHkAIAA9ACAAZQBuAHYAUwB0AHIAaQBuAGcALgBzAHUAYgBzAHQAcgBpAG4AZwAoADAALAAgAGUAcQB1AGEAbABJAG4AZABlAHgAKQA7AAoAIAAgACAAIABjAG8AbgBzAHQAIAB2AGEAbAB1AGUAIAA9ACAAZQBuAHYAUwB0AHIAaQBuAGcALgBzAHUAYgBzAHQAcgBpAG4AZwAoAGUAcQB1AGEAbABJAG4AZABlAHgAIAArACAAMQApADsACgAgACAAIAAgAGMAdQBzAHQAbwBtAEUAbgB2AFYAYQByAHMAWwBrAGUAeQBdACAAPQAgAHYAYQBsAHUAZQA7AAoAIAAgACAAIABpACAAKwA9ACAAMgA7ACAALwAvACAAUwBrAGkAcAAgAG4AZQB4AHQAIABhAHIAZwAgACgAZQBuAHYAIAB2AGEAcgApAAoAIAAgAH0AIABlAGwAcwBlACAAewAKACAAIAAgACAALwAvACAAVQBuAGsAbgBvAHcAbgAgAGEAcgBnAHUAbQBlAG4AdAAKACAAIAAgACAAZQB4AGkAdABXAGkAdABoAE0AZQBzAHMAYQBnAGUAKABgAEUAcgByAG8AcgA6ACAAVQBuAHIAZQBjAG8AZwBuAGkAegBlAGQAIABhAHIAZwB1AG0AZQBuAHQAOgAgACQAewBhAHIAZwB9AGAAKQA7AAoAIAAgAH0ACgB9AAoACgAvAC8AIABQAHIAZQBwAGEAcgBlACAAdABvACAAYwBvAGwAbABlAGMAdAAgAGEAbABsACAAZQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAdgBhAHIAaQBhAGIAbABlAHMACgBjAG8AbgBzAHQAIABhAGwAbABFAG4AdgBWAGEAcgBzADoAIABSAGUAYwBvAHIAZAA8AHMAdAByAGkAbgBnACwAIABzAHQAcgBpAG4AZwA%2BACAAPQAgAHsAfQA7AAoAYwBvAG4AcwB0ACAAZQBuAHYAUwBvAHUAcgBjAGUAcwA6ACAAUgBlAGMAbwByAGQAPABzAHQAcgBpAG4AZwAsACAAcwB0AHIAaQBuAGcAPgAgAD0AIAB7AH0AOwAKAAoAbABvAGcAVABvAFMAdABkAGUAcgByACgAYABMAG8AYQBkAGkAbgBnACAAZQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAdgBhAHIAaQBhAGIAbABlAHMAYAApADsACgAKAC8ALwAgAEEAbAB3AGEAeQBzACAAbABvAGEAZAAgAHQAaABlACAAcgBvAG8AdAAgAEUATgBWACAAZgBpAHIAcwB0AAoAYwBvAG4AcwB0ACAAcgBvAG8AdABFAG4AdgAgAD0AIABjAG8AbgBmAGkAZwAuAEUATgBWACAAfAB8ACAAewB9ADsACgAvAC8AIABsAG8AZwBUAG8AUwB0AGQAZQByAHIAKABgAEwAbwBhAGQAaQBuAGcAIABlAG4AdgBpAHIAbwBuAG0AZQBuAHQAIAB2AGEAcgBpAGEAYgBsAGUAcwAgAGYAcgBvAG0AIAByAG8AbwB0ACAARQBOAFYAYAApADsACgBmAG8AcgAgACgAYwBvAG4AcwB0ACAAWwBrAGUAeQAsACAAdgBhAGwAdQBlAF0AIABvAGYAIABPAGIAagBlAGMAdAAuAGUAbgB0AHIAaQBlAHMAKAByAG8AbwB0AEUAbgB2ACkAKQAgAHsACgAgACAAYQBsAGwARQBuAHYAVgBhAHIAcwBbAGsAZQB5AF0AIAA9ACAAdgBhAGwAdQBlACAAYQBzACAAcwB0AHIAaQBuAGcAOwAKACAAIABlAG4AdgBTAG8AdQByAGMAZQBzAFsAawBlAHkAXQAgAD0AIAAiAHIAbwBvAHQAIgA7AAoAIAAgAGkAZgAgACgAYwBvAG4AZgBpAGcALgBpAHMARABlAHYAZQBsAG8AcABtAGUAbgB0ACkAIAB7AAoAIAAgACAAIABsAG8AZwBUAG8AUwB0AGQAZQByAHIAKABgACAALQAgACQAewBrAGUAeQB9AD0AJAB7AHYAYQBsAHUAZQB9ACAAKABmAHIAbwBtACAAYwBvAG4AZgBpAGcAIABFAE4AVgApAGAAKQA7AAoAIAAgAH0ACgB9AAoACgAvAC8AIABMAG8AYQBkACAAZQBhAGMAaAAgAHAAYQBjAGsAYQBnAGUAJwBzACAARQBOAFYAIABzAGUAYwB0AGkAbwBuAAoAZgBvAHIAIAAoAGMAbwBuAHMAdAAgAHAAYQBjAGsAYQBnAGUATgBhAG0AZQAgAG8AZgAgAHAAYQBjAGsAYQBnAGUATgBhAG0AZQBzACkAIAB7AAoAIAAgAGMAbwBuAHMAdAAgAHAAYQBjAGsAYQBnAGUAQwBvAG4AZgBpAGcAIAA9ACAAYwBvAG4AZgBpAGcAWwBwAGEAYwBrAGEAZwBlAE4AYQBtAGUAIABhAHMAIABrAGUAeQBvAGYAIAB0AHkAcABlAG8AZgAgAGMAbwBuAGYAaQBnAF0AOwAKACAAIABpAGYAIAAoACEAcABhAGMAawBhAGcAZQBDAG8AbgBmAGkAZwApACAAewAKACAAIAAgACAAZQB4AGkAdABXAGkAdABoAE0AZQBzAHMAYQBnAGUAKABgAFAAYQBjAGsAYQBnAGUAIAAiACQAewBwAGEAYwBrAGEAZwBlAE4AYQBtAGUAfQAiACAAbgBvAHQAIABmAG8AdQBuAGQAIABpAG4AIABjAG8AbgBmAGkAZwBgACkAOwAKACAAIAB9AAoACgAgACAAYwBvAG4AcwB0ACAAcABhAGMAawBhAGcAZQBFAG4AdgAgAD0ACgAgACAAIAAgACgAcABhAGMAawBhAGcAZQBDAG8AbgBmAGkAZwAgAGEAcwAgAHUAbgBrAG4AbwB3AG4AIABhAHMAIABSAGUAYwBvAHIAZAA8AHMAdAByAGkAbgBnACwAIAB1AG4AawBuAG8AdwBuAD4AKQAuAEUATgBWACAAfAB8ACAAewB9ADsACgAgACAALwAvACAAIAAgAGwAbwBnAFQAbwBTAHQAZABlAHIAcgAoAGAATABvAGEAZABpAG4AZwAgAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAAgAHYAYQByAGkAYQBiAGwAZQBzACAAZgBvAHIAIABwAGEAYwBrAGEAZwBlACAAIgAkAHsAcABhAGMAawBhAGcAZQBOAGEAbQBlAH0AIgBgACkAOwAKAAoAIAAgAGYAbwByACAAKABjAG8AbgBzAHQAIABbAGsAZQB5ACwAIAB2AGEAbAB1AGUAXQAgAG8AZgAgAE8AYgBqAGUAYwB0AC4AZQBuAHQAcgBpAGUAcwAoAHAAYQBjAGsAYQBnAGUARQBuAHYAKQApACAAewAKACAAIAAgACAAaQBmACAAKABrAGUAeQAgAGkAbgAgAGEAbABsAEUAbgB2AFYAYQByAHMAKQAgAHsACgAgACAAIAAgACAAIABlAHgAaQB0AFcAaQB0AGgATQBlAHMAcwBhAGcAZQAoAAoAIAAgACAAIAAgACAAIAAgAGAARQByAHIAbwByADoAIABFAG4AdgBpAHIAbwBuAG0AZQBuAHQAIAB2AGEAcgBpAGEAYgBsAGUAIAAiACQAewBrAGUAeQB9ACIAIABpAHMAIABkAGUAZgBpAG4AZQBkACAAbQB1AGwAdABpAHAAbABlACAAdABpAG0AZQBzACAAKABpAG4AIAAkAHsAZQBuAHYAUwBvAHUAcgBjAGUAcwBbAGsAZQB5AF0AfQAgAGEAbgBkACAAJAB7AHAAYQBjAGsAYQBnAGUATgBhAG0AZQB9ACkAYAAsAAoAIAAgACAAIAAgACAAKQA7AAoAIAAgACAAIAB9AAoAIAAgACAAIABhAGwAbABFAG4AdgBWAGEAcgBzAFsAawBlAHkAXQAgAD0AIAB2AGEAbAB1AGUAIABhAHMAIABzAHQAcgBpAG4AZwA7AAoAIAAgACAAIABlAG4AdgBTAG8AdQByAGMAZQBzAFsAawBlAHkAXQAgAD0AIABwAGEAYwBrAGEAZwBlAE4AYQBtAGUAOwAKACAAIAAgACAAaQBmACAAKABjAG8AbgBmAGkAZwAuAGkAcwBEAGUAdgBlAGwAbwBwAG0AZQBuAHQAKQAgAHsACgAgACAAIAAgACAAIABsAG8AZwBUAG8AUwB0AGQAZQByAHIAKABgACAALQAgACQAewBrAGUAeQB9AD0AJAB7AHYAYQBsAHUAZQB9ACAAKABmAHIAbwBtACAAJAB7AHAAYQBjAGsAYQBnAGUATgBhAG0AZQB9ACAARQBOAFYAKQBgACkAOwAKACAAIAAgACAAfQAKACAAIAB9AAoAfQAKAAoALwAvACAAQQBkAGQAIABjAHUAcwB0AG8AbQAgAGUAbgB2AGkAcgBvAG4AbQBlAG4AdAAgAHYAYQByAGkAYQBiAGwAZQBzACAAcABhAHMAcwBlAGQAIAB2AGkAYQAgAGMAbwBtAG0AYQBuAGQAIABsAGkAbgBlAAoAZgBvAHIAIAAoAGMAbwBuAHMAdAAgAFsAawBlAHkALAAgAHYAYQBsAHUAZQBdACAAbwBmACAATwBiAGoAZQBjAHQALgBlAG4AdAByAGkAZQBzACgAYwB1AHMAdABvAG0ARQBuAHYAVgBhAHIAcwApACkAIAB7AAoAIAAgAGkAZgAgACgAawBlAHkAIABpAG4AIABhAGwAbABFAG4AdgBWAGEAcgBzACkAIAB7AAoAIAAgACAAIABsAG8AZwBUAG8AUwB0AGQAZQByAHIAKAAKACAAIAAgACAAIAAgAGAAVwBhAHIAbgBpAG4AZwA6ACAARQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAdgBhAHIAaQBhAGIAbABlACAAIgAkAHsAawBlAHkAfQAiACAAaQBzACAAZABlAGYAaQBuAGUAZAAgAGkAbgAgACQAewBlAG4AdgBTAG8AdQByAGMAZQBzAFsAawBlAHkAXQB9ACAAYQBuAGQAIABhAGwAcwBvACAAcABhAHMAcwBlAGQAIAB2AGkAYQAgAGMAbwBtAG0AYQBuAGQAIABsAGkAbgBlAGAALAAKACAAIAAgACAAKQA7AAoAIAAgAH0ACgAgACAAYQBsAGwARQBuAHYAVgBhAHIAcwBbAGsAZQB5AF0AIAA9ACAAdgBhAGwAdQBlADsACgAgACAAZQBuAHYAUwBvAHUAcgBjAGUAcwBbAGsAZQB5AF0AIAA9ACAAIgBjAG8AbQBtAGEAbgBkAC0AbABpAG4AZQAiADsACgAgACAAaQBmACAAKABjAG8AbgBmAGkAZwAuAGkAcwBEAGUAdgBlAGwAbwBwAG0AZQBuAHQAKQAgAHsACgAgACAAIAAgAGwAbwBnAFQAbwBTAHQAZABlAHIAcgAoAGAAIAAtACAAJAB7AGsAZQB5AH0APQAkAHsAdgBhAGwAdQBlAH0AIAAoAGYAcgBvAG0AIABjAG8AbQBtAGEAbgBkACAAbABpAG4AZQApAGAAKQA7AAoAIAAgAH0ACgB9AAoACgAvAC8AIABTAGUAdAAgAGEAbABsACAAZQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAdgBhAHIAaQBhAGIAbABlAHMACgBmAG8AcgAgACgAYwBvAG4AcwB0ACAAWwBrAGUAeQAsACAAdgBhAGwAdQBlAF0AIABvAGYAIABPAGIAagBlAGMAdAAuAGUAbgB0AHIAaQBlAHMAKABhAGwAbABFAG4AdgBWAGEAcgBzACkAKQAgAHsACgAgACAAcAByAG8AYwBlAHMAcwAuAGUAbgB2AFsAawBlAHkAXQAgAD0AIAB2AGEAbAB1AGUAOwAKAH0ACgAKAC8ALwAgAFYAYQBsAGkAZABhAHQAZQAgAHQAaABhAHQAIABhACAAYwBvAG0AbQBhAG4AZAAgAHcAYQBzACAAcwBwAGUAYwBpAGYAaQBlAGQACgBpAGYAIAAoACEAYwBvAG0AbQBhAG4AZABTAHQAcgBpAG4AZwApACAAewAKACAAIABlAHgAaQB0AFcAaQB0AGgATQBlAHMAcwBhAGcAZQAoAAoAIAAgACAAIAAiAEUAcgByAG8AcgA6ACAATgBvACAAYwBvAG0AbQBhAG4AZAAgAHMAcABlAGMAaQBmAGkAZQBkAC4AIABZAG8AdQAgAG0AdQBzAHQAIABwAHIAbwB2AGkAZABlACAAYQAgAGMAbwBtAG0AYQBuAGQAIAB0AG8AIABlAHgAZQBjAHUAdABlACAAYQBmAHQAZQByACAAdABoAGUAIAAtAC0AIABzAGUAcABhAHIAYQB0AG8AcgAuACIALAAKACAAIAApADsACgB9AAoACgAvAC8AIABFAHgAZQBjAHUAdABlACAAdABoAGUAIABjAG8AbQBtAGEAbgBkAAoALwAvACAAbABvAGcAVABvAFMAdABkAGUAcgByACgAYABFAHgAZQBjAHUAdABpAG4AZwAgAGMAbwBtAG0AYQBuAGQAOgAgACQAewBjAG8AbQBtAGEAbgBkAFMAdAByAGkAbgBnAH0AYAApADsACgAKAC8ALwAgAFMAcABhAHcAbgAgAHQAaABlACAAYwBvAG0AbQBhAG4AZAAgAGkAbgAgAGEAIABzAGgAZQBsAGwAIAB0AG8AIABzAHUAcABwAG8AcgB0ACAAcABpAHAAaQBuAGcALAAgAHIAZQBkAGkAcgBlAGMAdABpAG8AbgAsACAAZQB0AGMALgAKAGMAbwBuAHMAdAAgAGMAaABpAGwAZAAgAD0AIABzAHAAYQB3AG4AKAAiAHMAaAAiACwAIABbACIALQBjACIALAAgAGMAbwBtAG0AYQBuAGQAUwB0AHIAaQBuAGcAIABhAHMAIABzAHQAcgBpAG4AZwBdACwAIAB7AAoAIAAgAHMAdABkAGkAbwA6ACAAIgBpAG4AaABlAHIAaQB0ACIALAAKACAAIABlAG4AdgA6ACAAcAByAG8AYwBlAHMAcwAuAGUAbgB2ACwACgB9ACkAOwAKAAoALwAvACAASABhAG4AZABsAGUAIABjAG8AbQBtAGEAbgBkACAAYwBvAG0AcABsAGUAdABpAG8AbgAKAGEAdwBhAGkAdAAgAG4AZQB3ACAAUAByAG8AbQBpAHMAZQA8AHYAbwBpAGQAPgAoACgAcgBlAHMAbwBsAHYAZQAsACAAXwByAGUAagBlAGMAdAApACAAPQA%2BACAAewAKACAAIABjAGgAaQBsAGQALgBvAG4AKAAiAGMAbABvAHMAZQAiACwAIAAoAGMAbwBkAGUAKQAgAD0APgAgAHsACgAgACAAIAAgAGkAZgAgACgAYwBvAGQAZQAgACEAPQA9ACAAMAApACAAewAKACAAIAAgACAAIAAgAC8ALwAgAEUAeABpAHQAIAB3AGkAdABoACAAdABoAGUAIABzAGEAbQBlACAAYwBvAGQAZQAgAGIAdQB0ACAAdwBpAHQAaABvAHUAdAAgAHQAaABlACAAegB4ACAAcwB0AGEAYwBrACAAdAByAGEAYwBlAAoAIAAgACAAIAAgACAAcAByAG8AYwBlAHMAcwAuAGUAeABpAHQAKABjAG8AZABlACAAfAB8ACAAMQApADsACgAgACAAIAAgAH0ACgAgACAAIAAgAHIAZQBzAG8AbAB2AGUAKAApADsACgAgACAAfQApADsACgAKACAAIABjAGgAaQBsAGQALgBvAG4AKAAiAGUAcgByAG8AcgAiACwAIAAoAGUAcgByACkAIAA9AD4AIAB7AAoAIAAgACAAIABjAG8AbgBzAG8AbABlAC4AZQByAHIAbwByACgAYABFAHIAcgBvAHIAIABlAHgAZQBjAHUAdABpAG4AZwAgAGMAbwBtAG0AYQBuAGQAOgAgACQAewBlAHIAcgAuAG0AZQBzAHMAYQBnAGUAfQBgACkAOwAKACAAIAAgACAAcAByAG8AYwBlAHMAcwAuAGUAeABpAHQAKAAxACkAOwAKACAAIAB9ACkAOwAKAH0AKQA7AAoA

Expected result

It should compile normally...

Image

Code of Conduct

  • I agree to follow Biome's Code of Conduct
@maelp maelp added the S-Needs triage Status: this issue needs to be triaged label Mar 15, 2025
@maelp
Copy link
Author

maelp commented Mar 15, 2025

Using latest version of biome (1.9.4)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-Needs triage Status: this issue needs to be triaged
Projects
None yet
Development

No branches or pull requests

1 participant