UNPKG

3.71 kBJavaScriptView Raw
1module.exports = {
2 parserOptions: {
3 ecmaVersion: 2015,
4 sourceType: 'module',
5 ecmaFeatures: {
6 jsx: true,
7 },
8 },
9 plugins: ['es-beautifier', 'react'],
10 rules: {
11 'es-beautifier/multiline-block-statements': 'error',
12 'es-beautifier/no-spaces-in-empty-block': 'error',
13 'es-beautifier/multiline-object-properties': 'error',
14 'es-beautifier/multiline-array-elements': 'error',
15 'es-beautifier/multiline-switch-cases': 'error',
16 'es-beautifier/multiline-class-body': 'error',
17 'es-beautifier/multiline-import-specifiers': 'error',
18 'es-beautifier/jsx-multiline-elements': 'error',
19 'es-beautifier/jsx-separateline-literals': 'error',
20 'es-beautifier/jsx-multiline-attributes': 'error',
21 curly: ['error', 'multi-line'],
22 'dot-location': ['error', 'property'],
23 'no-multi-spaces': 'error',
24 'array-bracket-spacing': ['error', 'never'],
25 'block-spacing': ['error', 'always'],
26 'brace-style': ['error', '1tbs', { allowSingleLine: true }],
27 'comma-dangle': ['error', 'always-multiline'],
28 'comma-spacing': ['error', { before: false, after: true }],
29 'comma-style': ['error', 'last'],
30 'computed-property-spacing': ['error', 'never'],
31 'eol-last': ['error', 'always'],
32 'func-call-spacing': ['error', 'never'],
33 indent: ['error', 2, { SwitchCase: 1, VariableDeclarator: 1, outerIIFEBody: 1 }],
34 'key-spacing': ['error', { beforeColon: false, afterColon: true }],
35 'keyword-spacing': ['error', {
36 before: true,
37 after: true,
38 overrides: {
39 return: { after: true },
40 throw: { after: true },
41 case: { after: true },
42 },
43 }],
44 'linebreak-style': ['error', 'unix'],
45 'lines-around-comment': 'error',
46 'lines-around-directive': ['error', {
47 before: 'always',
48 after: 'always',
49 }],
50 'no-multiple-empty-lines': ['error', { max: 2, maxEOF: 1 }],
51 'no-trailing-spaces': 'error',
52 'no-whitespace-before-property': 'error',
53 'object-curly-spacing': ['error', 'always'],
54 'one-var-declaration-per-line': ['error', 'always'],
55 'padded-blocks': ['error', 'never'],
56 'semi-spacing': ['error', { before: false, after: true }],
57 semi: ['error', 'always'],
58 'space-before-blocks': 'error',
59 'space-before-function-paren': ['error', {
60 anonymous: 'always',
61 named: 'never',
62 asyncArrow: 'always',
63 }],
64 'space-in-parens': ['error', 'never'],
65 'space-infix-ops': 'error',
66 'space-unary-ops': ['error', {
67 words: true,
68 nonwords: false,
69 overrides: {},
70 }],
71 'spaced-comment': ['error', 'always', {
72 exceptions: ['-', '+'],
73 markers: ['=', '!'],
74 }],
75 'unicode-bom': ['error', 'never'],
76 'arrow-body-style': ['error', 'as-needed', {
77 requireReturnForObjectLiteral: false,
78 }],
79 'arrow-parens': ['error', 'as-needed', {
80 requireForBlockBody: true,
81 }],
82 'arrow-spacing': ['error', { before: true, after: true }],
83 'generator-star-spacing': ['error', { before: false, after: true }],
84 'prefer-numeric-literals': 'error',
85 'rest-spread-spacing': ['error', 'never'],
86 'template-curly-spacing': 'error',
87 'yield-star-spacing': ['error', 'after'],
88 'react/jsx-closing-bracket-location': ['error', 'line-aligned'],
89 'react/jsx-curly-spacing': ['error', 'never', { allowMultiline: true }],
90 'react/jsx-equals-spacing': ['error', 'never'],
91 'react/jsx-first-prop-new-line': ['error', 'multiline'],
92 'react/jsx-indent': ['error', 2],
93 'react/jsx-indent-props': ['error', 2],
94 'react/jsx-space-before-closing': 'error',
95 'react/jsx-wrap-multilines': ['error', { declaration: true, assignment: true, return: true }],
96 },
97};