-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path.eslintrc.js
100 lines (81 loc) · 3.27 KB
/
.eslintrc.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
/*
* Copyright 2018 Adobe. All rights reserved.
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. You may obtain a copy
* of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
* OF ANY KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
const path = require('path');
module.exports = {
'env': {
'node': true,
'es6': true
},
// this is the root project for all sub modules. stop searching for any
// eslintrc files in parent directories.
'root': true,
'parserOptions': {
'sourceType': 'script',
'ecmaVersion': 10,
},
'plugins': [
'header',
],
'extends': 'airbnb',
'settings': {
'import/core-modules': ['ferrum.doctest', 'ferrum.doctest/cli']
},
'rules': {
'strict': 0,
'max-classes-per-file': 'off',
// Allow while (true) infinite loops
'no-constant-condition': ["error", { "checkLoops": false }],
// Forbid multiple statements in one line
'max-statements-per-line': ["error", { "max": 1 }],
// Allow for-of loops
'no-restricted-syntax': ['error', 'ForInStatement', 'WithStatement'],
// Allow return before else & redundant else statements
'no-else-return': 'off',
// Dangling underscore is useful to mark variables/fields as private
'no-underscore-dangle': 'off',
// We have quite a lot of use cases where assignment to function
// parameters is definitely desirable
'no-param-reassign': 'off',
// Allow marking variables unused using a underscore at the start
'no-unused-vars': ["error", {
"varsIgnorePattern": "^_.*$",
"argsIgnorePattern": "^_.*$",
"caughtErrorsIgnorePattern": "^_.*$"
}],
// Allow Anonymous generator functions
'func-names': 'off',
// Allow line break in one line arrow functions
'implicit-arrow-linebreak': 'off',
// Longer inline destructuring
'object-curly-newline': 'off',
// Required for some more complex algorithms
'no-labels': 'off',
'no-continue': 'off',
'no-plusplus': 'off',
'no-await-in-loop': 'off',
// Allow destructuring
'prefer-const': ['error', { 'destructuring': 'all' }],
// enforce license header (todo: improve plugin to support patterns for multi-lines)
'header/header': [2, 'block', ['',
' * Copyright 2019 Adobe. All rights reserved.',
' * This file is licensed to you under the Apache License, Version 2.0 (the "License");',
' * you may not use this file except in compliance with the License. You may obtain a copy',
' * of the License at http://www.apache.org/licenses/LICENSE-2.0',
' *',
' * Unless required by applicable law or agreed to in writing, software distributed under',
' * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS',
' * OF ANY KIND, either express or implied. See the License for the specific language',
' * governing permissions and limitations under the License.',
' ',
]]
}
};