-
Notifications
You must be signed in to change notification settings - Fork 1
/
best-practices.js
111 lines (111 loc) · 4.31 KB
/
best-practices.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
109
110
111
module.exports = {
'rules': {
// Enforces getter/setter pairs in objects
'accessor-pairs': 0,
// treat var statements as if they were block scoped
'block-scoped-var': 2,
// specify the maximum cyclomatic complexity allowed in a program
'complexity': [0, 11],
// require return statements to either always or never specify values
'consistent-return': 2,
// specify curly brace conventions for all control statements
'curly': [2, 'multi-line'],
// require default case in switch statements
'default-case': 0,
// encourages use of dot notation whenever possible
'dot-notation': [2, { 'allowKeywords': true}],
// enforces consistent newlines before or after dots
'dot-location': 0,
// require the use of === and !==
'eqeqeq': 2,
// make sure for-in loops have an if statement
'guard-for-in': 2,
// disallow the use of alert, confirm, and prompt
'no-alert': 1,
// disallow use of arguments.caller or arguments.callee
'no-caller': 2,
// disallow division operators explicitly at beginning of regular expression
'no-div-regex': 0,
// disallow else after a return in an if
'no-else-return': 2,
// disallow comparisons to null without a type-checking operator
'no-eq-null': 0,
// disallow use of eval()
'no-eval': 2,
// disallow adding to native types
'no-extend-native': 2,
// disallow unnecessary function binding
'no-extra-bind': 2,
// disallow fallthrough of case statements
'no-fallthrough': 2,
// disallow the use of leading or trailing decimal points in numeric literals
'no-floating-decimal': 2,
// disallow the type conversions with shorter notations
'no-implicit-coercion': 0,
// disallow use of eval()-like methods
'no-implied-eval': 2,
// disallow this keywords outside of classes or class-like objects
'no-invalid-this': 0,
// disallow usage of __iterator__ property
'no-iterator': 2,
// disallow use of labeled statements
'no-labels': [2, { 'allowLoop': false, 'allowSwitch': false }],
// disallow unnecessary nested blocks
'no-lone-blocks': 2,
// disallow creation of functions within loops
'no-loop-func': 2,
// disallow use of multiple spaces
'no-multi-spaces': 2,
// disallow use of multiline strings
'no-multi-str': 2,
// disallow reassignments of native objects
'no-native-reassign': 2,
// disallow use of new operator when not part of the assignment or comparison
'no-new': 2,
// disallow use of new operator for Function object
'no-new-func': 2,
// disallows creating new instances of String,Number, and Boolean
'no-new-wrappers': 2,
// disallow use of (old style) octal literals
'no-octal': 2,
// disallow use of octal escape sequences in string literals, such as
// var foo = 'Copyright \251';
'no-octal-escape': 2,
// disallow reassignment of function parameters
'no-param-reassign': 0,
// disallow use of process.env
'no-process-env': 0,
// disallow usage of __proto__ property
'no-proto': 2,
// disallow declaring the same variable more then once
'no-redeclare': 2,
// disallow use of assignment in return statement
'no-return-assign': 2,
// disallow use of `javascript:` urls.
'no-script-url': 2,
// disallow comparisons where both sides are exactly the same
'no-self-compare': 2,
// disallow use of comma operator
'no-sequences': 2,
// restrict what can be thrown as an exception
'no-throw-literal': 2,
// disallow usage of expressions in statement position
'no-unused-expressions': [ 2, { "allowTernary": true, "allowShortCircuit": true } ],
// disallow unnecessary .call() and .apply()
'no-useless-call': 0,
// disallow use of void operator
'no-void': 0,
// disallow usage of configurable warning terms in comments: e.g. todo
'no-warning-comments': [0, { 'terms': ['todo', 'fixme', 'xxx'], 'location': 'start' }],
// disallow use of the with statement
'no-with': 2,
// require use of the second argument for parseInt()
'radix': 2,
// requires to declare all vars on top of their containing scope
'vars-on-top': 2,
// require immediate function invocation to be wrapped in parentheses
'wrap-iife': [2, 'any'],
// require or disallow Yoda conditions
'yoda': 0
}
};