eslint-plugin-playlyfe
Version:
custom eslint stuff for playlyfe
220 lines (219 loc) • 8.46 kB
JavaScript
;
module.exports = {
extends: [],
rules: {
// enforces getter/setter pairs in objects
'accessor-pairs': 'error',
// enforces return statements in callbacks of array's methods
// http://eslint.org/docs/rules/array-callback-return
'array-callback-return': 'error',
// treat var statements as if they were block scoped
'block-scoped-var': 'error',
// @ TODO: check use case and enable later
'class-methods-use-this': 'off',
// specify the maximum cyclomatic complexity allowed in a program
// TODO: to test later can be enabled
complexity: 'error',
// require return statements to either always or never specify values
'consistent-return': 'error',
// specify curly brace conventions for all control statements
curly: ['error', 'all'],
// // require default case in switch statements
'default-case': 'error',
// enforces consistent newlines before or after dots
// http://eslint.org/docs/rules/dot-location
'dot-location': ['error', 'property'],
// encourages use of dot notation whenever possible
'dot-notation': ['error', {
allowKeywords: true
}],
// require the use of === and !==
// http://eslint.org/docs/rules/eqeqeq
eqeqeq: ['error', 'always', {
null: 'ignore'
}],
// make sure for-in loops have an if statement
'guard-for-in': 'error',
'max-classes-per-file': ['error', 1],
// disallow the use of alert, confirm, and prompt
'no-alert': 'error',
// disallow use of arguments.caller or arguments.callee
'no-caller': 'error',
// disallow lexical declarations in case/default clauses
// http://eslint.org/docs/rules/no-case-declarations.html
'no-case-declarations': 'error',
// disallow division operators explicitly at beginning of regular expression
// http://eslint.org/docs/rules/no-div-regex
'no-div-regex': 'error',
// disallow else after a return in an if
'no-else-return': 'error',
// disallow empty functions, except for standalone funcs/arrows
// http://eslint.org/docs/rules/no-empty-function
'no-empty-function': ['error', {
allow: [// 'functions', // not-allowed
// 'arrowFunctions', // not-allowed
// 'generatorFunctions', // not-allowed
// 'methods', // not-allowed
// 'generatorMethods', // not-allowed
// 'getters', // not-allowed
// 'setters', // not-allowed
// 'constructors', // not-allowed
]
}],
// disallow empty destructuring patterns
// http://eslint.org/docs/rules/no-empty-pattern
'no-empty-pattern': 'error',
// disallow comparisons to null without a type-checking operator
'no-eq-null': 'off',
// disallow use of eval()
'no-eval': 'error',
// disallow adding to native types
'no-extend-native': 'error',
// disallow unnecessary function binding
'no-extra-bind': 'error',
// disallow Unnecessary Labels
// http://eslint.org/docs/rules/no-extra-label
'no-extra-label': 'error',
// disallow fallthrough of case statements
'no-fallthrough': 'error',
// disallow the use of leading or trailing decimal points in numeric literals
'no-floating-decimal': 'error',
// disallow reassignments of native objects or read-only globals
// http://eslint.org/docs/rules/no-global-assign
'no-global-assign': ['error', {
exceptions: []
}],
'no-native-reassign': 'off',
// TODO: deprecated in favor of no-global-assign
// disallow implicit type conversions
// http://eslint.org/docs/rules/no-implicit-coercion
'no-implicit-coercion': ['error', {
boolean: true,
number: true,
string: true,
allow: []
}],
// disallow var and named functions in global scope
// http://eslint.org/docs/rules/no-implicit-globals
'no-implicit-globals': 'error',
// // disallow use of eval()-like methods
'no-implied-eval': 'error',
// disallow this keywords outside of classes or class-like objects
'no-invalid-this': 'off',
'playlyfe/babel-no-invalid-this': 'error',
// disallow usage of __iterator__ property
'no-iterator': 'error',
// disallow use of labels for anything other then loops and switches
'no-labels': ['error', {
allowLoop: false,
allowSwitch: false
}],
// disallow unnecessary nested blocks
'no-lone-blocks': 'error',
// disallow creation of functions within loops
'no-loop-func': 'error',
// disallow magic numbers
// http://eslint.org/docs/rules/no-magic-numbers
// @TODO: enable rule and fix code
'no-magic-numbers': ['off', {
ignore: [],
ignoreArrayIndexes: true,
enforceConst: true,
detectObjects: false
}],
// disallow use of multiple spaces
'no-multi-spaces': 'error',
// disallow use of multiline strings
'no-multi-str': 'error',
// disallow use of new operator for Function object
'no-new-func': 'error',
// disallows creating new instances of String, Number, and Boolean
'no-new-wrappers': 'error',
// disallow use of new operator when not part of the assignment or comparison
'no-new': 'error',
// disallow use of (old style) octal literals
'no-octal': 'error',
// disallow use of octal escape sequences in string literals, such as
// var foo = 'Copyright \251';
'no-octal-escape': 'error',
// disallow reassignment of function parameters
// disallow parameter object manipulation
// rule: http://eslint.org/docs/rules/no-param-reassign.html
'no-param-reassign': ['error', {
props: false
}],
// disallow usage of __proto__ property
'no-proto': 'error',
// disallow declaring the same variable more then once
'no-redeclare': 'error',
'no-restricted-properties': 'off',
// see testing
// disallow use of assignment in return statement
'no-return-assign': 'error',
'no-return-await': 'error',
// disallow use of `javascript:` urls.
'no-script-url': 'error',
// disallow self assignment
// http://eslint.org/docs/rules/no-self-assign
'no-self-assign': 'error',
// disallow comparisons where both sides are exactly the same
'no-self-compare': 'error',
// disallow use of comma operator
'no-sequences': 'error',
// restrict what can be thrown as an exception
'no-throw-literal': 'error',
// disallow unmodified conditions of loops
// http://eslint.org/docs/rules/no-unmodified-loop-condition
'no-unmodified-loop-condition': 'error',
// disallow usage of expressions in statement position
'no-unused-expressions': ['error', {
allowShortCircuit: false,
allowTernary: false
}],
'playlyfe/babel-no-unused-expressions': ['error', {
allowShortCircuit: false,
allowTernary: false
}],
// disallow unused labels
// http://eslint.org/docs/rules/no-unused-labels
'no-unused-labels': 'error',
// disallow unnecessary .call() and .apply()
'no-useless-call': 'error',
// disallow unnecessary catch
'no-useless-catch': 'error',
// disallow useless string concatenation
// http://eslint.org/docs/rules/no-useless-concat
'no-useless-concat': 'error',
// disallow unnecessary string escaping
// http://eslint.org/docs/rules/no-useless-escape
'no-useless-escape': 'error',
// http://eslint.org/docs/rules/no-useless-return
'no-useless-return': 'error',
// disallow use of void operator
// http://eslint.org/docs/rules/no-void
'no-void': 'error',
// disallow use of the with statement
'no-with': 'error',
'prefer-named-capture-group': 'error',
'prefer-promise-reject-errors': ['error', {
allowEmptyReject: true
}],
// // disallow usage of configurable warning terms in comments: e.g. todo
'no-warning-comments': ['warn', {
terms: ['todo', 'fixme', 'xxx'],
location: 'start'
}],
// require use of the second argument for parseInt()
radix: 'error',
// require await
'require-await': 'error',
'require-unicode-regexp': 'error',
// requires to declare all vars on top of their containing scope
'vars-on-top': 'error',
// require immediate function invocation to be wrapped in parentheses
// http://eslint.org/docs/rules/wrap-iife.html
'wrap-iife': ['error', 'outside'],
// require or disallow Yoda conditions
yoda: 'error'
}
};