Skip to content

Commit 5476a88

Browse files
author
vvo
committed
fix(prettier): enforce prettier rules to pass after ours
1 parent b4e7805 commit 5476a88

File tree

2 files changed

+178
-174
lines changed

2 files changed

+178
-174
lines changed

index.js

Lines changed: 6 additions & 174 deletions
Original file line numberDiff line numberDiff line change
@@ -6,194 +6,26 @@ module.exports = {
66
node: true,
77
jest: true,
88
},
9-
parser: 'babel-eslint',
9+
parser: 'babel-eslint', // https://github.com/babel/babel-eslint#why-use-babel-eslint
1010
parserOptions: {
11+
ecmaVersion: 6,
12+
sourceType: 'module',
1113
ecmaFeatures: {
1214
experimentalObjectRestSpread: true,
15+
impliedStrict: true,
1316
jsx: true,
1417
},
15-
sourceType: 'module',
1618
},
1719
plugins: ['react', 'import', 'jest'],
1820
extends: [
1921
'plugin:react/recommended',
2022
'plugin:import/errors',
2123
'plugin:jest/recommended',
22-
'prettier',
24+
'./rules.js',
25+
'prettier', // enforce prettier rules to pass after our rules, so it disables useless rules
2326
'prettier/react',
2427
],
2528
settings: {
2629
'import/extensions': ['.js'],
2730
},
28-
rules: {
29-
// Possible errors
30-
// http://eslint.org/docs/rules/#possible-errors
31-
'no-cond-assign': ['error'],
32-
'no-console': ['error'],
33-
'no-constant-condition': ['error'],
34-
'no-control-regex': ['error'],
35-
'no-debugger': ['error'],
36-
'no-dupe-args': ['error'],
37-
'no-dupe-keys': ['error'],
38-
'no-duplicate-case': ['error'],
39-
'no-empty': ['error'],
40-
'no-empty-character-class': ['error'],
41-
'no-ex-assign': ['error'],
42-
'no-extra-boolean-cast': ['error'],
43-
'no-extra-semi': ['error'],
44-
'no-func-assign': ['error'],
45-
'no-inner-declarations': ['error'],
46-
'no-invalid-regexp': ['error'],
47-
'no-irregular-whitespace': ['error'],
48-
'no-obj-calls': ['error'],
49-
'no-prototype-builtins': ['off'],
50-
'no-regex-spaces': ['error'],
51-
'no-template-curly-in-string': ['error'],
52-
'no-sparse-arrays': ['error'],
53-
'no-unexpected-multiline': ['error'],
54-
'no-unreachable': ['error'],
55-
'no-unsafe-finally': ['error'],
56-
'no-unsafe-negation': ['error'],
57-
'use-isnan': ['error'],
58-
'valid-jsdoc': ['error'],
59-
'valid-typeof': ['error'],
60-
61-
// Best practices
62-
// http://eslint.org/docs/rules/#best-practices
63-
'accessor-pairs': ['error'],
64-
'array-callback-return': ['error'],
65-
'block-scoped-var': ['error'],
66-
'class-methods-use-this': ['off'],
67-
complexity: ['error'],
68-
'consistent-return': ['error'],
69-
curly: ['off'],
70-
'default-case': ['error'],
71-
'dot-location': ['off'],
72-
'dot-notation': ['error'],
73-
eqeqeq: ['error'],
74-
'guard-for-in': ['error'],
75-
'no-alert': ['error'],
76-
'no-caller': ['error'],
77-
'no-case-declarations': ['error'],
78-
'no-div-regex': ['error'],
79-
'no-empty-function': ['off'],
80-
'no-empty-pattern': ['error'],
81-
'no-eq-null': ['error'],
82-
'no-eval': ['error'],
83-
'no-extend-native': ['error'],
84-
'no-extra-bind': ['error'],
85-
'no-extra-label': ['error'],
86-
'no-fallthrough': ['error'],
87-
'no-floating-decimal': ['error'],
88-
'no-global-assign': ['error'],
89-
'no-implicit-coercion': ['error', { string: false }],
90-
'no-implicit-globals': ['error'],
91-
'no-implied-eval': ['error'],
92-
'no-invalid-this': ['off'],
93-
'no-iterator': ['error'],
94-
'no-labels': ['error'],
95-
'no-lone-blocks': ['error'],
96-
'no-loop-func': ['error'],
97-
'no-magic-numbers': ['off'],
98-
'no-multi-spaces': ['error'],
99-
'no-multi-str': ['error'],
100-
'no-new': ['error'],
101-
'no-new-func': ['error'],
102-
'no-new-wrappers': ['error'],
103-
'no-octal': ['error'],
104-
'no-octal-escape': ['error'],
105-
'no-param-reassign': ['off'],
106-
'no-proto': ['error'],
107-
'no-redeclare': ['error'],
108-
'no-return-assign': ['error'],
109-
'no-script-url': ['error'],
110-
'no-self-assign': ['error'],
111-
'no-self-compare': ['error'],
112-
'no-sequences': ['error'],
113-
'no-throw-literal': ['error'],
114-
'no-unmodified-loop-condition': ['error'],
115-
'no-unused-expressions': ['error'],
116-
'no-unused-labels': ['error'],
117-
'no-useless-call': ['error'],
118-
'no-useless-concat': ['error'],
119-
'no-useless-escape': ['error'],
120-
'no-void': ['error'],
121-
'no-warning-comments': ['error'],
122-
'no-with': ['error'],
123-
radix: ['error'],
124-
'vars-on-top': ['error'],
125-
'wrap-iife': ['error'],
126-
yoda: ['error'],
127-
128-
// Strict mode
129-
// http://eslint.org/docs/rules/#strict-mode
130-
strict: ['error', 'never'],
131-
132-
// Variables
133-
// http://eslint.org/docs/rules/#variables
134-
'init-declarations': ['off'],
135-
'no-catch-shadow': ['error'],
136-
'no-delete-var': ['error'],
137-
'no-label-var': ['error'],
138-
'no-restricted-globals': ['error', 'event'],
139-
'no-shadow': ['error'],
140-
'no-shadow-restricted-names': ['error'],
141-
'no-undef': ['error'],
142-
'no-undefined': ['off'],
143-
'no-unused-vars': ['error'],
144-
'no-use-before-define': ['error', { functions: false }],
145-
146-
// Node.js and Common.js
147-
// http://eslint.org/docs/rules/#nodejs-and-commonjs
148-
'callback-return': ['off'],
149-
'global-require': ['off'],
150-
'handle-callback-err': ['error'],
151-
'no-mixed-requires': ['error'],
152-
'no-new-require': ['error'],
153-
'no-path-concat': ['error'],
154-
'no-process-env': ['off'],
155-
'no-process-exit': ['error'],
156-
'no-restricted-modules': ['error'],
157-
'no-sync': ['off'],
158-
159-
// ECMAScript 6
160-
// http://eslint.org/docs/rules/#ecmascript-6
161-
'arrow-body-style': ['error'],
162-
'arrow-parens': ['error', 'as-needed'],
163-
'arrow-spacing': ['error'],
164-
'constructor-super': ['error'],
165-
'generator-star-spacing': ['error'],
166-
'no-class-assign': ['error'],
167-
'no-confusing-arrow': ['off'],
168-
'no-const-assign': ['error'],
169-
'no-dupe-class-members': ['error'],
170-
'no-duplicate-imports': ['error'],
171-
'no-new-symbol': ['error'],
172-
'no-restricted-imports': ['off'],
173-
'no-this-before-super': ['error'],
174-
'no-useless-computed-key': ['error'],
175-
'no-useless-constructor': ['error'],
176-
'no-useless-rename': ['error'],
177-
'no-var': ['error'],
178-
'object-shorthand': ['error'],
179-
'prefer-arrow-callback': ['error'],
180-
'prefer-const': ['error'],
181-
'prefer-reflect': ['off'],
182-
'prefer-rest-params': ['error'],
183-
'prefer-spread': ['error'],
184-
'prefer-template': ['error'],
185-
'require-yield': ['error'],
186-
'rest-spread-spacing': ['error'],
187-
'sort-imports': ['off'],
188-
'symbol-description': ['error'],
189-
'template-curly-spacing': ['error'],
190-
'yield-star-spacing': ['error'],
191-
192-
'react/no-danger': ['off'],
193-
'react/display-name': ['off'],
194-
'react/jsx-key': ['error'],
195-
'import/no-amd': ['error'],
196-
'import/no-commonjs': ['error'],
197-
'import/no-extraneous-dependencies': ['error'],
198-
},
19931
};

