eslint-config-pragmaticjs/index.js

75 lines
2.9 KiB
JavaScript

const OFF = 0;
const WARN = 1;
const ERROR = 2;
module.exports = {
env: {
browser: true,
node: true,
},
parserOptions: {
ecmaVersion: 6,
ecmaFeatures: {
jsx: true,
}
},
rules: {
'accessor-pairs': [ERROR], // Require get/set pairs for ES5 accessor/mutators
'block-scoped-var': [ERROR],
'class-methods-use-this': [WARN], // Class methods should use 'this', or be marked as static
curly: [ERROR],
'default-case': [ERROR], // Require a default condition in switch statements
'dot-notation': [ERROR], // Use dot notation over [] notation for object properties
'eqeqeq' : [ERROR], // Require === over ==, and !== over !=
'guard-for-in': [ERROR],
'no-alert': [ERROR], // Disable use of alert, prompt, and confirm
'no-caller': [ERROR],
'no-case-declarations': [ERROR],
'no-cond-assign': [ERROR, 'except-parens'], // Don't assign in conditionals
'no-constant-condition': [ERROR, {
checkLoops: false,
}],
'no-control-regex': [ERROR], // Don't match control characters (ASCII 0-31) in regex
'no-debugger': [ERROR], // Disallow use of debugger statements
'no-div-regex': [ERROR],
'no-dupe-args': [ERROR], // No duplicate function arguments
'no-dupe-keys': [ERROR], // No duplicate keys in object literals
'no-duplicate-case': [ERROR], // No duplicate case labels in switch statements
'no-else-return': [ERROR],
'no-empty-character-class': [ERROR], // No empty character classes in regex
'no-empty-function': [ERROR],
'no-empty-pattern': [ERROR],
'no-eval': [ERROR],
'no-extra-bind': [ERROR],
'no-extra-boolean-cast': [ERROR], // Disable unneeded boolean casts
'no-extra-label': [ERROR],
'no-extra-semi': [ERROR], // Don't use extra semicolons
'no-func-assign': [ERROR], // Don't re-declare a function
'no-implied-eval': [ERROR],
'no-invalid-regexp': [ERROR],
'no-invalid-this': [ERROR],
'no-irregular-whitespace': [ERROR],
'no-iterator': [ERROR], // Disallow use of __iterator__
'no-lone-blocks': [WARN],
'no-loop-func': [ERROR], // No function declarations in loops
'no-magic-numbers': [ERROR],
'no-multi-spaces': [ERROR],
'no-new': [ERROR], // Disable new keyword for only side effects
'no-new-func': [ERROR], // Disable use of Function() to create new functions
'no-new-wrappers': [ERROR],
'no-obj-calls': [ERROR], // Don't call built in objects as functions
'no-octal': [ERROR],
'no-regex-spaces': [ERROR], // Don't have repeated literal spaces in regexes
'no-sparse-arrays': [ERROR],
'no-template-curly-in-string': [ERROR], // Only have template curlys in template strings
'no-unexpected-multiline': [ERROR],
'no-unreachable': [ERROR], // Throw an error on unreachable code statements
'no-unsafe-finally': [ERROR],
'no-unsafe-negation': [ERROR],
quotes: [WARN, 'single', {
allowTemplateLiterals: true,
}],
'use-isnan': [ERROR], // Use isNan() to check for NaN
'valid-jsdoc': [ERROR],
},
};