@putout/eslint-config 6.4.0 → 6.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/eslintrc.js +204 -0
  2. package/package.json +10 -8
  3. package/eslintrc.json +0 -121
package/eslintrc.js ADDED
@@ -0,0 +1,204 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ env: {
5
+ es6: true,
6
+ node: true,
7
+ },
8
+ parserOptions: {
9
+ ecmaVersion: 2022,
10
+ sourceType: 'module',
11
+ ecmaFeatures: {
12
+ jsx: true,
13
+ globalReturn: true,
14
+ },
15
+ },
16
+ rules: {
17
+ 'arrow-parens': ['error', 'always'],
18
+ 'arrow-spacing': 'error',
19
+ 'brace-style': 'error',
20
+ 'comma-dangle': ['error', 'always-multiline'],
21
+ 'comma-spacing': 'error',
22
+ 'dot-notation': 'error',
23
+ 'eol-last': ['error', 'always'],
24
+ 'func-call-spacing': 'error',
25
+ 'operator-linebreak': ['error', 'before', {
26
+ overrides: {
27
+ '=': 'none',
28
+ },
29
+ }],
30
+ 'function-paren-newline': ['error', 'multiline-arguments'],
31
+ 'key-spacing': 'error',
32
+ 'space-infix-ops': ['error', {
33
+ int32Hint: false,
34
+ }],
35
+ 'space-in-parens': 'error',
36
+ 'space-before-blocks': 'error',
37
+ 'space-before-function-paren': ['error', {
38
+ anonymous: 'never',
39
+ named: 'never',
40
+ asyncArrow: 'always',
41
+ }],
42
+ 'prefer-arrow-callback': 'error',
43
+ 'prefer-const': ['error', {
44
+ destructuring: 'all',
45
+ }],
46
+ 'prefer-destructuring': ['error', {
47
+ AssignmentExpression: {
48
+ array: true,
49
+ object: false,
50
+ },
51
+ }],
52
+ 'indent': ['error', 4],
53
+ 'implicit-arrow-linebreak': 'error',
54
+ 'quotes': ['error', 'single', {
55
+ allowTemplateLiterals: true,
56
+ }],
57
+ 'quote-props': ['error', 'consistent-as-needed'],
58
+ 'semi': 'error',
59
+ 'object-shorthand': 'error',
60
+ 'object-curly-spacing': 'error',
61
+ 'no-implicit-coercion': ['error', {
62
+ allow: ['~'],
63
+ }],
64
+ 'no-duplicate-case': 'off',
65
+ 'no-cond-assign': 'off',
66
+ 'no-empty-pattern': 'off',
67
+ 'no-control-regex': 'off',
68
+ 'no-useless-rename': 'error',
69
+ 'no-use-before-define': 'off',
70
+ 'no-process-exit': 'off',
71
+ 'no-var': 'error',
72
+ 'no-extra-parens': 'error',
73
+ 'no-multi-spaces': 'error',
74
+ 'no-else-return': ['error', {
75
+ allowElseIf: false,
76
+ }],
77
+ 'no-trailing-spaces': ['error', {
78
+ skipBlankLines: true,
79
+ }],
80
+ 'no-multiple-empty-lines': ['error', {
81
+ max: 1,
82
+ maxBOF: 0,
83
+ }],
84
+ 'no-unneeded-ternary': ['error', {
85
+ defaultAssignment: false,
86
+ }],
87
+ 'no-useless-return': 'error',
88
+ 'nonblock-statement-body-position': ['error', 'below'],
89
+ 'lines-around-directive': 'error',
90
+ 'lines-between-class-members': 'error',
91
+ 'linebreak-style': ['error', 'unix'],
92
+ 'padded-blocks': ['error', 'never'],
93
+ 'padding-line-between-statements': ['error',
94
+ ...getPaddingExport(),
95
+ ...getPaddingCjsExport(),
96
+ ...getPaddingImport(),
97
+ ...getPaddingCjsImport(),
98
+ {
99
+ blankLine: 'always',
100
+ prev: 'block-like',
101
+ next: 'for',
102
+ }, {
103
+ blankLine: 'always',
104
+ prev: '*',
105
+ next: 'if',
106
+ }, {
107
+ blankLine: 'always',
108
+ prev: 'if',
109
+ next: 'return',
110
+ }, {
111
+ blankLine: 'always',
112
+ prev: 'if',
113
+ next: 'expression',
114
+ }, {
115
+ blankLine: 'always',
116
+ prev: 'if',
117
+ next: 'const',
118
+ }, {
119
+ blankLine: 'always',
120
+ prev: 'for',
121
+ next: 'return',
122
+ }, {
123
+ blankLine: 'always',
124
+ prev: 'while',
125
+ next: 'return',
126
+ }, {
127
+ blankLine: 'always',
128
+ prev: '*',
129
+ next: 'while',
130
+ }],
131
+ 'require-atomic-updates': 'off',
132
+ 'yoda': 'error',
133
+ },
134
+ extends: [
135
+ 'eslint:recommended',
136
+ ],
137
+ };
138
+
139
+ function getPaddingExport() {
140
+ return [{
141
+ blankLine: 'always',
142
+ prev: 'export',
143
+ next: 'function',
144
+ }, {
145
+ blankLine: 'always',
146
+ prev: 'function',
147
+ next: 'export',
148
+ }, {
149
+ blankLine: 'always',
150
+ prev: 'const',
151
+ next: 'export',
152
+ }, {
153
+ blankLine: 'always',
154
+ prev: 'export',
155
+ next: 'const',
156
+ }];
157
+ }
158
+
159
+ function getPaddingImport() {
160
+ return [{
161
+ blankLine: 'always',
162
+ prev: 'import',
163
+ next: 'function',
164
+ }, {
165
+ blankLine: 'always',
166
+ prev: 'function',
167
+ next: 'import',
168
+ }];
169
+ }
170
+
171
+ function getPaddingCjsExport() {
172
+ return [{
173
+ blankLine: 'always',
174
+ prev: 'function',
175
+ next: 'export',
176
+ }, {
177
+ blankLine: 'always',
178
+ prev: 'const',
179
+ next: 'export',
180
+ }, {
181
+ blankLine: 'always',
182
+ prev: 'export',
183
+ next: 'const',
184
+ }];
185
+ }
186
+
187
+ function getPaddingCjsImport() {
188
+ return getPaddingImport().map(addCJS);
189
+ }
190
+
191
+ function addCJS({blankLine, prev, next}) {
192
+ if (/export|import/.test(prev))
193
+ prev = `cjs-${prev}`;
194
+
195
+ if (/export|import/.test(next))
196
+ next = `cjs-${next}`;
197
+
198
+ return {
199
+ blankLine,
200
+ prev,
201
+ next,
202
+ };
203
+ }
204
+
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@putout/eslint-config",
3
- "version": "6.4.0",
3
+ "version": "6.8.0",
4
+ "type": "commonjs",
4
5
  "author": "coderaiser <mnemonic.enemy@gmail.com> (https://github.com/coderaiser)",
