green-code-initiative / creedengo-javascript

Reduce the environmental footprint of your JS/TS software programs
https://green-code-initiative.org
GNU General Public License v3.0
21 stars 18 forks source link

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

Open AMorgaut opened 3 months ago

AMorgaut commented 3 months 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 3 months 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 3 months ago

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

hrenaud commented 1 month ago

Hello @utarwyn. Is this PR will be merged soon?

utarwyn commented 1 month ago

@hrenaud Hello utarwyn. Is this PR will be merged soon?

Hello! Sorry for my lack of responsiveness on this topic, I've been really busy lately. I have left comments on the associated PR 👀