---
root: true
plugins:
- jsdoc
- node
- promise
- requirejs
- sonarjs
- unicorn
extends:
- eslint:recommended
- plugin:requirejs/recommended
- plugin:node/recommended
- plugin:unicorn/recommended
env:
  mocha: true
  node: true
  es6: true
rules:
  comma-dangle:
  - error
  - always-multiline
  eol-last:
  - error
  - always
  eqeqeq:
  - error
  - smart
  indent:
  - error
  - 4
  - SwitchCase: 1
  max-len:
  - error
  - 120
  - ignoreRegExpLiterals: true
  max-statements:
  - error
  - 50
  no-control-regex: 0
  no-useless-call: error
  no-useless-computed-key: error
  no-useless-concat: error
  no-useless-constructor: error
  no-useless-escape: error
  no-useless-rename: error
  no-useless-return: error
  quote-props:
  - error
  - as-needed
  quotes:
  - error
  - single
  - allowTemplateLiterals: true
    avoidEscape: true
  semi:
  - error
  - always
  space-before-function-paren:
  - error
  - anonymous: always
    asyncArrow: always
    named: never
  yoda:
  - error
  - never
  - onlyEquality: true
  jsdoc/check-alignment: warn
  jsdoc/check-param-names: warn
  jsdoc/check-syntax: warn
  jsdoc/check-tag-names: warn
  jsdoc/check-types: warn
  jsdoc/empty-tags: warn
  jsdoc/newline-after-description: warn
  jsdoc/require-hyphen-before-param-description: warn
  jsdoc/valid-types: warn
  no-process-exit: off
  node/no-unpublished-require: off
  node/shebang: off
  promise/catch-or-return: error
  promise/no-new-statics: error
  promise/no-return-wrap: error
  promise/param-names: error
  promise/valid-params: error
  sonarjs/no-collection-size-mischeck: error
  sonarjs/no-redundant-boolean: error
  sonarjs/no-unused-collection: error
  sonarjs/prefer-immediate-return: error
  sonarjs/prefer-object-literal: error
  sonarjs/prefer-single-boolean-return: error
  unicorn/catch-error-name: off
  unicorn/consistent-function-scoping: off
  unicorn/no-fn-reference-in-iterator: off
  unicorn/no-hex-escape: off
  unicorn/no-null: off
  unicorn/no-reduce: off
  unicorn/prefer-add-event-listener: off
  unicorn/prefer-flat-map: error
  unicorn/prefer-optional-catch-binding: off
  unicorn/prefer-number-properties: off
  unicorn/prefer-string-slice: off
  unicorn/prevent-abbreviations: off
parserOptions:
  ecmaVersion: 2018
globals:
  BigInt: true
