-
Notifications
You must be signed in to change notification settings - Fork 1
/
.eslintrc.js
106 lines (90 loc) · 3.42 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
101
102
103
104
105
106
'use strict';
const OFF = 0;
const ERROR = 2;
const NEVER = 'never';
const ALWAYS = 'always';
module.exports = {
// Stop ESLint from looking for a configuration file in parent folders
'root': true,
parser: 'babel-eslint',
env: {
es6: true,
},
extends: [
'airbnb-base',
'plugin:jsdoc/recommended',
],
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly',
},
parserOptions: {
ecmaVersion: 2019,
sourceType: 'module',
},
plugins: [
// 'no-for-of-loops',
// 'eslint:recommended',
// 'plugin:import/errors',
// 'plugin:import/warnings',
'jsdoc',
],
rules: {
// BEST_PRACTICES
// STRICT
// "sourceType": "module" disallows strict mode directives
strict: [ERROR, NEVER],
// IMPORTS
// Ensure consistent use of file extension within the import path
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/extensions.md
'import/extensions': [ERROR, ALWAYS, {ignorePackages: true}],
// Require modules with a single export to use a default export
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/prefer-default-export.md
'import/prefer-default-export': OFF,
// Forbid the use of extraneous packages
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-extraneous-dependencies.md
// paths are treated both as absolute paths, and relative to process.cwd()
'import/no-extraneous-dependencies': [ERROR, {
devDependencies: [
'test/**', // tape, common npm pattern
'tests/**', // also common npm pattern
'spec/**', // mocha, rspec-like pattern
'**/__tests__/**', // jest pattern
'**/__mocks__/**', // jest pattern
'test.{js,jsx}', // repos with a single test file
'test-*.{js,jsx}', // repos with multiple top-level test files
'**/*{.,_}{test,spec}.{js,jsx}', // tests where the extension or filename suffix denotes that it is a test
'**/jest.config.js', // jest config
'**/jest.setup.js', // jest setup
'**/vue.config.js', // vue-cli config
'**/webpack.config.js', // webpack config
'**/webpack.config.*.js', // webpack config
'**/rollup.config.js', // rollup config
'**/rollup.config.*.js', // rollup config
'**/gulpfile.js', // gulp config
'**/gulpfile.*.js', // gulp config
'**/Gruntfile{,.js}', // grunt config
'**/protractor.conf.js', // protractor config
'**/protractor.conf.*.js', // protractor config
'**/karma.*.js', // karma config and custom plugins
],
optionalDependencies: false,
}],
// Require a newline after the last import/require in a group
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/newline-after-import.md
'import/newline-after-import': [ERROR, { 'count': 2 }],
// Allow cyclical dependencies between modules
// https://github.com/benmosher/eslint-plugin-import/blob/d81f48a2506182738409805f5272eff4d77c9348/docs/rules/no-cycle.md
'import/no-cycle': OFF,
// JSDOC
// do not require jsdoc
// https://eslint.org/docs/rules/require-jsdoc
'require-jsdoc': OFF,
// https://github.com/gajus/eslint-plugin-jsdoc#require-jsdoc
'jsdoc/require-jsdoc': OFF,
// STYLE
// allow use of unary operators, ++ and --
// https://eslint.org/docs/rules/no-plusplus
'no-plusplus': OFF,
},
};