summaryrefslogtreecommitdiff
path: root/.eslintrc
blob: c02364e40f452a98e382ea27b0d5c68385ffb4e8 (plain)
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
env:
  node: true

# enable ECMAScript features
ecmaFeatures:
  arrowFunctions: true
  binaryLiterals: true
  blockBindings: true
  classes: true
  forOf: true
  generators: true
  objectLiteralShorthandMethods: true
  objectLiteralShorthandProperties: true
  octalLiterals: true
  templateStrings: true

rules:
  # Possible Errors
  # list: https://github.com/eslint/eslint/tree/master/docs/rules#possible-errors
  ## check debugger sentence
  no-debugger: 2
  ## check duplicate arguments
  no-dupe-args: 2
  ## check duplicate object keys
  no-dupe-keys: 2
  ## check duplicate switch-case
  no-duplicate-case: 2
  ## disallow superfluous semicolons
  no-extra-semi: 2
  ## disallow assignment of exceptional params
  no-ex-assign: 2
  ## disallow unreachable code
  no-unreachable: 2
  ## require valid typeof compared string like typeof foo === 'strnig'
  valid-typeof: 2
  ## disallow controls characters in regular expressions
  no-control-regex: 2
  ## disallow extra boolean casts
  no-extra-boolean-cast : 2
  ## validate regular expressions
  no-invalid-regexp: 2
  ## forbid weird whitespace characters
  no-irregular-whitespace: 2
  ## avoid unexpected multiline expressions
  no-unexpected-multiline: 2

  # Best Practices
  # list: https://github.com/eslint/eslint/tree/master/docs/rules#best-practices
  ## require falls through comment on switch-case
  no-fallthrough: 2

  # Stylistic Issues
  # list: https://github.com/eslint/eslint/tree/master/docs/rules#stylistic-issues
  ## use single quote, we can use double quote when escape chars
  quotes: [2, "single", "avoid-escape"]
  ## 2 space indentation
  indent: [2, 2, {SwitchCase: 1}]
  ## add space after comma
  comma-spacing: 2
  ## put semi-colon
  semi: 2
  ## require spaces operator like var sum = 1 + 1;
  space-infix-ops: 2
  ## require spaces return, throw, case
  space-return-throw-case: 2
  ## no space before function, eg. 'function()'
  space-before-function-paren: [2, "never"]
  ## require space before blocks, eg 'function() {'
  space-before-blocks: [2, "always"]
  ## require parens for Constructor
  new-parens: 2
  ## max 80 length
  max-len: [2, 80, 2]
  ## max 2 consecutive empty lines
  no-multiple-empty-lines: [2, {max: 2}]
  ## require newline at end of files
  eol-last: 2
  ## no trailing spaces
  no-trailing-spaces: 2
  ## require space after keywords, eg 'for (..)'
  space-after-keywords: 2
  ## no leading/trailing spaces in parens
  space-in-parens: [2, "never"]

  # ECMAScript 6
  # list: http://eslint.org/docs/rules/#ecmascript-6
  ## Suggest using 'const' wherever possible
  prefer-const: 2
  ## Enforce parens around arrow function arguments
  arrow-parens: [2, "always"]
  ## Require a space on each side of arrow operator
  arrow-spacing: [2, {"before": true, "after": true}]
  ## Prevent using => in a condition where <= is intended
  no-arrow-condition: 2

  # Strict Mode
  # list: https://github.com/eslint/eslint/tree/master/docs/rules#strict-mode
  ## 'use strict' on top
  strict: [2, "global"]

  # Variables
  # list: https://github.com/eslint/eslint/tree/master/docs/rules#variables
  ## disallow use of undefined variables (globals)
  no-undef: 2
  ## disallow declaration of variables that are not used in the code
  no-unused-vars: [2, {"args": "none"}]

  # Custom rules in tools/eslint-rules
  require-buffer: 2
  new-with-error: [2, "Error", "RangeError", "TypeError", "SyntaxError", "ReferenceError"]


# Global scoped method and vars
globals:
  DTRACE_HTTP_CLIENT_REQUEST           : false
  LTTNG_HTTP_CLIENT_REQUEST            : false
  COUNTER_HTTP_CLIENT_REQUEST          : false
  DTRACE_HTTP_CLIENT_RESPONSE          : false
  LTTNG_HTTP_CLIENT_RESPONSE           : false
  COUNTER_HTTP_CLIENT_RESPONSE         : false
  DTRACE_HTTP_SERVER_REQUEST           : false
  LTTNG_HTTP_SERVER_REQUEST            : false
  COUNTER_HTTP_SERVER_REQUEST          : false
  DTRACE_HTTP_SERVER_RESPONSE          : false
  LTTNG_HTTP_SERVER_RESPONSE           : false
  COUNTER_HTTP_SERVER_RESPONSE         : false
  DTRACE_NET_STREAM_END                : false
  LTTNG_NET_STREAM_END                 : false
  COUNTER_NET_SERVER_CONNECTION_CLOSE  : false
  DTRACE_NET_SERVER_CONNECTION         : false
  LTTNG_NET_SERVER_CONNECTION          : false
  COUNTER_NET_SERVER_CONNECTION        : false