5
6
  "description": "putout config for eslint",
6
- "homepage": "https://github.com/coderaiser/putout/tree/master/packages/eslint-config",
7
- "main": "./eslintrc.json",
8
- "exports": "./eslintrc.json",
7
+ "homepage": "https://github.com/coderaiser/putout/tree/master/packages/eslint-config#readme",
8
+ "main": "./eslintrc.js",
9
+ "exports": "./eslintrc.js",
9
10
  "release": false,
10
11
  "tag": false,
11
12
  "changelog": false,
@@ -14,12 +15,13 @@
14
15
  "url": "git://github.com/coderaiser/putout.git"
15
16
  },
16
17
  "scripts": {
17
- "lint:json": "madrun lint:json",
18
- "lint:js": "madrun lint:js",
19
18
  "lint": "madrun lint",
19
+ "test": "madrun test",
20
+ "coverage": "madrun coverage",
20
21
  "fresh:lint": "madrun fresh:lint",
21
22
  "lint:fresh": "madrun lint:fresh",
22
- "fix:lint": "madrun fix:lint"
23
+ "fix:lint": "madrun fix:lint",
24
+ "prepublishOnly": "madrun prepublishOnly"
23
25
  },
24
26
  "dependencies": {},
25
27
  "peerDependencies": {
@@ -32,8 +34,8 @@
32
34
  "eslint-config"
33
35
  ],
