green-code-initiative / ecoCode-javascript

Reduce the environmental footprint of your JS/TS software programs
https://ecocode.io
GNU General Public License v3.0
18 stars 17 forks source link

Make the ESLint plugin compatible with the last ESLint versions with flat configurations #50

Open AMorgaut opened 1 month ago

AMorgaut commented 1 month ago

Current Behavior

The plugin ESLint plugin is not compatible with the latest ESLint versions which requires flat configuration

Expected Behavior

It should be possible to integrate the Ecocode ESLint config into projects using recent ESLint versions which don't support .eslintrc config file anymore but require an eslint.config.json file with flat configurations

Steps to Reproduce

  1. update a project to ESLint 8.23
  2. run ESLint

Failure Logs

No response

ecoCode-javascript Version

1.15

SonarQube Version

N/A

Additional Information

The plugin should follow the ESLint migration guide https://eslint.org/docs/latest/extend/plugin-migration-flat-config

AMorgaut commented 1 month ago

A working patch was made in ecocode dashboard

// patch ecocode plugin for flat config support
// see https://eslint.org/docs/latest/extend/plugin-migration-flat-config
if (!ecocode.configs['flat/recommended'])  {
    ecocode.meta = {
      name: "@ecocode/eslint-plugin",
      version: "1.5.0"
    }
    ecocode.configs['flat/recommended'] = {
      plugins: {
        '@ecocode': ecocode
      },
      rules: ecocode.configs.recommended.rules,
    };
}

https://github.com/green-code-initiative/ecoCode-dashboard/blob/bb845d5bc36f4ab8f12506fd998ba9720ed0a9df/eslint.config.js#L23

AMorgaut commented 1 month ago

Created the pull request #51 which will need to be tested