Skip to content

Commit 048e22e

Browse files
author
Jake Teton-Landis
committed
somewhat modularize eslint-config-airbnb; add some tests
1 parent 67c0f0e commit 048e22e

File tree

6 files changed

+323
-220
lines changed

6 files changed

+323
-220
lines changed
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
module.exports = {
2+
'parser': 'babel-eslint', // https://github.com/babel/babel-eslint
3+
'env': { // http://eslint.org/docs/user-guide/configuring.html#specifying-environments
4+
'browser': true, // browser global variables
5+
'node': true // Node.js global variables and Node.js-specific rules
6+
},
7+
'ecmaFeatures': {
8+
'arrowFunctions': true,
9+
'blockBindings': true,
10+
'classes': true,
11+
'defaultParams': true,
12+
'destructuring': true,
13+
'forOf': true,
14+
'generators': false,
15+
'modules': true,
16+
'objectLiteralComputedProperties': true,
17+
'objectLiteralDuplicateProperties': false,
18+
'objectLiteralShorthandMethods': true,
19+
'objectLiteralShorthandProperties': true,
20+
'spread': true,
21+
'superInFunctions': true,
22+
'templateStrings': true,
23+
'jsx': true
24+
},
25+
'rules': {
26+
/**
27+
* Strict mode
28+
*/
29+
// babel inserts 'use strict'; for us
30+
'strict': [2, 'never'], // http://eslint.org/docs/rules/strict
31+
32+
/**
33+
* ES6
34+
*/
35+
'no-var': 2, // http://eslint.org/docs/rules/no-var
36+
'prefer-const': 2, // http://eslint.org/docs/rules/prefer-const
37+
38+
/**
39+
* Variables
40+
*/
41+
'no-shadow': 2, // http://eslint.org/docs/rules/no-shadow
42+
'no-shadow-restricted-names': 2, // http://eslint.org/docs/rules/no-shadow-restricted-names
43+
'no-unused-vars': [2, { // http://eslint.org/docs/rules/no-unused-vars
44+
'vars': 'local',
45+
'args': 'after-used'
46+
}],
47+
'no-use-before-define': 2, // http://eslint.org/docs/rules/no-use-before-define
48+
49+
/**
50+
* Possible errors
51+
*/
52+
'comma-dangle': [2, 'always-multiline'], // http://eslint.org/docs/rules/comma-dangle
53+
'no-cond-assign': [2, 'always'], // http://eslint.org/docs/rules/no-cond-assign
54+
'no-console': 1, // http://eslint.org/docs/rules/no-console
55+
'no-debugger': 1, // http://eslint.org/docs/rules/no-debugger
56+
'no-alert': 1, // http://eslint.org/docs/rules/no-alert
57+
'no-constant-condition': 1, // http://eslint.org/docs/rules/no-constant-condition
58+
'no-dupe-keys': 2, // http://eslint.org/docs/rules/no-dupe-keys
59+
'no-duplicate-case': 2, // http://eslint.org/docs/rules/no-duplicate-case
60+
'no-empty': 2, // http://eslint.org/docs/rules/no-empty
61+
'no-ex-assign': 2, // http://eslint.org/docs/rules/no-ex-assign
62+
'no-extra-boolean-cast': 0, // http://eslint.org/docs/rules/no-extra-boolean-cast
63+
'no-extra-semi': 2, // http://eslint.org/docs/rules/no-extra-semi
64+
'no-func-assign': 2, // http://eslint.org/docs/rules/no-func-assign
65+
'no-inner-declarations': 2, // http://eslint.org/docs/rules/no-inner-declarations
66+
'no-invalid-regexp': 2, // http://eslint.org/docs/rules/no-invalid-regexp
67+
'no-irregular-whitespace': 2, // http://eslint.org/docs/rules/no-irregular-whitespace
68+
'no-obj-calls': 2, // http://eslint.org/docs/rules/no-obj-calls
69+
'no-sparse-arrays': 2, // http://eslint.org/docs/rules/no-sparse-arrays
70+
'no-unreachable': 2, // http://eslint.org/docs/rules/no-unreachable
71+
'use-isnan': 2, // http://eslint.org/docs/rules/use-isnan
72+
'block-scoped-var': 2, // http://eslint.org/docs/rules/block-scoped-var
73+
74+
/**
75+
* Best practices
76+
*/
77+
'consistent-return': 2, // http://eslint.org/docs/rules/consistent-return
78+
'curly': [2, 'multi-line'], // http://eslint.org/docs/rules/curly
79+
'default-case': 2, // http://eslint.org/docs/rules/default-case
80+
'dot-notation': [2, { // http://eslint.org/docs/rules/dot-notation
81+
'allowKeywords': true
82+
}],
83+
'eqeqeq': 2, // http://eslint.org/docs/rules/eqeqeq
84+
'guard-for-in': 2, // http://eslint.org/docs/rules/guard-for-in
85+
'no-caller': 2, // http://eslint.org/docs/rules/no-caller
86+
'no-else-return': 2, // http://eslint.org/docs/rules/no-else-return
87+
'no-eq-null': 2, // http://eslint.org/docs/rules/no-eq-null
88+
'no-eval': 2, // http://eslint.org/docs/rules/no-eval
89+
'no-extend-native': 2, // http://eslint.org/docs/rules/no-extend-native
90+
'no-extra-bind': 2, // http://eslint.org/docs/rules/no-extra-bind
91+
'no-fallthrough': 2, // http://eslint.org/docs/rules/no-fallthrough
92+
'no-floating-decimal': 2, // http://eslint.org/docs/rules/no-floating-decimal
93+
'no-implied-eval': 2, // http://eslint.org/docs/rules/no-implied-eval
94+
'no-lone-blocks': 2, // http://eslint.org/docs/rules/no-lone-blocks
95+
'no-loop-func': 2, // http://eslint.org/docs/rules/no-loop-func
96+
'no-multi-str': 2, // http://eslint.org/docs/rules/no-multi-str
97+
'no-native-reassign': 2, // http://eslint.org/docs/rules/no-native-reassign
98+
'no-new': 2, // http://eslint.org/docs/rules/no-new
99+
'no-new-func': 2, // http://eslint.org/docs/rules/no-new-func
100+
'no-new-wrappers': 2, // http://eslint.org/docs/rules/no-new-wrappers
101+
'no-octal': 2, // http://eslint.org/docs/rules/no-octal
102+
'no-octal-escape': 2, // http://eslint.org/docs/rules/no-octal-escape
103+
'no-param-reassign': 2, // http://eslint.org/docs/rules/no-param-reassign
104+
'no-proto': 2, // http://eslint.org/docs/rules/no-proto
105+
'no-redeclare': 2, // http://eslint.org/docs/rules/no-redeclare
106+
'no-return-assign': 2, // http://eslint.org/docs/rules/no-return-assign
107+
'no-script-url': 2, // http://eslint.org/docs/rules/no-script-url
108+
'no-self-compare': 2, // http://eslint.org/docs/rules/no-self-compare
109+
'no-sequences': 2, // http://eslint.org/docs/rules/no-sequences
110+
'no-throw-literal': 2, // http://eslint.org/docs/rules/no-throw-literal
111+
'no-with': 2, // http://eslint.org/docs/rules/no-with
112+
'radix': 2, // http://eslint.org/docs/rules/radix
113+
'vars-on-top': 2, // http://eslint.org/docs/rules/vars-on-top
114+
'wrap-iife': [2, 'any'], // http://eslint.org/docs/rules/wrap-iife
115+
'yoda': 2, // http://eslint.org/docs/rules/yoda
116+
117+
/**
118+
* Style
119+
*/
120+
'indent': [2, 2], // http://eslint.org/docs/rules/indent
121+
'brace-style': [2, // http://eslint.org/docs/rules/brace-style
122+
'1tbs', {
123+
'allowSingleLine': true
124+
}],
125+
'quotes': [
126+
2, 'single', 'avoid-escape' // http://eslint.org/docs/rules/quotes
127+
],
128+
'camelcase': [2, { // http://eslint.org/docs/rules/camelcase
129+
'properties': 'never'
130+
}],
131+
'comma-spacing': [2, { // http://eslint.org/docs/rules/comma-spacing
132+
'before': false,
133+
'after': true
134+
}],
135+
'comma-style': [2, 'last'], // http://eslint.org/docs/rules/comma-style
136+
'eol-last': 2, // http://eslint.org/docs/rules/eol-last
137+
'func-names': 1, // http://eslint.org/docs/rules/func-names
138+
'key-spacing': [2, { // http://eslint.org/docs/rules/key-spacing
139+
'beforeColon': false,
140+
'afterColon': true
141+
}],
142+
'new-cap': [2, { // http://eslint.org/docs/rules/new-cap
143+
'newIsCap': true
144+
}],
145+
'no-multiple-empty-lines': [2, { // http://eslint.org/docs/rules/no-multiple-empty-lines
146+
'max': 2
147+
}],
148+
'no-nested-ternary': 2, // http://eslint.org/docs/rules/no-nested-ternary
149+
'no-new-object': 2, // http://eslint.org/docs/rules/no-new-object
150+
'no-spaced-func': 2, // http://eslint.org/docs/rules/no-spaced-func
151+
'no-trailing-spaces': 2, // http://eslint.org/docs/rules/no-trailing-spaces
152+
'no-extra-parens': [2, 'functions'], // http://eslint.org/docs/rules/no-extra-parens
153+
'no-underscore-dangle': 0, // http://eslint.org/docs/rules/no-underscore-dangle
154+
'one-var': [2, 'never'], // http://eslint.org/docs/rules/one-var
155+
'padded-blocks': [2, 'never'], // http://eslint.org/docs/rules/padded-blocks
156+
'semi': [2, 'always'], // http://eslint.org/docs/rules/semi
157+
'semi-spacing': [2, { // http://eslint.org/docs/rules/semi-spacing
158+
'before': false,
159+
'after': true
160+
}],
161+
'space-after-keywords': 2, // http://eslint.org/docs/rules/space-after-keywords
162+
'space-before-blocks': 2, // http://eslint.org/docs/rules/space-before-blocks
163+
'space-before-function-paren': [2, 'never'], // http://eslint.org/docs/rules/space-before-function-paren
164+
'space-infix-ops': 2, // http://eslint.org/docs/rules/space-infix-ops
165+
'space-return-throw-case': 2, // http://eslint.org/docs/rules/space-return-throw-case
166+
'spaced-comment': [2, 'always', {// http://eslint.org/docs/rules/spaced-comment
167+
'exceptions': ['-', '+'],
168+
'markers': ['=', '!'] // space here to support sprockets directives
169+
}],
170+
}
171+
};

0 commit comments

Comments
 (0)