github biomejs/biome cli/v1.4.1-nightly.e087146
CLI v1.4.1-nightly.e087146

Analyzer

CLI

New features

  • The CLI now supports nested .gitignore files during the traversal. The users don't need to do anything to avail of this feature. Contributed by @ematipico

  • Fix #709, by correctly parsing allow list patterns in .gitignore files. Contributed by @ematipico

  • Fix #805, by correctly parsing these kind of patterns. Contributed by @ematipico

  • Fix 1117 by correctly respecting the matching. Contributed by @ematipico

Configuration

New features
  • Users can specify git ignore patterns inside ignore and include properties, for example it's possible to allow list globs of files using the ! character:

    {
      "files": {
        "ignore": [
          "node_modules/**",
          "!**/dist/**" // this is now accepted and allow list files inside the `dist` folder
        ]
      }
    }

Editors

New features

  • The LSP register formatting without the need of using dynamic capabilities from the client.

Formatter

JavaScript APIs

Linter

New features

  • Add useExportType that enforces the use of type-only exports for names that are only types. Contributed by @Conaclos

      interface A {}
      interface B {}
      class C {}
    
    - export type { A, C }
    + export { type A, C }
    
    - export { type B }
    + export type { B }

Enhancements

Bug fixes

  • Fix #959. noEmptyInterface no longer reports interface that extends a type and is in an external module. COntributed by @Conaclos

    Empty interface that extends a type are sometimes used to extend an existing interface.
    This is generally used to extend an interface of an external module.

    interface Extension {
      metadata: unknown;
    }
    
    declare module "@external/module" {
      export interface ExistingInterface extends Extension {}
    }
  • Fix #1061. noRedeclare no longer reports overloads of export default function. Contributed by @Conaclos

    The following code is no longer reported:

    export default function(a: boolean): boolean;
    export default function(a: number): number;
    export default function(a: number | boolean): number | boolean {
    	return a;
    }
  • Fix #651, useExhaustiveDependencies no longer reports out of scope dependencies. Contributed by @kalleep

    The following code is no longer reported:

    let outer = false;
    
    const Component = ({}) => {
      useEffect(() => {
        outer = true;
      }, []);
    }
  • Fix #728. useSingleVarDeclarator no longer outputs invalid code. Contributed by @Conaclos

  • Fix #1167. [useValidAriaProps] no longer reports aria-atomic as invalid. Contributed by @unvalley

Parser

  • Fix #1077, fix issues when parsing conditional expression where parenthesized identifier was being parsed as arrow expression. Contributed by @kalleep

These cases are now properly parsed:

javascript:

  a ? (b) : a => {};

typescript:

  a ? (b) : a => {};

jsx:

  bar ? (foo) : (<a>{() => {}}</a>);

What's Changed

Other changes

New Contributors

Full Changelog: cli/v1.4.1-nightly.570d680...cli/v1.4.1-nightly.e087146

Don't miss a new biome release

NewReleases is sending notifications on new releases.