-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
108 lines (93 loc) · 2.95 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
//
// The MIT License
//
// Copyright (C) 2017-Present Shota Matsuda
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
module.exports = {
extends: 'airbnb',
rules: {
// Prefer line length limit over this rule
'arrow-body-style': 0,
// Won't cause any problem
'arrow-parens': ['error', 'as-needed', {
requireForBlockBody: false,
}],
// Insane
'class-methods-use-this': 0,
// Insane
'no-bitwise': 0,
// Allow for catch statements
'no-empty': ['error', {
allowEmptyCatch: true,
}],
// Limit to 80 except import/export expressions
'max-len': ['error', 80, 2, {
ignoreUrls: true,
ignoreComments: false,
ignoreRegExpLiterals: true,
ignoreStrings: true,
ignoreTemplateLiterals: true,
}],
// Allow for names ending with "Class"
'new-cap': ['error', {
newIsCap: true,
newIsCapExceptions: [],
newIsCapExceptionPattern: 'Class$',
capIsNew: false,
capIsNewExceptions: ['Immutable.Map', 'Immutable.Set', 'Immutable.List'],
}],
// We know the math
'no-mixed-operators': ['error', {
groups: [
['%', '**'],
['%', '+'],
['%', '-'],
['%', '*'],
['%', '/'],
['**', '+'],
['**', '-'],
['**', '*'],
['**', '/'],
['&', '|', '^', '~', '<<', '>>', '>>>'],
['==', '!=', '===', '!==', '>', '>=', '<', '<='],
['&&', '||'],
['in', 'instanceof'],
],
allowSamePrecedence: false,
}],
// Not sure and we need to format codes carefully
'no-nested-ternary': 0,
// Insane
'no-plusplus': 0,
// Insane
'no-shadow': 0,
// Insane for arguments
'no-unused-vars': ['error', {
vars: 'all',
args: 'none',
ignoreRestSiblings: true,
}],
// Prefer simpler syntax
semi: ['error', 'never'],
// We disallowed semicolons
'semi-style': ['error', 'first'],
},
}