kibana/packages/kbn-eslint-config/javascript.js
Thomas Watson a79e9c7374
Remove eslint-plugin-prefer-object-spread dependency (#162439)
Remove the `eslint-plugin-prefer-object-spread` dependency as the
`prefer-object-spread` rule has been part of ESLint since v5
2023-07-25 10:04:44 +02:00

100 lines
2.9 KiB
JavaScript

const RESTRICTED_GLOBALS = require('./restricted_globals');
const RESTRICTED_MODULES = { paths: ['gulp-util'] };
module.exports = {
overrides: [
/**
* Main JS configuration
*/
{
files: ['**/*.js', '**/*.mjs'],
parser: require.resolve('@babel/eslint-parser'),
plugins: [
'mocha',
'@babel',
'import',
'no-unsanitized',
],
env: {
es6: true,
node: true,
mocha: true,
browser: true,
},
parserOptions: {
sourceType: 'module',
ecmaVersion: 2018,
requireConfigFile: false,
babelOptions: {
presets: ['@kbn/babel-preset/node_preset']
},
},
rules: {
'block-scoped-var': 'error',
camelcase: [ 'error', { properties: 'never', allow: ['^UNSAFE_'] } ],
'consistent-return': 'off',
'dot-notation': [ 'error', { allowKeywords: true } ],
eqeqeq: [ 'error', 'allow-null' ],
'guard-for-in': 'error',
'new-cap': [ 'error', { capIsNewExceptions: [ 'Private' ] } ],
'no-bitwise': 'off',
'no-caller': 'error',
'no-cond-assign': 'off',
'no-const-assign': 'error',
'no-debugger': 'error',
'no-empty': 'error',
'no-eval': 'error',
'no-extend-native': 'error',
'no-global-assign': 'error',
'no-irregular-whitespace': 'error',
'no-iterator': 'error',
'no-loop-func': 'error',
'no-multi-str': 'off',
'no-nested-ternary': 'error',
'no-new': 'off',
'no-path-concat': 'off',
'no-proto': 'error',
'no-redeclare': 'error',
'no-restricted-globals': ['error', ...RESTRICTED_GLOBALS],
'no-restricted-imports': [2, RESTRICTED_MODULES],
'no-restricted-modules': [2, RESTRICTED_MODULES],
'no-return-assign': 'off',
'no-script-url': 'error',
'no-sequences': 'error',
'no-shadow': 'off',
'no-undef': 'error',
'no-underscore-dangle': 'off',
'no-unsanitized/method': 'error',
'no-unsanitized/property': 'error',
'no-unused-expressions': 'off',
'no-unused-vars': [ 'error' ],
'no-use-before-define': [ 'error', 'nofunc' ],
'no-var': 'error',
'no-with': 'error',
'one-var': [ 'error', 'never' ],
'prefer-const': 'error',
strict: [ 'error', 'never' ],
'valid-typeof': 'error',
yoda: 'off',
'mocha/handle-done-callback': 'error',
'mocha/no-exclusive-tests': 'error',
'import/named': 'error',
'import/namespace': 'error',
'import/default': 'error',
'import/export': 'error',
'import/no-named-as-default': 'error',
'import/no-named-as-default-member': 'error',
'import/no-duplicates': 'error',
'import/no-dynamic-require': 'error',
'prefer-object-spread': 'error',
}
},
]
};