extends: airbnb/base

parser: babel-eslint

plugins:
  - mocha
  - flowtype

ignorePatterns:
  - 'flow-typed/**/*'
  - 'test/**/*'

globals:
  '$Shape': readonly
  '$Diff': readonly
  '$ReadOnlyArray': readonly
  'buffer$NonBufferEncoding': readonly
  'File': readonly
  'FileReader': readonly
  'atob': readonly
  'btoa': readonly
  'Blob': readonly

overrides:
  - files: test/**/*
    globals:
      'expect': readonly
    env:
      mocha: true
    rules:
      no-unused-expressions: 0

rules:
  mocha/no-exclusive-tests: 2
  flowtype/require-valid-file-annotation: 2

  no-else-return: 0
  max-len: 0
  new-cap: 0
  consistent-return: 0
  prefer-const: 0
  comma-dangle: 0
  no-param-reassign: 0

  no-underscore-dangle: 0
  no-prototype-builtins: 0
  import/no-extraneous-dependencies: 0
  import/no-useless-path-segments: 0
  import/named: 0
  class-methods-use-this: 0
  no-await-in-loop: 0
  no-multi-assign: 0
  arrow-parens: [2, 'always']
  operator-linebreak: ['error', 'after']
  no-mixed-operators: 0
  lines-between-class-members: 0
  no-multi-spaces: 0
  object-curly-newline: 0
  prefer-destructuring: 0
  no-restricted-globals: 0
  implicit-arrow-linebreak: off
