eslint-config-bananass
Version:
ESLint Config for Bananass Framework.🍌
1,072 lines (926 loc) • 73.9 kB
JavaScript
/**
* @fileoverview This file follows:
*
* - The order of the rules listed on eslint.org.
* - @see https://eslint.org/docs/latest/rules
*
* - The best practices outlined in `eslint-config-airbnb-base@19.0.4`.
* - @see https://github.com/airbnb/javascript/tree/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules
*
* - The rules disabled by `eslint-config-prettier@9.1.0`.
* - @see https://github.com/prettier/eslint-config-prettier/blob/v9.1.0/index.js
*/
/* eslint-disable import/prefer-default-export -- Intentionally using named exports */
// --------------------------------------------------------------------------------
// Typedef
// --------------------------------------------------------------------------------
/**
* @import { Linter } from "eslint";
* @import { ESLintRules } from "eslint/rules";
*/
// --------------------------------------------------------------------------------
// Export
// --------------------------------------------------------------------------------
/** @type {Linter.RulesRecord} */
export const eslintRules = /** @satisfies {Partial<ESLintRules>} */ ({
// ------------------------------------------------------------------------------
// #region Possible Problems
/**
* Enforce `return` statements in callbacks of array methods.
* @see https://eslint.org/docs/latest/rules/array-callback-return (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L9 (airbnb-base)
*/
'array-callback-return': ['error', { allowImplicit: true }],
/**
* Require `super()` calls in constructors.
* @see https://eslint.org/docs/latest/rules/constructor-super (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/es6.js#L31 (airbnb-base)
*/
'constructor-super': 'error',
/**
* Enforce `for` loop update clause moving the counter in the right direction.
* @see https://eslint.org/docs/latest/rules/for-direction (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L5 (airbnb-base)
*/
'for-direction': 'error',
/**
* Enforce return statements in getters.
* @see https://eslint.org/docs/latest/rules/getter-return (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L9 (airbnb-base)
*/
'getter-return': ['error', { allowImplicit: true }],
/**
* Disallow using an async function as a Promise executor.
* @see https://eslint.org/docs/latest/rules/no-async-promise-executor (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L13 (airbnb-base)
*/
'no-async-promise-executor': 'error',
/**
* Disallow `await` inside of loops.
* @see https://eslint.org/docs/latest/rules/no-await-in-loop (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L17 (airbnb-base)
*/
'no-await-in-loop': 'error',
/**
* Disallow reassigning class members.
* @see https://eslint.org/docs/latest/rules/no-class-assign (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/es6.js#L39 (airbnb-base)
*/
'no-class-assign': 'error',
/**
* Disallow comparing against `-0`.
* @see https://eslint.org/docs/latest/rules/no-compare-neg-zero (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L21 (airbnb-base)
*/
'no-compare-neg-zero': 'error',
/**
* Disallow assignment operators in conditional expressions.
* @see https://eslint.org/docs/latest/rules/no-cond-assign (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L24 (airbnb-base)
*/
'no-cond-assign': ['error', 'except-parens'],
/**
* Disallow reassigning `const` variables.
* @see https://eslint.org/docs/latest/rules/no-const-assign (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/es6.js#L48 (airbnb-base)
*/
'no-const-assign': 'error',
/**
* Disallow expressions where the operation doesn't affect the value.
* @description This rule is not included in `airbnb-base`.
* @see https://eslint.org/docs/latest/rules/no-constant-binary-expression (eslint)
*/
'no-constant-binary-expression': 'error',
/**
* Disallow constant expressions in conditions.
* @see https://eslint.org/docs/latest/rules/no-constant-condition (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L30 (airbnb-base)
*/
'no-constant-condition': 'warn',
/**
* Disallow returning value from constructor.
* @see https://eslint.org/docs/latest/rules/no-constructor-return (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L82 (airbnb-base)
*/
'no-constructor-return': 'error',
/**
* Disallow control characters in regular expressions.
* @see https://eslint.org/docs/latest/rules/no-control-regex (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L33 (airbnb-base)
*/
'no-control-regex': 'error',
/**
* Disallow the use of debugger.
* @see https://eslint.org/docs/latest/rules/no-debugger (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L36 (airbnb-base)
*/
'no-debugger': 'error',
/**
* Disallow duplicate arguments in function definitions.
* @see https://eslint.org/docs/latest/rules/no-dupe-args (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L39 (airbnb-base)
*/
'no-dupe-args': 'error',
/**
* Disallow duplicate class members.
* @see https://eslint.org/docs/latest/rules/no-dupe-class-members (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/es6.js#L52 (airbnb-base)
*/
'no-dupe-class-members': 'error',
/**
* Disallow duplicate conditions in if-else-if chains.
* @see https://eslint.org/docs/latest/rules/no-dupe-else-if (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L43 (airbnb-base)
*/
'no-dupe-else-if': 'error',
/**
* Disallow duplicate keys in object literals.
* @see https://eslint.org/docs/latest/rules/no-dupe-keys (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L46 (airbnb-base)
*/
'no-dupe-keys': 'error',
/**
* Disallow duplicate case labels.
* @see https://eslint.org/docs/latest/rules/no-duplicate-case (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L49 (airbnb-base)
*/
'no-duplicate-case': 'error',
/**
* Disallow duplicate module imports.
* @description Replaced by [import/no-duplicates](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-duplicates.md). Note that it's `'off'`.
* @see https://eslint.org/docs/latest/rules/no-duplicate-imports (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/es6.js#L57 (airbnb-base)
*/
'no-duplicate-imports': 'off',
/**
* Disallow empty character classes in regular expressions.
* @see https://eslint.org/docs/latest/rules/no-empty-character-class (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L55 (airbnb-base)
*/
'no-empty-character-class': 'error',
/**
* Disallow empty destructuring patterns.
* @see https://eslint.org/docs/latest/rules/no-empty-pattern (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L104 (airbnb-base)
*/
'no-empty-pattern': 'error',
/**
* Disallow reassigning exceptions in `catch` clauses.
* @see https://eslint.org/docs/latest/rules/no-ex-assign (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L58 (airbnb-base)
*/
'no-ex-assign': 'error',
/**
* Disallow fallthrough of `case` statements.
* @see https://eslint.org/docs/latest/rules/no-fallthrough (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L128 (airbnb-base)
*/
'no-fallthrough': 'error',
/**
* Disallow reassigning `function` declarations.
* @see https://eslint.org/docs/latest/rules/no-func-assign (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L78 (airbnb-base)
*/
'no-func-assign': 'error',
/**
* Disallow assigning to imported bindings.
* @see https://eslint.org/docs/latest/rules/no-import-assign (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L81 (airbnb-base)
*/
'no-import-assign': 'error',
/**
* Disallow variable or `function` declarations in nested blocks.
* @see https://eslint.org/docs/latest/rules/no-inner-declarations (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L84 (airbnb-base)
*/
'no-inner-declarations': 'error',
/**
* Disallow invalid regular expression strings in `RegExp` constructors.
* @see https://eslint.org/docs/latest/rules/no-invalid-regexp (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L87 (airbnb-base)
*/
'no-invalid-regexp': 'error',
/**
* Disallow irregular whitespace.
* @see https://eslint.org/docs/latest/rules/no-irregular-whitespace (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L90 (airbnb-base)
*/
'no-irregular-whitespace': 'error',
/**
* Disallow literal numbers that lose precision.
* @see https://eslint.org/docs/latest/rules/no-loss-of-precision (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L94 (airbnb-base)
*/
'no-loss-of-precision': 'error',
/**
* Disallow characters which are made with multiple code points in character class syntax.
* @see https://eslint.org/docs/latest/rules/no-misleading-character-class (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L98 (airbnb-base)
*/
'no-misleading-character-class': 'error',
/**
* Disallow `new` operators with global non-constructor functions.
* @description This rule is not included in `airbnb-base`.
* @see https://eslint.org/docs/latest/rules/no-new-native-nonconstructor (eslint)
*/
'no-new-native-nonconstructor': 'error',
/**
* Disallow calling global object properties as functions.
* @see https://eslint.org/docs/latest/rules/no-obj-calls (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L101 (airbnb-base)
*/
'no-obj-calls': 'error',
/**
* Disallow returning values from Promise executor functions.
* @see https://eslint.org/docs/latest/rules/no-promise-executor-return (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L105 (airbnb-base)
*/
'no-promise-executor-return': 'error',
/**
* Disallow calling some `Object.prototype` methods directly on objects.
* @see https://eslint.org/docs/latest/rules/no-prototype-builtins (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L109 (airbnb-base)
*/
'no-prototype-builtins': 'error',
/**
* Disallow assignments where both sides are exactly the same.
* - `props` - if this is `true`, `no-self-assign` rule warns self-assignments of properties. Default is `true`.
* @see https://eslint.org/docs/latest/rules/no-self-assign (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L307-L309 (airbnb-base)
*/
'no-self-assign': 'error',
/**
* Disallow comparisons where both sides are exactly the same.
* @see https://eslint.org/docs/latest/rules/no-self-compare (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L313 (airbnb-base)
*/
'no-self-compare': 'error',
/**
* Disallow returning values from setters.
* @see https://eslint.org/docs/latest/rules/no-setter-return (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L116 (airbnb-base)
*/
'no-setter-return': 'error',
/**
* Disallow sparse arrays.
* @see https://eslint.org/docs/latest/rules/no-sparse-arrays (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L119 (airbnb-base)
*/
'no-sparse-arrays': 'error',
/**
* Disallow template literal placeholder syntax in regular strings.
* @see https://eslint.org/docs/latest/rules/no-template-curly-in-string (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L123 (airbnb-base)
*/
'no-template-curly-in-string': 'error',
/**
* Disallow `this`/`super` before calling `super()` in constructors.
* @see https://eslint.org/docs/latest/rules/no-this-before-super (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/es6.js#L81 (airbnb-base)
*/
'no-this-before-super': 'error',
/**
* Disallow `let` or `var` variables that are read but never assigned.
* @description This rule is not included in `airbnb-base`.
* @see https://eslint.org/docs/latest/rules/no-unassigned-vars (eslint)
*/
'no-unassigned-vars': 'error',
/**
* Disallow the use of undeclared variables unless mentioned in global comments.
* @see https://eslint.org/docs/latest/rules/no-undef (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/variables.js#L40 (airbnb-base)
*/
'no-undef': 'error',
/**
* Disallow confusing multiline expressions.
* @see https://eslint.org/docs/latest/rules/no-unexpected-multiline (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L127 (airbnb-base)
* @see https://github.com/prettier/eslint-config-prettier/blob/v9.1.0/index.js#L14 (prettier)
*/
'no-unexpected-multiline': 'off',
/**
* Disallow unmodified loop conditions.
* @description Note that it's `'off'`.
* @see https://eslint.org/docs/latest/rules/no-unmodified-loop-condition (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L325 (airbnb-base)
*/
'no-unmodified-loop-condition': 'off',
/**
* Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements.
* @see https://eslint.org/docs/latest/rules/no-unreachable (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L130 (airbnb-base)
*/
'no-unreachable': 'error',
/**
* Disallow loops with a body that allows only one iteration.
* - "ignore" - an optional array of loop types that will be ignored by this rule.
* @see https://eslint.org/docs/latest/rules/no-unreachable-loop (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L134-L136 (airbnb-base)
*/
'no-unreachable-loop': 'error',
/**
* Disallow control flow statements in `finally` blocks.
* @see https://eslint.org/docs/latest/rules/no-unsafe-finally (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L140 (airbnb-base)
*/
'no-unsafe-finally': 'error',
/**
* Disallow negating the left operand of relational operators.
* @see https://eslint.org/docs/latest/rules/no-unsafe-negation (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L144 (airbnb-base)
*/
'no-unsafe-negation': 'error',
/**
* Disallow use of optional chaining in contexts where the `undefined` value is not allowed.
* @see https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L148 (airbnb-base)
*/
'no-unsafe-optional-chaining': ['error', { disallowArithmeticOperators: true }],
/**
* Disallow unused private class members.
* @see https://eslint.org/docs/latest/rules/no-unused-private-class-members (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L153 (airbnb-base)
*/
'no-unused-private-class-members': 'error',
/**
* Disallow unused variables.
* @see https://eslint.org/docs/latest/rules/no-unused-vars (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/variables.js#L51 (airbnb-base)
*/
'no-unused-vars': [
'error',
{ vars: 'all', args: 'after-used', ignoreRestSiblings: true },
],
/**
* Disallow the use of variables before they are defined.
* @description Different from `airbnb-base` which has `functions: true`.
* @see https://eslint.org/docs/latest/rules/no-use-before-define (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/variables.js#L54 (airbnb-base)
*/
'no-use-before-define': [
'error',
{ functions: false, classes: true, variables: true, allowNamedExports: false },
],
/**
* Disallow variable assignments when the value is not used.
* @description This rule is not included in `airbnb-base`.
* @see https://eslint.org/docs/latest/rules/no-useless-assignment (eslint)
*/
'no-useless-assignment': 'error',
/**
* Disallow useless backreferences in regular expressions.
* @see https://eslint.org/docs/latest/rules/no-useless-backreference (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L157 (airbnb-base)
*/
'no-useless-backreference': 'error',
/**
* Disallow assignments that can lead to race conditions due to usage of `await` or `yield`.
* @description Note that it's `'off'`. (`airbnb-base` says "not enabled because it is very buggy".)
* @see https://eslint.org/docs/latest/rules/require-atomic-updates (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L166 (airbnb-base)
*/
'require-atomic-updates': 'off',
/**
* Require calls to `isNaN()` when checking for `NaN`.
* @see https://eslint.org/docs/latest/rules/use-isnan (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L169 (airbnb-base)
*/
'use-isnan': 'error',
/**
* Enforce comparing typeof expressions against `valid` strings
* - `"requireStringLiterals"`: `true` allows the comparison of `typeof` expressions with only string literals or other `typeof` expressions, and disallows comparisons to any other value. Default is `false`.
* @see https://eslint.org/docs/latest/rules/valid-typeof (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L177 (airbnb-base)
*/
'valid-typeof': ['error', { requireStringLiterals: true }],
// #endregion Possible Problems
// ------------------------------------------------------------------------------
// ------------------------------------------------------------------------------
// #region Suggestions
/**
* Enforce getter and setter pairs in objects and classes.
* @see https://eslint.org/docs/latest/rules/accessor-pairs (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L5 (airbnb-base)
*/
'accessor-pairs': 'off',
/**
* Require braces around arrow function bodies.
* @see https://eslint.org/docs/latest/rules/arrow-body-style (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/es6.js#L18-L20 (airbnb-base)
*/
'arrow-body-style': [
'error',
'as-needed',
{
requireReturnForObjectLiteral: false,
},
],
/**
* Enforce the use of variables within the scope they are defined.
* @see https://eslint.org/docs/latest/rules/block-scoped-var (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L13 (airbnb-base)
*/
'block-scoped-var': 'error',
/**
* Enforce camelcase naming convention.
* @see https://eslint.org/docs/latest/rules/camelcase (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L24 (airbnb-base)
*/
camelcase: [
'error',
{
properties: 'never', // Does not check property names.
ignoreDestructuring: true,
},
],
/**
* Enforce or disallow capitalization of the first letter of a comment.
* @description I've deleted unnecessary options from airbnb-base since the rule is set to `'off'`.
* @see https://eslint.org/docs/latest/rules/capitalized-comments (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L28-L39 (airbnb-base)
*/
'capitalized-comments': 'off',
/**
* Enforce that class methods utilize `this`.
* @description I've deleted unnecessary options from airbnb-base.
* @see https://eslint.org/docs/latest/rules/class-methods-use-this (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L21-L23 (airbnb-base)
*/
'class-methods-use-this': 'error',
/**
* Enforce a maximum cyclomatic complexity allowed in a program.
* @description I've deleted unnecessary options from airbnb-base.
* @see https://eslint.org/docs/latest/rules/complexity (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L17 (airbnb-base)
*/
complexity: 'off',
/**
* Require `return` statements to either always or never specify values.
* @see https://eslint.org/docs/latest/rules/consistent-return (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L27 (airbnb-base)
*/
'consistent-return': 'error',
/**
* Enforce consistent naming when capturing the current execution context.
* @see https://eslint.org/docs/latest/rules/consistent-this (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L74 (airbnb-base)
*/
'consistent-this': 'off',
/**
* Enforce consistent brace style for all control statements.
* @see https://eslint.org/docs/latest/rules/curly (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L31 (airbnb-base)
* @see https://github.com/prettier/eslint-config-prettier/blob/v9.1.0/index.js#L13 (prettier)
*/
curly: 'off',
/**
* Require `default` cases in `switch` statements.
* @description I've deleted unnecessary options from airbnb-base.
* @see https://eslint.org/docs/latest/rules/default-case (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L35 (airbnb-base)
*/
'default-case': 'error',
/**
* Enforce `default` clauses in `switch` statements to be last.
* @see https://eslint.org/docs/latest/rules/default-case-last (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L39 (airbnb-base)
*/
'default-case-last': 'error',
/**
* Enforce default parameters to be last.
* @see https://eslint.org/docs/latest/rules/default-param-last (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L42 (airbnb-base)
*/
'default-param-last': 'error',
/**
* Enforce dot notation whenever possible.
* @description I've deleted unnecessary additional options from airbnb-base.
* @see https://eslint.org/docs/latest/rules/dot-notation (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L46 (airbnb-base)
*/
'dot-notation': 'error',
/**
* Require the use of `===` and `!==`.
* @see https://eslint.org/docs/latest/rules/eqeqeq (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L54 (airbnb-base)
*/
eqeqeq: ['error', 'always', { null: 'ignore' }],
/**
* Require function names to match the name of the variable or property to which they are assigned.
* @description I've deleted unnecessary options from airbnb-base since the rule is set to `'off'`.
* @see https://eslint.org/docs/latest/rules/func-name-matching (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L89-L92 (airbnb-base)
*/
'func-name-matching': 'off',
/**
* Require or disallow named `function` expressions.
* @description I added `'as-needed'` option.
* @see https://eslint.org/docs/latest/rules/func-names (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L96 (airbnb-base)
*/
'func-names': ['warn', 'as-needed'],
/**
* Enforce the consistent use of either `function` declarations or expressions assigned to variables.
* @description I've deleted unnecessary options from airbnb-base since the rule is set to `'off'`.
* @see https://eslint.org/docs/latest/rules/func-style (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L101 (airbnb-base)
*/
'func-style': 'off',
/**
* Require grouped accessor pairs in object literals and classes.
* @see https://eslint.org/docs/latest/rules/grouped-accessor-pairs (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L58 (airbnb-base)
*/
'grouped-accessor-pairs': 'error',
/**
* Require `for`-`in` loops to include an `if` statement.
* @see https://eslint.org/docs/latest/rules/guard-for-in (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L62 (airbnb-base)
*/
'guard-for-in': 'error',
/**
* Disallow specified identifiers.
* @see https://eslint.org/docs/latest/rules/id-denylist (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L109 (airbnb-base)
*/
'id-denylist': 'off',
/**
* Enforce minimum and maximum identifier lengths.
* @see https://eslint.org/docs/latest/rules/id-length (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L113 (airbnb-base)
*/
'id-length': 'off',
/**
* Require identifiers to match a specified regular expression.
* @see https://eslint.org/docs/latest/rules/id-match (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L116 (airbnb-base)
*/
'id-match': 'off',
/**
* Require or disallow initialization in variable declarations.
* @see https://eslint.org/docs/latest/rules/init-declarations (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/variables.js#L6 (airbnb-base)
*/
'init-declarations': 'off',
/**
* Require or disallow logical assignment operator shorthand.
* @description This rule is not included in `airbnb-base@19.0.4`. Stylistic choice, so I set it to `'off'`.
* @see https://eslint.org/docs/latest/rules/logical-assignment-operators (eslint)
*/
'logical-assignment-operators': 'off',
/**
* Enforce a maximum number of classes per file.
* @see https://eslint.org/docs/latest/rules/max-classes-per-file (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L66 (airbnb-base)
*/
'max-classes-per-file': ['error', 1],
/**
* Enforce a maximum depth that blocks can be nested.
* @description I've deleted unnecessary options from airbnb-base since the rule is set to `'off'`.
* @see https://eslint.org/docs/latest/rules/max-depth (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L195 (airbnb-base)
*/
'max-depth': 'off',
/**
* Enforce a maximum number of lines per file.
* @description I've deleted unnecessary options from airbnb-base since the rule is set to `'off'`.
* @see https://eslint.org/docs/latest/rules/max-lines (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L209-L213 (airbnb-base)
*/
'max-lines': 'off',
/**
* Enforce a maximum number of lines of code in a function.
* @see https://eslint.org/docs/latest/rules/max-lines-per-function (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L217-L222 (airbnb-base)
*/
'max-lines-per-function': 'off',
/**
* Enforce a maximum depth that callbacks can be nested.
* @see https://eslint.org/docs/latest/rules/max-nested-callbacks (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L225 (airbnb-base)
*/
'max-nested-callbacks': 'off',
/**
* Enforce a maximum number of parameters in function definitions.
* @description I've deleted unnecessary options from airbnb-base since the rule is set to `'off'`.
* @see https://eslint.org/docs/latest/rules/max-params (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L228 (airbnb-base)
*/
'max-params': 'off',
/**
* Enforce a maximum number of statements allowed in function blocks.
* @description I've deleted unnecessary options from airbnb-base since the rule is set to `'off'`.
* @see https://eslint.org/docs/latest/rules/max-statements (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L231 (airbnb-base)
*/
'max-statements': 'off',
/**
* Require constructor names to begin with a capital letter.
* @see https://eslint.org/docs/latest/rules/new-cap (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L247-L252 (airbnb-base)
*/
'new-cap': [
'error',
{
newIsCap: true,
newIsCapExceptions: [],
capIsNew: false,
capIsNewExceptions: ['Immutable.Map', 'Immutable.Set', 'Immutable.List'],
},
],
/**
* Disallow the use of `alert`, `confirm`, and `prompt`.
* @see https://eslint.org/docs/latest/rules/no-alert (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L70 (airbnb-base)
*/
'no-alert': 'error',
/**
* Disallow `Array` constructors.
* @see https://eslint.org/docs/latest/rules/no-array-constructor (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L270 (airbnb-base)
*/
'no-array-constructor': 'error',
/**
* Disallow bitwise operators.
* @description I've changed the rule to `'warn'` from `'error'`.
* @see https://eslint.org/docs/latest/rules/no-bitwise (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L274 (airbnb-base)
*/
'no-bitwise': 'warn',
/**
* Disallow the use of `arguments.caller` or `arguments.callee`.
* @see https://eslint.org/docs/latest/rules/no-caller (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L74 (airbnb-base)
*/
'no-caller': 'error',
/**
* Disallow lexical declarations in `case` clauses.
* @see https://eslint.org/docs/latest/rules/no-case-declarations (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L78 (airbnb-base)
*/
'no-case-declarations': 'error',
/**
* Disallow the use of `console`.
* @see https://eslint.org/docs/latest/rules/no-console (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L27 (airbnb-base)
*/
'no-console': 'error',
/**
* Disallow `continue` statements.
* @description I've changed the rule to `'off'` from `'error'`.
* @see https://eslint.org/docs/latest/rules/no-continue (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L278 (airbnb-base)
*/
'no-continue': 'off',
/**
* Disallow deleting variables.
* @see https://eslint.org/docs/latest/rules/no-delete-var (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/variables.js#L12 (airbnb-base)
*/
'no-delete-var': 'error',
/**
* Disallow equal signs explicitly at the beginning of regular expressions.
* @see https://eslint.org/docs/latest/rules/no-div-regex (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L86 (airbnb-base)
*/
'no-div-regex': 'off',
/**
* Disallow `else` blocks after `return` statements in `if` statements.
* @description I've changed the rule to `'off'` from `'error'`. I think this rule is more about stylistic choices. So, I don't want to enforce it.
* @see https://eslint.org/docs/latest/rules/no-else-return (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L90 (airbnb-base)
*/
'no-else-return': 'off',
/**
* Disallow empty block statements.
* @see https://eslint.org/docs/latest/rules/no-empty (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L52 (airbnb-base)
*/
'no-empty': 'error',
/**
* Disallow empty functions.
* @see https://eslint.org/docs/latest/rules/no-empty-function (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L94-L100 (airbnb-base)
*/
'no-empty-function': [
'error',
{
allow: ['arrowFunctions', 'functions', 'methods'],
},
],
/**
* Disallow empty `static` blocks.
* @description This rule is not included in `airbnb-base@19.0.4`
* @see https://eslint.org/docs/latest/rules/no-empty-static-block (eslint)
*/
'no-empty-static-block': 'error',
/**
* Disallow `null` comparisons without type-checking operators.
* @description This rule is subset of `eqeqeq` rule. `eqeqeq` already includes this rule.
* @see https://eslint.org/docs/latest/rules/no-eq-null (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L108 (airbnb-base)
*/
'no-eq-null': 'off',
/**
* Disallow the use of `eval()`.
* @see https://eslint.org/docs/latest/rules/no-eval (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L112 (airbnb-base)
*/
'no-eval': 'error',
/**
* Disallow extending native types.
* @see https://eslint.org/docs/latest/rules/no-extend-native (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L116 (airbnb-base)
*/
'no-extend-native': 'error',
/**
* Disallow unnecessary calls to `.bind()`.
* @see https://eslint.org/docs/latest/rules/no-extra-bind (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L120 (airbnb-base)
*/
'no-extra-bind': 'error',
/**
* Disallow unnecessary boolean casts.
* @see https://eslint.org/docs/latest/rules/no-extra-boolean-cast (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/errors.js#L62 (airbnb-base)
*/
'no-extra-boolean-cast': 'error',
/**
* Disallow unnecessary labels.
* @see https://eslint.org/docs/latest/rules/no-extra-label (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L124 (airbnb-base)
*/
'no-extra-label': 'error',
/**
* Disallow assignments to native objects or read-only global variables.
* @description I've deleted unnecessary options from `airbnb-base`.
* @see https://eslint.org/docs/latest/rules/no-global-assign (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L136 (airbnb-base)
*/
'no-global-assign': 'error',
/**
* Disallow shorthand type conversions.
* @description I've deleted unnecessary options from airbnb-base since the rule is set to `'off'`. This rule is too tight to enforce.
* @see https://eslint.org/docs/latest/rules/no-implicit-coercion (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L144-L149 (airbnb-base)
*/
'no-implicit-coercion': 'off',
/**
* Disallow declarations in the global scope.
* @see https://eslint.org/docs/latest/rules/no-implicit-globals (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L153 (airbnb-base)
*/
'no-implicit-globals': 'off',
/**
* Disallow the use of `eval()`-like methods.
* @see https://eslint.org/docs/latest/rules/no-implied-eval (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L157 (airbnb-base)
*/
'no-implied-eval': 'error',
/**
* Disallow inline comments after code.
* @see https://eslint.org/docs/latest/rules/no-inline-comments (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L281 (airbnb-base)
*/
'no-inline-comments': 'off',
/**
* Disallow use of `this` in contexts where the value of `this` is `undefined`.
* @see https://eslint.org/docs/latest/rules/no-invalid-this (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L161 (airbnb-base)
*/
'no-invalid-this': 'off',
/**
* Disallow the use of the `__iterator__` property.
* @see https://eslint.org/docs/latest/rules/no-iterator (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L165 (airbnb-base)
*/
'no-iterator': 'error',
/**
* Disallow labels that share a name with a variable.
* @see https://eslint.org/docs/latest/rules/no-label-var (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/variables.js#L16 (airbnb-base)
*/
'no-label-var': 'error',
/**
* Disallow labeled statements.
* @description I've deleted unnecessary options from `airbnb-base`.
* @see https://eslint.org/docs/latest/rules/no-labels (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L169 (airbnb-base)
*/
'no-labels': 'error',
/**
* Disallow unnecessary nested blocks.
* @see https://eslint.org/docs/latest/rules/no-lone-blocks (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L173 (airbnb-base)
*/
'no-lone-blocks': 'error',
/**
* Disallow `if` statements as the only statement in `else` blocks.
* @see https://eslint.org/docs/latest/rules/no-lonely-if (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L285 (airbnb-base)
*/
'no-lonely-if': 'error',
/**
* Disallow function declarations that contain unsafe references inside loop statements.
* @see https://eslint.org/docs/latest/rules/no-loop-func (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L177 (airbnb-base)
*/
'no-loop-func': 'error',
/**
* Disallow magic numbers.
* @description I've deleted unnecessary options from airbnb-base since the rule is set to `'off'`.
* @see https://eslint.org/docs/latest/rules/no-magic-numbers (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L181-L186 (airbnb-base)
*/
'no-magic-numbers': 'off',
/**
* Disallow use of chained assignment expressions.
* @see https://eslint.org/docs/latest/rules/no-multi-assign (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L311 (airbnb-base)
*/
'no-multi-assign': 'error',
/**
* Disallow multiline strings.
* @see https://eslint.org/docs/latest/rules/no-multi-str (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L196 (airbnb-base)
*/
'no-multi-str': 'error',
/**
* Disallow negated conditions.
* @see https://eslint.org/docs/latest/rules/no-negated-condition (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L319 (airbnb-base)
*/
'no-negated-condition': 'off',
/**
* Disallow nested ternary expressions.
* @description I've changed the rule to `'off'` from `'error'`.
* @see https://eslint.org/docs/latest/rules/no-nested-ternary (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L322 (airbnb-base)
*/
'no-nested-ternary': 'off',
/**
* Disallow `new` operators outside of assignments or comparisons.
* @see https://eslint.org/docs/latest/rules/no-new (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L200 (airbnb-base)
*/
'no-new': 'error',
/**
* Disallow `new` operators with the `Function` object.
* @see https://eslint.org/docs/latest/rules/no-new-func (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L204 (airbnb-base)
*/
'no-new-func': 'error',
/**
* Disallow `new` operators with the `String`, `Number`, and `Boolean` objects.
* @see https://eslint.org/docs/latest/rules/no-new-wrappers (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L208 (airbnb-base)
*/
'no-new-wrappers': 'error',
/**
* Disallow `\8` and `\9` escape sequences in string literals.
* @see https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L212 (airbnb-base)
*/
'no-nonoctal-decimal-escape': 'error',
/**
* Disallow calls to the `Object` constructor without an argument.
* @description This rule is not included in `airbnb-base@19.0.4`.
* @see https://eslint.org/docs/latest/rules/no-object-constructor (eslint)
*/
'no-object-constructor': 'error',
/**
* Disallow octal literals.
* @description I've changed the rule to `'warn'` from `'error'`.
* @see https://eslint.org/docs/latest/rules/no-octal (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L216 (airbnb-base)
*/
'no-octal': 'warn',
/**
* Disallow octal escape sequences in string literals.
* @see https://eslint.org/docs/latest/rules/no-octal-escape (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L221 (airbnb-base)
*/
'no-octal-escape': 'error',
/**
* Disallow reassigning `function` parameters.
* @see https://eslint.org/docs/latest/rules/no-param-reassign (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L226-L241 (airbnb-base)
*/
'no-param-reassign': ['error', { props: false }],
/**
* Disallow the unary operators `++` and `--`.
* @description I've changed the rule to `'off'` from `'error'`.
* @see https://eslint.org/docs/latest/rules/no-plusplus (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/style.js#L329 (airbnb-base)
*/
'no-plusplus': 'off',
/**
* Disallow the use of the `__proto__` property.
* @see https://eslint.org/docs/latest/rules/no-proto (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/packages/eslint-config-airbnb-base/rules/best-practices.js#L245 (airbnb-base)
*/
'no-proto': 'error',
/**
* Disallow variable redeclaration.
* @see https://eslint.org/docs/latest/rules/no-redeclare (eslint)
* @see https://github.com/airbnb/javascript/blob/eslint-config-airbnb-v19.0.4/