arui-presets-lint
Version:
Config files for arui-apps
61 lines (60 loc) • 3.35 kB
JavaScript
import {} from 'eslint';
import { GLOBAL_SCRIPTS_SCOPE } from '../constants.js';
export const variablesConfig = {
name: 'arui-presets-lint/variables',
files: [GLOBAL_SCRIPTS_SCOPE],
rules: {
// Требует/запрещает инициализацию переменных при объявлении
// https://eslint.org/docs/rules/init-declarations
'init-declarations': 'off',
// Запрещает метки, совпадающие с именами переменных
// https://eslint.org/docs/rules/no-label-var
'no-label-var': 'error',
// Запрещает определённые глобальные переменные
// https://eslint.org/docs/rules/no-restricted-globals
'no-restricted-globals': [
'error',
{
name: 'isFinite',
message: 'Use Number.isFinite instead https://github.com/airbnb/javascript#standard-library--isfinite',
},
{
name: 'isNaN',
message: 'Use Number.isNaN instead https://github.com/airbnb/javascript#standard-library--isnan',
},
],
// Запрещает объявление переменных, уже объявленных во внешней области
// https://eslint.org/docs/latest/rules/no-shadow
'no-shadow': 'warn',
// Запрещает использовать undefined при инициализации переменных
// https://eslint.org/docs/rules/no-undef-init
'no-undef-init': 'error',
// Запрещает объявление неиспользуемых переменных
// https://eslint.org/docs/rules/no-unused-vars
'no-unused-vars': ['error', { vars: 'all', args: 'after-used', ignoreRestSiblings: true }],
// Запрещает использование переменных до их объявления
// https://eslint.org/docs/rules/no-use-before-define
'no-use-before-define': ['error', { functions: false, classes: true, variables: true }],
// Запрещает унарные операторы ++ и --
// https://eslint.org/docs/latest/rules/no-plusplus
'no-plusplus': ['error', { allowForLoopAfterthoughts: true }],
// Требует объявлять все переменные в начале области видимости
// https://eslint.org/docs/rules/vars-on-top
'vars-on-top': 'error',
// Рекомендует const для переменных, не изменяемых после объявления
// https://eslint.org/docs/latest/rules/prefer-const
'prefer-const': [
'error',
{
destructuring: 'any',
ignoreReadBeforeAssign: true,
},
],
// Запрещает объявления функций/переменных во вложенных блоках
// https://eslint.org/docs/rules/no-inner-declarations
'no-inner-declarations': 'error',
// Запрещает использование оператора void
// https://eslint.org/docs/rules/no-void
'no-void': ['error', { allowAsStatement: true }],
},
};