eslint-config-handsome
Version:
Handsome ESLint shareable config
423 lines (416 loc) • 8.87 kB
YAML
root: true
parser: espree
parserOptions:
ecmaVersion: 8
sourceType: module
ecmaFeatures:
globalReturn: false
impliedStrict: true
experimentalObjectRestSpread: true
jsx: true
env:
browser: true
node: true
commonjs: true
es6: true
worker: true
serviceworker: true
rules:
# About Errors
for-direction: error
getter-return: error
no-async-promise-executor: error
no-await-in-loop: off
no-compare-neg-zero: error
no-cond-assign:
- error
- always
no-console: warn
no-constant-condition: error
no-control-regex: error
no-debugger: error
no-dupe-args: error
no-dupe-keys: error
no-duplicate-case: error
no-empty:
- error
- allowEmptyCatch: false
no-empty-character-class: error
no-ex-assign: error
no-extra-boolean-cast: error
no-extra-parens:
- error
- all
no-extra-semi: error
no-func-assign: error
no-inner-declarations:
- error
- both
no-invalid-regexp:
- error
- allowConstructorFlags:
- u
- y
no-irregular-whitespace:
- error
- skipStrings: true
skipComments: true
skipRegExps: true
skipTemplates: true
no-misleading-character-class: error
no-obj-calls: error
no-prototype-builtins: error
no-regex-spaces: error
no-sparse-arrays: error
no-template-curly-in-string: error
no-unexpected-multiline: error
no-unreachable: error
no-unsafe-finally: error
no-unsafe-negation: error
require-atomic-updates: error
use-isnan: error
valid-jsdoc: off
valid-typeof: error
# About Best Practices
accessor-pairs:
- error
- setWithoutGet: true
getWithoutSet: false
array-callback-return: error
block-scoped-var: error
class-methods-use-this: error
complexity: error
consistent-return: off
curly:
- error
- multi-line
- consistent
default-case: error
dot-location:
- error
- property
dot-notation: warn
eqeqeq: error
guard-for-in: error
max-classes-per-file:
- error
- 1
no-alert: error
no-caller: error
no-case-declarations: error
no-div-regex: error
no-else-return: error
no-empty-function:
- error
- allow:
- constructors
no-empty-pattern: error
no-eq-null: error
no-eval: error
no-extend-native: error
no-extra-bind: error
no-extra-label: error
no-fallthrough: error
no-floating-decimal: error
no-global-assign: error
no-implicit-coercion: error
no-implicit-globals: error
no-implied-eval: error
no-invalid-this: error
no-iterator: error
no-labels: error
no-lone-blocks: error
no-loop-func: error
no-magic-numbers: off
no-multi-spaces: error
no-multi-str: error
no-new: error
no-new-func: error
no-new-wrappers: error
no-octal: error
no-octal-escape: error
no-param-reassign: warn
no-proto: error
no-redeclare: error
no-restricted-properties: off
no-return-assign:
- error
- always
no-return-await: error
no-script-url: error
no-self-assign:
- error
- props: true
no-self-compare: error
no-sequences: error
no-throw-literal: error
no-unmodified-loop-condition: error
no-unused-expressions:
- error
- allowShortCircuit: true
allowTernary: true
allowTaggedTemplates: true
no-unused-labels: error
no-useless-call: error
no-useless-concat: error
no-useless-escape: error
no-useless-return: error
no-void: error
no-warning-comments: warn
no-with: error
prefer-promise-reject-errors:
- error
- allowEmptyReject: true
radix: error
require-await: warn
require-unicode-regexp: warn
vars-on-top: off
wrap-iife:
- error
- inside
- functionPrototypeMethods: true
yoda: error
# About Strict Mode
strict: warn
# About Variables
init-declarations: off
no-delete-var: error
no-label-var: error
no-restricted-globals:
- error
- event
no-shadow: warn
no-shadow-restricted-names: error
no-undef:
- error
- typeof: true
no-undef-init: error
no-undefined: off
no-unused-vars:
- error
- ignoreRestSiblings: true
no-use-before-define:
- error
- nofunc
# About Node.js and CommonJS
callback-return: warn
global-require: off
handle-callback-err:
- error
- ^(err|error)$
no-buffer-constructor: error
no-mixed-requires:
- error
- grouping: true
allowCall: true
no-new-require: error
no-path-concat: error
no-process-env: off
no-process-exit: off
no-restricted-modules: off
no-sync: off
# About Stylistic
array-bracket-newline: off
array-bracket-spacing:
- error
- never
array-element-newline: off
block-spacing:
- error
- always
brace-style:
- error
- 1tbs
- allowSingleLine: true
camelcase: error
capitalized-comments: off
comma-dangle:
- error
- always-multiline
comma-spacing: error
comma-style: error
computed-property-spacing: error
consistent-this: off
eol-last: error
func-call-spacing: error
func-name-matching: error
func-names:
- error
- never
func-style: off
function-paren-newline: off
id-blacklist: off
id-length: off
id-match: off
implicit-arrow-linebreak: off
indent:
- error
- tab
- SwitchCase: 1
FunctionDeclaration:
parameters: 1
FunctionExpression:
parameters: 1
jsx-quotes: error
key-spacing: error
keyword-spacing: error
line-comment-position: off
linebreak-style: warn
lines-around-comment: off
lines-between-class-members: off
max-depth: warn
max-len:
- warn
- code: 160
tabWidth: 2
ignoreComments: true
ignoreUrls: true
ignoreTemplateLiterals: true
max-lines:
- warn
- max: 800
max-lines-per-function:
- warn
- max: 200
max-nested-callbacks:
- warn
- 4
max-params:
- warn
- 4
max-statements:
- warn
- max: 20
max-statements-per-line:
- warn
- max: 1
multiline-comment-style: off
multiline-ternary: off
new-cap: error
new-parens: error
newline-per-chained-call: off
no-array-constructor: error
no-bitwise: off
no-continue: off
no-inline-comments: off
no-lonely-if: error
no-mixed-operators: off
no-mixed-spaces-and-tabs: error
no-multi-assign: error
no-multiple-empty-lines:
- error
- max: 1
no-negated-condition: error
no-nested-ternary: off
no-new-object: error
no-plusplus: off
no-restricted-syntax:
- error
- WithStatement
no-tabs: off
no-ternary: off
no-trailing-spaces: error
no-underscore-dangle: off
no-unneeded-ternary: error
no-whitespace-before-property: error
nonblock-statement-body-position: off
object-curly-newline: off
object-curly-spacing: off
object-property-newline:
- error
- allowMultiplePropertiesPerLine: true
one-var: off
one-var-declaration-per-line: error
operator-assignment: error
operator-linebreak:
- error
- after
- overrides:
'?': before
':': before
'&&': ignore
'||': ignore
padded-blocks:
- error
- never
padding-line-between-statements: off
prefer-object-spread: off
quote-props:
- error
- as-needed
quotes:
- error
- single
- avoidEscape: true
allowTemplateLiterals: true
require-jsdoc: off
semi: error
semi-spacing: error
semi-style:
- error
- last
sort-keys: off
sort-vars: off
space-before-blocks: error
space-before-function-paren:
- error
- anonymous: always
named: never
asyncArrow: always
space-in-parens: error
space-infix-ops: error
space-unary-ops:
- error
- words: true
nonwords: false
spaced-comment: off
switch-colon-spacing: error
template-tag-spacing: error
unicode-bom: error
wrap-regex: off
# About ES6
arrow-body-style: off
arrow-parens:
- warn
- as-needed
arrow-spacing: error
constructor-super: error
generator-star-spacing:
- error
- both
no-class-assign: error
no-confusing-arrow: off
no-const-assign: error
no-dupe-class-members: error
no-duplicate-imports: error
no-new-symbol: error
no-restricted-imports: off
no-this-before-super: error
no-useless-computed-key: error
no-useless-constructor: error
no-useless-rename: error
no-var: error
object-shorthand: warn
prefer-arrow-callback: warn
prefer-const: error
prefer-destructuring:
- warn
- VariableDeclarator:
array: false
object: true
AssignmentExpression:
array: false
object: false
- enforceForRenamedProperties: false
prefer-numeric-literals: off
prefer-rest-params: warn
prefer-spread: error
prefer-template: warn
require-yield: error
rest-spread-spacing: error
sort-imports: off
symbol-description: error
template-curly-spacing: error
yield-star-spacing:
- error
- both