2016-03-31 17:06:21 +08:00
|
|
|
const eslintrc = {
|
2019-08-05 18:38:10 +08:00
|
|
|
extends: [
|
|
|
|
'airbnb',
|
|
|
|
'prettier',
|
|
|
|
'plugin:jest/recommended',
|
|
|
|
'plugin:react/recommended',
|
|
|
|
'plugin:import/typescript',
|
2019-08-06 15:09:07 +08:00
|
|
|
'prettier/react',
|
2019-08-05 18:38:10 +08:00
|
|
|
],
|
2016-03-31 17:06:21 +08:00
|
|
|
env: {
|
|
|
|
browser: true,
|
|
|
|
node: true,
|
2017-01-27 17:08:05 +08:00
|
|
|
jasmine: true,
|
2016-03-31 17:06:21 +08:00
|
|
|
jest: true,
|
|
|
|
es6: true,
|
|
|
|
},
|
2019-08-02 17:44:34 +08:00
|
|
|
settings: {
|
|
|
|
react: {
|
|
|
|
version: '16.8',
|
|
|
|
},
|
|
|
|
},
|
2019-08-02 17:41:16 +08:00
|
|
|
parser: '@typescript-eslint/parser',
|
|
|
|
plugins: ['markdown', 'react', 'babel', 'jest', '@typescript-eslint'],
|
2019-08-05 18:38:10 +08:00
|
|
|
// https://github.com/typescript-eslint/typescript-eslint/issues/46#issuecomment-470486034
|
|
|
|
overrides: [
|
|
|
|
{
|
|
|
|
files: ['*.tsx'],
|
|
|
|
rules: {
|
|
|
|
'@typescript-eslint/no-unused-vars': [2, { args: 'none' }],
|
|
|
|
},
|
|
|
|
},
|
|
|
|
],
|
2016-03-31 17:06:21 +08:00
|
|
|
rules: {
|
2018-06-22 21:05:13 +08:00
|
|
|
'react/jsx-one-expression-per-line': 0,
|
2018-11-28 15:00:03 +08:00
|
|
|
'react/prop-types': 0,
|
2018-06-22 21:05:13 +08:00
|
|
|
'react/forbid-prop-types': 0,
|
2018-12-07 16:17:45 +08:00
|
|
|
'react/jsx-indent': 0,
|
|
|
|
'react/jsx-wrap-multilines': ['error', { declaration: false, assignment: false }],
|
|
|
|
'import/no-extraneous-dependencies': [
|
|
|
|
'error',
|
|
|
|
{
|
|
|
|
devDependencies: [
|
|
|
|
'site/**',
|
|
|
|
'tests/**',
|
|
|
|
'scripts/**',
|
|
|
|
'**/*.test.js',
|
|
|
|
'**/__tests__/*',
|
|
|
|
'*.config.js',
|
|
|
|
'**/*.md',
|
|
|
|
],
|
|
|
|
},
|
|
|
|
],
|
2016-09-27 10:06:34 +08:00
|
|
|
'jsx-a11y/no-static-element-interactions': 0,
|
|
|
|
'jsx-a11y/anchor-has-content': 0,
|
2017-10-09 13:23:20 +08:00
|
|
|
'jsx-a11y/click-events-have-key-events': 0,
|
|
|
|
'jsx-a11y/anchor-is-valid': 0,
|
2016-11-07 15:55:14 +08:00
|
|
|
'comma-dangle': ['error', 'always-multiline'],
|
2019-08-05 18:38:10 +08:00
|
|
|
'react/jsx-filename-extension': 0,
|
|
|
|
'prefer-destructuring': 0, // TODO: remove later
|
|
|
|
'consistent-return': 0, // TODO: remove later
|
|
|
|
'no-return-assign': 0, // TODO: remove later
|
|
|
|
'no-param-reassign': 0, // TODO: remove later
|
|
|
|
'react/destructuring-assignment': 0, // TODO: remove later
|
|
|
|
'react/no-did-update-set-state': 0, // TODO: remove later
|
|
|
|
'react/require-default-props': 0,
|
|
|
|
'react/default-props-match-prop-types': 0,
|
|
|
|
'import/no-cycle': 0,
|
|
|
|
'react/no-find-dom-node': 0,
|
|
|
|
'no-underscore-dangle': 0,
|
|
|
|
// label-has-for has been deprecated
|
|
|
|
// https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/label-has-for.md
|
|
|
|
'jsx-a11y/label-has-for': 0,
|
|
|
|
// for (let i = 0; i < len; i++)
|
|
|
|
'no-plusplus': 0,
|
|
|
|
// https://eslint.org/docs/rules/no-continue
|
|
|
|
// labeledLoop is conflicted with `eslint . --fix`
|
|
|
|
'no-continue': 0,
|
|
|
|
'react/display-name': 0,
|
|
|
|
// ban this for Number.isNaN needs polyfill
|
|
|
|
'no-restricted-globals': 0,
|
2016-09-10 11:18:07 +08:00
|
|
|
},
|
2016-03-31 17:06:21 +08:00
|
|
|
};
|
|
|
|
|
2016-04-21 20:32:36 +08:00
|
|
|
if (process.env.RUN_ENV === 'DEMO') {
|
2016-03-31 17:06:21 +08:00
|
|
|
eslintrc.globals = {
|
|
|
|
React: true,
|
|
|
|
ReactDOM: true,
|
|
|
|
mountNode: true,
|
|
|
|
};
|
|
|
|
|
|
|
|
Object.assign(eslintrc.rules, {
|
2017-10-09 13:23:20 +08:00
|
|
|
indent: 0,
|
2016-03-31 17:06:21 +08:00
|
|
|
'no-console': 0,
|
2016-09-27 10:06:34 +08:00
|
|
|
'no-plusplus': 0,
|
2016-03-31 17:06:21 +08:00
|
|
|
'eol-last': 0,
|
2018-04-11 15:15:24 +08:00
|
|
|
'no-script-url': 0,
|
2016-03-31 17:06:21 +08:00
|
|
|
'prefer-rest-params': 0,
|
2018-06-27 15:55:04 +08:00
|
|
|
'react/no-access-state-in-setstate': 0,
|
|
|
|
'react/destructuring-assignment': 0,
|
2016-03-31 17:46:35 +08:00
|
|
|
'react/no-multi-comp': 0,
|
2016-08-23 21:00:35 +08:00
|
|
|
'jsx-a11y/href-no-hash': 0,
|
2018-11-28 15:00:03 +08:00
|
|
|
'import/no-extraneous-dependencies': 0,
|
2016-03-31 17:06:21 +08:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = eslintrc;
|