Files
freeCodeCamp/client/eslint.config.mjs
2025-11-21 19:21:46 +05:30

79 lines
1.4 KiB
JavaScript

import {
config,
configTypeChecked,
configReact,
configTestingLibrary,
jsFiles,
tsFiles
} from '@freecodecamp/eslint-config/base';
import globals from 'globals';
import { defineConfig, globalIgnores } from 'eslint/config';
const baseLanguageOptions = {
globals: {
...globals.browser,
...globals.mocha,
...globals.node,
Promise: true,
window: true,
$: true,
ga: true,
jQuery: true,
router: true,
globalThis: true
}
};
const baseConfig = {
settings: {
react: {
version: '16.4.2'
},
'import/resolver': {
typescript: true,
node: true
}
},
rules: {
'import/no-cycle': [
2,
{
maxDepth: 2
}
],
'react/prop-types': 'off',
'react/jsx-no-useless-fragment': 'error'
}
};
// Order matters here; later configs can override settings in earlier ones.
export default defineConfig(
globalIgnores(['static', '.cache', 'public']),
{
files: jsFiles,
extends: [configReact, configTestingLibrary, config],
...baseConfig,
languageOptions: {
...baseLanguageOptions,
parserOptions: {
babelOptions: {
presets: ['@babel/preset-react'],
configFile: './.babelrc.js'
}
}
}
},
{
files: tsFiles,
extends: [configReact, configTestingLibrary, configTypeChecked],
...baseConfig,
languageOptions: {
...baseLanguageOptions
}
}
);