rules.js

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
module.exports = {
2+
// Possible errors
3+
// http://eslint.org/docs/rules/#possible-errors
4+
'no-cond-assign': ['error'],
5+
'no-console': ['error'],
6+
'no-constant-condition': ['error'],
7+
'no-control-regex': ['error'],
8+
'no-debugger': ['error'],
9+
'no-dupe-args': ['error'],
10+
'no-dupe-keys': ['error'],
11+
'no-duplicate-case': ['error'],
12+
'no-empty': ['error'],
13+
'no-empty-character-class': ['error'],
14+
'no-ex-assign': ['error'],
15+
'no-extra-boolean-cast': ['error'],
16+
'no-extra-parens': ['error'],
17+
'no-extra-semi': ['error'],
18+
'no-func-assign': ['error'],
19+
'no-inner-declarations': ['error'],
20+
'no-invalid-regexp': ['error'],
21+
'no-irregular-whitespace': ['error'],
22+
'no-obj-calls': ['error'],
23+
'no-prototype-builtins': ['off'],
24+
'no-regex-spaces': ['error'],
25+
'no-template-curly-in-string': ['error'],
26+
'no-sparse-arrays': ['error'],
27+
'no-unexpected-multiline': ['error'],
28+
'no-unreachable': ['error'],
29+
'no-unsafe-finally': ['error'],
30+
'no-unsafe-negation': ['error'],
31+
'use-isnan': ['error'],
32+
'valid-jsdoc': ['error'],
33+
'valid-typeof': ['error'],
34+
35+
// Best practices
36+
// http://eslint.org/docs/rules/#best-practices
37+
'accessor-pairs': ['error'],
38+
'array-callback-return': ['error'],
39+
'block-scoped-var': ['error'],
40+
'class-methods-use-this': ['off'],
41+
complexity: ['error'],
42+
'consistent-return': ['error'],
43+
curly: ['off'],
44+
'default-case': ['error'],
45+
'dot-location': ['off'],
46+
'dot-notation': ['error'],
47+
eqeqeq: ['error'],
48+
'guard-for-in': ['error'],
49+
'no-alert': ['error'],
50+
'no-caller': ['error'],
51+
'no-case-declarations': ['error'],
52+
'no-div-regex': ['error'],
53+
'no-empty-function': ['off'],
54+
'no-empty-pattern': ['error'],
55+
'no-eq-null': ['error'],
56+
'no-eval': ['error'],
57+
'no-extend-native': ['error'],
58+
'no-extra-bind': ['error'],
59+
'no-extra-label': ['error'],
60+
'no-fallthrough': ['error'],
61+
'no-floating-decimal': ['error'],
62+
'no-global-assign': ['error'],
63+
'no-implicit-coercion': ['error', { string: false }],
64+
'no-implicit-globals': ['error'],
65+
'no-implied-eval': ['error'],
66+
'no-invalid-this': ['off'],
67+
'no-iterator': ['error'],
68+
'no-labels': ['error'],
69+
'no-lone-blocks': ['error'],
70+
'no-loop-func': ['error'],
71+
'no-magic-numbers': ['off'],
72+
'no-multi-spaces': ['error'],
73+
'no-multi-str': ['error'],
74+
'no-new': ['error'],
75+
'no-new-func': ['error'],
76+
'no-new-wrappers': ['error'],
77+
'no-octal': ['error'],
78+
'no-octal-escape': ['error'],
79+
'no-param-reassign': ['off'],
80+
'no-proto': ['error'],
81+
'no-redeclare': ['error'],
82+
'no-return-assign': ['error'],
83+
'no-script-url': ['error'],
84+
'no-self-assign': ['error'],
85+
'no-self-compare': ['error'],
86+
'no-sequences': ['error'],
87+
'no-throw-literal': ['error'],
88+
'no-unmodified-loop-condition': ['error'],
89+
'no-unused-expressions': ['error'],
90+
'no-unused-labels': ['error'],
91+
'no-useless-call': ['error'],
92+
'no-useless-concat': ['error'],
93+
'no-useless-escape': ['error'],
94+
'no-void': ['error'],
95+
'no-warning-comments': ['error'],
96+
'no-with': ['error'],
97+
radix: ['error'],
98+
'vars-on-top': ['error'],
99+
'wrap-iife': ['error'],
100+
yoda: ['error'],
101+
102+
// Strict mode
103+
// http://eslint.org/docs/rules/#strict-mode
104+
strict: ['error', 'never'],
105+
106+
// Variables
107+
// http://eslint.org/docs/rules/#variables
108+
'init-declarations': ['off'],
109+
'no-catch-shadow': ['error'],
110+
'no-delete-var': ['error'],
111+
'no-label-var': ['error'],
112+
'no-restricted-globals': ['error', 'event'],
113+
'no-shadow': ['error'],
114+
'no-shadow-restricted-names': ['error'],
115+
'no-undef': ['error'],
116+
'no-undefined': ['off'],
117+
'no-unused-vars': ['error'],
118+
'no-use-before-define': ['error', { functions: false }],
119+
120+
// Node.js and Common.js
121+
// http://eslint.org/docs/rules/#nodejs-and-commonjs
122+
'callback-return': ['off'],
123+
'global-require': ['off'],
124+
'handle-callback-err': ['error'],
125+
'no-mixed-requires': ['error'],
126+
'no-new-require': ['error'],
127+
'no-path-concat': ['error'],
128+
'no-process-env': ['off'],
129+
'no-process-exit': ['error'],
130+
'no-restricted-modules': ['error'],
131+
'no-sync': ['off'],
132+
133+
// ECMAScript 6
134+
// http://eslint.org/docs/rules/#ecmascript-6
135+
'arrow-body-style': ['error'],
136+
'arrow-parens': ['error', 'as-needed'],
137+
'arrow-spacing': ['error'],
138+
'constructor-super': ['error'],
139+
'generator-star-spacing': ['error'],
140+
'no-class-assign': ['error'],
141+
'no-confusing-arrow': ['off'],
142+
'no-const-assign': ['error'],
143+
'no-dupe-class-members': ['error'],
144+
'no-duplicate-imports': ['error'],
145+
'no-new-symbol': ['error'],
146+
'no-restricted-imports': ['off'],
147+
'no-this-before-super': ['error'],
148+
'no-useless-computed-key': ['error'],
149+
'no-useless-constructor': ['error'],
150+
'no-useless-rename': ['error'],
151+
'no-var': ['error'],
152+
'object-shorthand': ['error'],
153+
'prefer-arrow-callback': ['error'],
154+
'prefer-const': ['error'],
155+
'prefer-reflect': ['off'],
156+
'prefer-rest-params': ['error'],
157+
'prefer-spread': ['error'],
158+
'prefer-template': ['error'],
159+
'require-yield': ['error'],
160+
'rest-spread-spacing': ['error'],
161+
'sort-imports': ['off'],
162+
'symbol-description': ['error'],
163+
'template-curly-spacing': ['error'],
164+
'yield-star-spacing': ['error'],
165+
166+
'react/no-danger': ['off'],
167+
'react/display-name': ['off'],
168+
'react/jsx-key': ['error'],
169+
'import/no-amd': ['error'],
170+
'import/no-commonjs': ['error'],
171+
'import/no-extraneous-dependencies': ['error'],
172+
};

0 commit comments

Comments
 (0)