34
36
  "devDependencies": {
37
+ "@putout/test": "^4.3.0",
35
38
  "c8": "^7.5.0",
36
- "jsonlint": "^1.6.3",
37
39
  "madrun": "^8.0.1",
38
40
  "putout": "*"
39
41
  },
package/eslintrc.json DELETED
@@ -1,121 +0,0 @@
1
- {
2
- "env": {
3
- "es6": true,
4
- "node": true
5
- },
6
- "parserOptions": {
7
- "ecmaVersion": 2022,
8
- "sourceType": "module",
9
- "ecmaFeatures": {
10
- "jsx": true,
11
- "globalReturn": true
12
- }
13
- },
14
- "rules": {
15
- "arrow-parens": ["error", "always"],
16
- "arrow-spacing": "error",
17
- "brace-style": "error",
18
- "comma-dangle": ["error", "always-multiline"],
19
- "comma-spacing": "error",
20
- "dot-notation": "error",
21
- "eol-last": ["error", "always"],
22
- "func-call-spacing": "error",
23
- "function-paren-newline": ["error", "multiline-arguments"],
24
- "key-spacing": "error",
25
- "space-infix-ops": ["error", {
26
- "int32Hint": false
27
- }],
28
- "space-before-blocks": "error",
29
- "space-before-function-paren": ["error", {
30
- "anonymous": "never",
31
- "named": "never",
32
- "asyncArrow": "always"
33
- }],
34
- "prefer-arrow-callback": "error",
35
- "prefer-const": ["error", {
36
- "destructuring": "all"
37
- }],
38
- "prefer-destructuring": ["error", {
39
- "AssignmentExpression": {
40
- "array": true,
41
- "object": false
42
- }
43
- }],
44
- "indent": ["error", 4],
45
- "implicit-arrow-linebreak": "error",
46
- "quotes": ["error", "single", {
47
- "allowTemplateLiterals": true
48
- }],
49
- "quote-props": ["error", "consistent-as-needed"],
50
- "semi": "error",
51
- "object-shorthand": "error",
52
- "object-curly-spacing": "error",
53
- "no-implicit-coercion": ["error", {
54
- "allow": ["~"]
55
- }],
56
- "no-duplicate-case": "off",
57
- "no-cond-assign": "off",
58
- "no-empty-pattern": "off",
59
- "no-control-regex": "off",
60
- "no-useless-rename": "error",
61
- "no-use-before-define": "off",
62
- "no-process-exit": "off",
63
- "no-var": "error",
64
- "no-extra-parens": "error",
65
- "no-multi-spaces": "error",
66
- "no-else-return": ["error", {
67
- "allowElseIf": false
68
- }],
69
- "no-trailing-spaces": ["error", {
70
- "skipBlankLines": true
71
- }],
72
- "no-multiple-empty-lines": ["error", {
73
- "max": 1,
74
- "maxBOF": 0
75
- }],
76
- "no-unneeded-ternary": ["error", {
77
- "defaultAssignment": false
78
- }],
79
- "no-useless-return": "error",
80
- "nonblock-statement-body-position": ["error", "below"],
81
- "lines-around-directive": "error",
82
- "lines-between-class-members": "error",
83
- "linebreak-style": ["error", "unix"],
84
- "padded-blocks": ["error", "never"],
85
- "padding-line-between-statements": ["error", {
86
- "blankLine": "always",
87
- "prev": "*",
88
- "next": "if"
89
- }, {
90
- "blankLine": "always",
91
- "prev": "if",
92
- "next": "return"
93
- }, {
94
- "blankLine": "always",
95
- "prev": "if",
96
- "next": "expression"
97
- }, {
98
- "blankLine": "always",
99
- "prev": "if",
100
- "next": "const"
101
- }, {
102
- "blankLine": "always",
103
- "prev": "for",
104
- "next": "return"
105
- }, {
106
- "blankLine": "always",
107
- "prev": "while",
108
- "next": "return"
109
- }, {
110
- "blankLine": "always",
111
- "prev": "*",
112
- "next": "while"
113
- }],
114
- "require-atomic-updates": "off",
115
- "yoda": "error"
116
- },
117
- "extends": [
118
- "eslint:recommended"
119
- ]
120
- }
121
-