• 
      

    Update @beanbag/eslint-plugin to use modern config and plugin layout.

    Review Request #14653 — Created Oct. 25, 2025 and submitted — Latest diff uploaded

    Information

    beanbag-eslint-plugin
    master

    Reviewers

    When I updated the ESLint plugin to support version 9, I did so in only
    the most minimal way. This ended up requiring that consumers install an
    additional package (@eslint/eslintrc) and use FlatCompat in their
    configurations.

    This change updates our plugin to actually be a modern plugin with
    modern shared configuration:

    • Each of our predefined config layers is itself a flat config.
    • Configs are exported as plugin.configs.XXX.
    • Our cascading glob configs have been updated to use **/..., which makes
      it properly detect said files no matter where they are. This means we no
      longer have to do things like unversally include tests globals, since
      the jasmine block will be loaded when its supposed to be.
    • Moved some things from devDependencies to dependencies to reduce
      what consumers have to install themselves.

    There are also some changes to the build process:

    • Use rollup instead of invoking babel directly.
    • Provide ESM and CJS exports in addition to UMD.
    • Generate and provide type definitions.

    I've also made a couple tweaks to the rules themselves:

    • Added some additional stuff to indent ignore rules to avoid issues
      with complex generic class definitions.
    • Switch ES6 quotes rule to use @stylistic/quotes.
    • Add a configuration for @typescript-eslint/no-unused-vars to match
      the JS one, and added underscore prefixes to allow us to ignore things
      even that aren't parameters or locals (for example, inside TS generic
      definitions).
    • Fixed links to @stylistic docs to link to the latest docs instead of
      an older version that we weren't even using.
    • Built the plugin.
    • Used this from all of our other packages.

    Commits

    Files