From 7c23fb100287cc3e168e5bf43091e1c41987403d Mon Sep 17 00:00:00 2001 From: Martin Artnik Date: Wed, 28 May 2025 14:20:52 +0200 Subject: [PATCH] Migrate eslint config [SCI-11867] --- .eslintignore | 2 -- .eslintrc.json | 47 --------------------------------- eslint.config.mjs | 67 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 49 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.json create mode 100644 eslint.config.mjs diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 0a0304580..000000000 --- a/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -public/ diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 4b2f4571f..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "env": { - "browser": true, - "jquery": true, - "es6": true, - "node": true - }, - "extends": ["airbnb", "plugin:vue/base"], - "rules": { - "import/extensions": "off", - "import/no-unresolved": "off", - "spaced-comment": [ - "error", - "always", - { - "markers": ["="] - } - ], - "lines-around-comment": [ - "warn", - { - "beforeLineComment": false - } - ], - "max-len": [ - "error", - { - "code": 180 - } - ], - "vue/max-len": [ - "error", - { - "code": 180, - "template": 240, - "tabWidth": 2 - } - ], - "comma-dangle": [ - "error", - "never" - ] - }, - "globals": { - "_": true - } -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..49a0ff266 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,67 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import globals from 'globals'; +import { defineConfig, globalIgnores } from 'eslint/config'; + +// eslint-disable-next-line no-underscore-dangle +const __filename = fileURLToPath(import.meta.url); +// eslint-disable-next-line no-underscore-dangle +const __dirname = path.dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname +}); + +export default defineConfig([ + globalIgnores(['node_modules', './app/assets/builds/**', './public/']), + { + languageOptions: { + ecmaVersion: 2021, + sourceType: 'module', + globals: { + ...globals.browser, + ...globals.node, + ...globals.es6, + jquery: true, + _: true + } + } + }, + // Migrate extends and plugins using FlatCompat + ...compat.extends('airbnb', 'plugin:vue/base'), + { + rules: { + 'import/extensions': 'off', + 'import/no-unresolved': 'off', + 'spaced-comment': [ + 'error', + 'always', + { + markers: ['='] + } + ], + 'lines-around-comment': [ + 'warn', + { + beforeLineComment: false + } + ], + 'max-len': [ + 'error', + { + code: 180 + } + ], + 'vue/max-len': [ + 'error', + { + code: 180, + template: 240, + tabWidth: 2 + } + ], + 'comma-dangle': ['error', 'never'] + } + } +]);