--- root: true env: browser: true node: true es6: true jest: true globals: ATTACHMENT_HOST: false parser: babel-eslint plugins: - react - jsx-a11y - import - promise parserOptions: sourceType: module ecmaFeatures: experimentalObjectRestSpread: true jsx: true ecmaVersion: 2018 settings: react: version: detect import/extensions: - .js import/ignore: - node_modules - \\.(css|scss|json)$ rules: brace-style: warn comma-dangle: - error - always-multiline comma-spacing: - warn - before: false after: true comma-style: - warn - last consistent-return: error dot-notation: error eqeqeq: error indent: - warn - 2 jsx-quotes: - error - prefer-single no-catch-shadow: error no-cond-assign: error no-console: - warn - allow: - error - warn no-fallthrough: error no-irregular-whitespace: error no-mixed-spaces-and-tabs: warn no-nested-ternary: warn no-trailing-spaces: warn no-undef: error no-unreachable: error no-unused-expressions: error no-unused-vars: - error - vars: all args: after-used ignoreRestSiblings: true object-curly-spacing: - error - always padded-blocks: - error - classes: always quotes: - error - single semi: error strict: off valid-typeof: error react/jsx-boolean-value: error react/jsx-closing-bracket-location: - error - line-aligned react/jsx-curly-spacing: error react/jsx-equals-spacing: error react/jsx-first-prop-new-line: - error - multiline-multiprop react/jsx-indent: - error - 2 react/jsx-no-bind: error react/jsx-no-duplicate-props: error react/jsx-no-undef: error react/jsx-tag-spacing: error react/jsx-uses-react: error react/jsx-uses-vars: error react/jsx-wrap-multilines: error react/no-multi-comp: off react/no-string-refs: error react/prop-types: error react/self-closing-comp: error jsx-a11y/accessible-emoji: warn jsx-a11y/alt-text: warn jsx-a11y/anchor-has-content: warn jsx-a11y/anchor-is-valid: - warn - components: - Link - NavLink specialLink: - to aspect: - noHref - invalidHref - preferButton jsx-a11y/aria-activedescendant-has-tabindex: warn jsx-a11y/aria-props: warn jsx-a11y/aria-proptypes: warn jsx-a11y/aria-role: warn jsx-a11y/aria-unsupported-elements: warn jsx-a11y/heading-has-content: warn jsx-a11y/html-has-lang: warn jsx-a11y/iframe-has-title: warn jsx-a11y/img-redundant-alt: warn jsx-a11y/interactive-supports-focus: warn jsx-a11y/label-has-for: off jsx-a11y/mouse-events-have-key-events: warn jsx-a11y/no-access-key: warn jsx-a11y/no-distracting-elements: warn jsx-a11y/no-noninteractive-element-interactions: - warn - handlers: - onClick jsx-a11y/no-onchange: warn jsx-a11y/no-redundant-roles: warn jsx-a11y/no-static-element-interactions: - warn - handlers: - onClick jsx-a11y/role-has-required-aria-props: warn jsx-a11y/role-supports-aria-props: off jsx-a11y/scope: warn jsx-a11y/tabindex-no-positive: warn import/extensions: - error - always - js: never import/newline-after-import: error import/no-extraneous-dependencies: - error - devDependencies: - "config/webpack/**" - "app/javascript/mastodon/test_setup.js" - "app/javascript/**/__tests__/**" import/no-unresolved: error import/no-webpack-loader-syntax: error promise/catch-or-return: error