mirror of https://github.com/tootsuite/mastodon
Increase files checked by ESLint (#9705)
parent
c39c112ced
commit
d5bdfaf0bb
|
@ -1,30 +1,13 @@
|
||||||
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
/build/**
|
||||||
#
|
/coverage/**
|
||||||
# If you find yourself ignoring temporary files generated by your text editor
|
/db/**
|
||||||
# or operating system, you probably want to add a global ignore instead:
|
/lib/**
|
||||||
# git config --global core.excludesfile '~/.gitignore_global'
|
/log/**
|
||||||
|
/node_modules/**
|
||||||
# Ignore bundler config.
|
/nonobox/**
|
||||||
/.bundle
|
/public/**
|
||||||
|
!/public/embed.js
|
||||||
# Ignore the default SQLite database.
|
/spec/**
|
||||||
/db/*.sqlite3
|
/tmp/**
|
||||||
/db/*.sqlite3-journal
|
/vendor/**
|
||||||
|
!.eslintrc.js
|
||||||
# Ignore all logfiles and tempfiles.
|
|
||||||
/log/*
|
|
||||||
!/log/.keep
|
|
||||||
/tmp
|
|
||||||
coverage
|
|
||||||
public/system
|
|
||||||
public/assets
|
|
||||||
.env
|
|
||||||
.env.production
|
|
||||||
node_modules/
|
|
||||||
neo4j/
|
|
||||||
|
|
||||||
# Ignore Vagrant files
|
|
||||||
.vagrant/
|
|
||||||
|
|
||||||
# Ignore Capistrano customizations
|
|
||||||
config/deploy/*
|
|
||||||
|
|
|
@ -0,0 +1,199 @@
|
||||||
|
module.exports = {
|
||||||
|
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',
|
||||||
|
},
|
||||||
|
};
|
172
.eslintrc.yml
172
.eslintrc.yml
|
@ -1,172 +0,0 @@
|
||||||
---
|
|
||||||
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
|
|
|
@ -10,8 +10,8 @@
|
||||||
"build:production": "cross-env RAILS_ENV=production NODE_ENV=production ./bin/webpack",
|
"build:production": "cross-env RAILS_ENV=production NODE_ENV=production ./bin/webpack",
|
||||||
"manage:translations": "node ./config/webpack/translationRunner.js",
|
"manage:translations": "node ./config/webpack/translationRunner.js",
|
||||||
"start": "node ./streaming/index.js",
|
"start": "node ./streaming/index.js",
|
||||||
"test": "npm run test:lint && npm run test:jest",
|
"test": "${npm_execpath} run test:lint && ${npm_execpath} run test:jest",
|
||||||
"test:lint": "eslint -c .eslintrc.yml --ext=js app/javascript/ config/webpack/ streaming/",
|
"test:lint": "eslint --ext=js .",
|
||||||
"test:jest": "cross-env NODE_ENV=test jest --coverage"
|
"test:jest": "cross-env NODE_ENV=test jest --coverage"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
|
@ -1,13 +1,7 @@
|
||||||
module.exports = {
|
module.exports = ({ env }) => ({
|
||||||
plugins: {
|
plugins: {
|
||||||
autoprefixer: {
|
autoprefixer: {},
|
||||||
browsers: [
|
|
||||||
'last 2 versions',
|
|
||||||
'IE >= 11',
|
|
||||||
'iOS >= 9',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
'postcss-object-fit-images': {},
|
'postcss-object-fit-images': {},
|
||||||
cssnano: {},
|
cssnano: env === 'production' ? {} : false,
|
||||||
},
|
},
|
||||||
};
|
});
|
||||||
|
|
Loading…
Reference in New Issue