• 
      

    Update @beanbag/eslint-plugin for eslint 9+

    Review Request #14562 — Created Aug. 19, 2025 and submitted — Latest diff uploaded

    Information

    beanbag-eslint-plugin
    master

    Reviewers

    The version of eslint that we use in most places (8) now spews a warning
    about no longer being supported. eslint 9 made a few changes that
    require us to update our plugin (which is more a shared configuration
    than an actual plugin):

    All built-in rules that enforce style have been formally deprecated in
    eslint, and actually removed from @typescript-eslint. These now live
    in a new plugin, @stylistic/eslint-plugin.

    Converting to the new stylistic rules means we can actually simplify our
    configuration a bit. Rules that had typescript-specific modes now no
    longer require us to disable the JS rule and enable a typescript one,
    and we can just include it all in our base configuration.

    The indent rule has some known issues with typescript, and it seems
    like nobody is terribly willing to rewrite it to fix these. The impact
    here seems limited to type parameters for generics. I've added a couple
    ignored node types in order to work around this.

    For linting within this codebase itself, the eslint configuration now
    lives in eslint.config.mjs rather than .eslintrc. This also required
    new dependencies for @eslint/eslintrc, @eslint/js, and globals

    While I was here, I bumped our babel and typescript dependencies,
    why not.

    • Ran npm build
    • Ran linting.
    • Set this up as a link in another package and updated that package to
      use eslint 9. Verified that we got correct linting output.

    Commits

    Files