Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Nov 11, 2025

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@biomejs/[email protected]

Patch Changes

  • #7672 f1d5725 Thanks @Netail! - Added the nursery rule useConsistentGraphqlDescriptions, requiring all descriptions to follow the same style (either block or inline) inside GraphQL files.

    Invalid:

    enum EnumValue {
      "this is a description"
      DEFAULT
    }

    Valid:

    enum EnumValue {
      """
      this is a description
      """
      DEFAULT
    }
  • #8026 f102661 Thanks @matanshavit! - Fixed #8004: noParametersOnlyUsedInRecursion now correctly detects recursion by comparing function bindings instead of just names.

    Previously, the rule incorrectly flagged parameters when a method had the same name as an outer function but called the outer function (not itself):

    function notRecursive(arg) {
      return arg;
    }
    
    const obj = {
      notRecursive(arg) {
        return notRecursive(arg); // This calls the outer function, not the method itself
      },
    };

    Biome now properly distinguishes between these cases and will not report false positives.

  • #8085 7983940 Thanks @Netail! - Added the nursery rule noForIn. Disallow iterating using a for-in loop.

    Invalid:

    for (const i in array) {
      console.log(i, array[i]);
    }
  • #8086 2b41e82 Thanks @matanshavit! - Fixed #8045: The noNestedTernary rule now correctly detects nested ternary expressions even when they are wrapped in parentheses (e.g. foo ? (bar ? 1 : 2) : 3).

    Previously, the rule would not flag nested ternaries like foo ? (bar ? 1 : 2) : 3 because the parentheses prevented detection. The rule now looks through parentheses to identify nested conditionals.

    Previously not detected (now flagged):

    const result = foo ? (bar ? 1 : 2) : 3;

    Still valid (non-nested with parentheses):

    const result = foo ? bar : baz;
  • #8075 e403868 Thanks @YTomm! - Fixed #7948: The useReadonlyClassProperties code fix when checkAllProperties is enabled will no longer insert a newline after readonly and the class property.

  • #7681 b406db6 Thanks @kedevked! - Added the new lint rule, useSpread, ported from the ESLint rule prefer-spread.

    This rule enforces the use of the spread syntax (...) over Function.prototype.apply() when calling variadic functions, as spread syntax is generally more concise and idiomatic in modern JavaScript (ES2015+).

    The rule provides a safe fix.

    Invalid

    Math.max.apply(Math, args);
    foo.apply(undefined, args);
    obj.method.apply(obj, args);

    Valid

    Math.max(...args);
    foo(...args);
    obj.method(...args);
    
    // Allowed: cases where the `this` binding is intentionally changed
    foo.apply(otherObj, args);
  • #7287 aa55c8d Thanks @ToBinio! - Fixed #7205: The noDuplicateTestHooks rule now treats chained describe variants (e.g., describe.each/for/todo) as proper describe scopes, eliminating false positives.

    The following code will no longer be a false positive:

    describe("foo", () => {
      describe.for([])("baz", () => {
        beforeEach(() => {});
      });
    
      describe.todo("qux", () => {
        beforeEach(() => {});
      });
    
      describe.todo.each([])("baz", () => {
        beforeEach(() => {});
      });
    });
  • #8013 0c0edd4 Thanks @Jayllyz! - Added the GraphQL nursery rule useUniqueGraphqlOperationName. This rule ensures that all GraphQL operations within a document have unique names.

    Invalid:

    query user {
      user {
        id
      }
    }
    
    query user {
      user {
        id
        email
      }
    }

    Valid:

    query user {
      user {
        id
      }
    }
    
    query userWithEmail {
      user {
        id
        email
      }
    }
  • #8084 c2983f9 Thanks @dyc3! - Fixed #8080: The HTML parser, when parsing Vue, can now properly handle Vue directives with no argument, modifiers, or initializer (e.g. v-else). It will no longer treat subsequent valid attributes as bogus.

    <p v-else class="flex">World</p>
    <!-- Fixed: class now gets parsed as it's own attribute -->
  • #8060 ba7b076 Thanks @dyc3! - Added the nursery rule useVueValidVBind, which enforces the validity of v-bind directives in Vue files.

    Invalid v-bind usages include:

    <Foo v-bind />
    <!-- Missing argument -->
    <Foo v-bind:foo />
    <!-- Missing value -->
    <Foo v-bind:foo.bar="baz" />
    <!-- Invalid modifier -->
  • #8077 0170dcb Thanks @dyc3! - Added the rule useVueValidVElseIf to enforce valid v-else-if directives in Vue templates. This rule reports invalid v-else-if directives with missing conditional expressions or when not preceded by a v-if or v-else-if directive.

  • #8077 0170dcb Thanks @dyc3! - Added the rule useVueValidVElse to enforce valid v-else directives in Vue templates. This rule reports v-else directives that are not preceded by a v-if or v-else-if directive.

  • #8077 0170dcb Thanks @dyc3! - Added the rule useVueValidVHtml to enforce valid usage of the v-html directive in Vue templates. This rule reports v-html directives with missing expressions, unexpected arguments, or unexpected modifiers.

  • #8077 0170dcb Thanks @dyc3! - Added the rule useVueValidVIf to enforce valid v-if directives in Vue templates. It disallows arguments and modifiers, and ensures a value is provided.

  • #8077 0170dcb Thanks @dyc3! - Added the rule useVueValidVOn to enforce valid v-on directives in Vue templates. This rule reports invalid v-on / shorthand @ directives with missing event names, invalid modifiers, or missing handler expressions.

@biomejs/[email protected]

@biomejs/[email protected]

@biomejs/[email protected]

@biomejs/[email protected]

@biomejs/[email protected]

@biomejs/[email protected]

@biomejs/[email protected]

@biomejs/[email protected]

@biomejs/[email protected]

@biomejs/[email protected]

@biomejs/[email protected]

@biomejs/[email protected]

@github-actions github-actions bot force-pushed the changeset-release/main branch 16 times, most recently from 5b22d63 to 0a188e3 Compare November 13, 2025 12:33
@github-actions github-actions bot force-pushed the changeset-release/main branch from 0a188e3 to 50e6b80 Compare November 13, 2025 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment