• 
      

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

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

    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.
    Summary ID
    Update @beanbag/eslint-plugin to use modern config and plugin layout.
    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. Testing Done: - Built the plugin. - Ran tests. - Used this from all of our other packages.
    ymzpvrzovplrzkrtoqmwvpmmxqpumqkt
    Description From Last Updated

    One blank line between bullet points.

    chipx86chipx86

    Two blank lines.

    chipx86chipx86

    Some of these have a trailing period, some don't.

    chipx86chipx86
    maubin
    1. Ship It!
    2. 
        
    chipx86
    1. Some small consistency nits, but otherwise looks good.

    2. NEWS.md (Diff revision 1)
       
       
       
       
      Show all issues

      One blank line between bullet points.

    3. NEWS.md (Diff revision 1)
       
       
       
       
      Show all issues

      Two blank lines.

    4. README.md (Diff revision 1)
       
       
       
       
       
       
       
      Show all issues

      Some of these have a trailing period, some don't.

    5. 
        
    david
    david
    chipx86
    1. Ship It!
    2. 
        
    david
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to master (74b2d58)