eslint-plugin-lube 0.3.4 → 0.4.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.
@@ -0,0 +1,328 @@
1
+ /**
2
+ * @param {import("eslint").RuleTester.ValidTestCase[]} valid
3
+ * @param {import("eslint").RuleTester.InvalidTestCase[]} invalid
4
+ */
5
+ exports.module = (valid, invalid) => {
6
+ invalid.push(
7
+ {
8
+ code: `
9
+ var value = [a, b, c]
10
+ var value = [ aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc ]
11
+ var value = []
12
+ `,
13
+ errors: [
14
+ {
15
+ line: 2,
16
+ column: 17,
17
+ type: "ArrayExpression"
18
+ },
19
+ {
20
+ line: 3,
21
+ column: 17,
22
+ type: "ArrayExpression"
23
+ }
24
+ ],
25
+ output: `
26
+ var value = [ a, b, c ]
27
+ var value = [
28
+ aaaaaaaaaa,
29
+ bbbbbbbbbbb,
30
+ ccccccccccc
31
+ ]
32
+ var value = []
33
+ `
34
+ },
35
+ {
36
+ code: `
37
+ var [a, b, c] = value
38
+ var [ aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc ] = value
39
+ var [] = value
40
+ `,
41
+ errors: [
42
+ {
43
+ line: 2,
44
+ column: 9,
45
+ type: "ArrayPattern"
46
+ },
47
+ {
48
+ line: 3,
49
+ column: 9,
50
+ type: "ArrayPattern"
51
+ }
52
+ ],
53
+ output: `
54
+ var [ a, b, c ] = value
55
+ var [
56
+ aaaaaaaaaa,
57
+ bbbbbbbbbbb,
58
+ ccccccccccc
59
+ ] = value
60
+ var [] = value
61
+ `,
62
+ parserOptions: { ecmaVersion: "latest" }
63
+ },
64
+ {
65
+ code: `
66
+ var value = ( a, b, c ) => {
67
+ //
68
+ }
69
+ var value = (aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc) => {
70
+ //
71
+ }
72
+ var value = () => {}
73
+ var value = a => b
74
+ var value = async a => b
75
+ var value = async (a, b, c) => {}
76
+ `,
77
+ errors: [
78
+ {
79
+ line: 2,
80
+ column: 17,
81
+ type: "ArrowFunctionExpression"
82
+ },
83
+ {
84
+ line: 5,
85
+ column: 17,
86
+ type: "ArrowFunctionExpression"
87
+ }
88
+ ],
89
+ output: `
90
+ var value = (a, b, c) => {
91
+ //
92
+ }
93
+ var value = (
94
+ aaaaaaaaaa,
95
+ bbbbbbbbbbb,
96
+ ccccccccccc
97
+ ) => {
98
+ //
99
+ }
100
+ var value = () => {}
101
+ var value = a => b
102
+ var value = async a => b
103
+ var value = async (a, b, c) => {}
104
+ `,
105
+ parserOptions: { ecmaVersion: "latest" }
106
+ },
107
+ {
108
+ code: `
109
+ function func( a, b, c ) {
110
+ //
111
+ }
112
+ function func2(aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc) {
113
+ //
114
+ }
115
+ function func() {}
116
+ async function func() {}
117
+ `,
118
+ errors: [
119
+ {
120
+ line: 2,
121
+ column: 18,
122
+ type: "FunctionDeclaration"
123
+ },
124
+ {
125
+ line: 5,
126
+ column: 19,
127
+ type: "FunctionDeclaration"
128
+ }
129
+ ],
130
+ output: `
131
+ function func(a, b, c) {
132
+ //
133
+ }
134
+ function func2(
135
+ aaaaaaaaaa,
136
+ bbbbbbbbbbb,
137
+ ccccccccccc
138
+ ) {
139
+ //
140
+ }
141
+ function func() {}
142
+ async function func() {}
143
+ `,
144
+ parserOptions: { ecmaVersion: "latest" }
145
+ },
146
+ {
147
+ code: `
148
+ var value = function ( a, b, c ) {
149
+ //
150
+ }
151
+ var value = function (aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc) {
152
+ //
153
+ }
154
+ var value = function () {}
155
+ var value = async function () {}
156
+ `,
157
+ errors: [
158
+ {
159
+ line: 2,
160
+ column: 26,
161
+ type: "FunctionExpression"
162
+ },
163
+ {
164
+ line: 5,
165
+ column: 26,
166
+ type: "FunctionExpression"
167
+ }
168
+ ],
169
+ output: `
170
+ var value = function (a, b, c) {
171
+ //
172
+ }
173
+ var value = function (
174
+ aaaaaaaaaa,
175
+ bbbbbbbbbbb,
176
+ ccccccccccc
177
+ ) {
178
+ //
179
+ }
180
+ var value = function () {}
181
+ var value = async function () {}
182
+ `,
183
+ parserOptions: { ecmaVersion: "latest" }
184
+ },
185
+ {
186
+ code: `
187
+ func( a, b, c )
188
+ func(aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc)
189
+ func()
190
+ `,
191
+ errors: [
192
+ {
193
+ line: 2,
194
+ column: 9,
195
+ type: "CallExpression"
196
+ },
197
+ {
198
+ line: 3,
199
+ column: 9,
200
+ type: "CallExpression"
201
+ }
202
+ ],
203
+ output: `
204
+ func(a, b, c)
205
+ func(
206
+ aaaaaaaaaa,
207
+ bbbbbbbbbbb,
208
+ ccccccccccc
209
+ )
210
+ func()
211
+ `
212
+ },
213
+ {
214
+ code: `
215
+ new A( a, b, c )
216
+ new A(aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc)
217
+ new A()
218
+ `,
219
+ errors: [
220
+ {
221
+ line: 2,
222
+ column: 10,
223
+ type: "NewExpression"
224
+ },
225
+ {
226
+ line: 3,
227
+ column: 10,
228
+ type: "NewExpression"
229
+ }
230
+ ],
231
+ output: `
232
+ new A(a, b, c)
233
+ new A(
234
+ aaaaaaaaaa,
235
+ bbbbbbbbbbb,
236
+ ccccccccccc
237
+ )
238
+ new A()
239
+ `
240
+ },
241
+ {
242
+ code: `
243
+ var value = {a, b, c}
244
+ var value = { aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc }
245
+ var value = {}
246
+ `,
247
+ errors: [
248
+ {
249
+ line: 2,
250
+ column: 17,
251
+ type: "ObjectExpression"
252
+ },
253
+ {
254
+ line: 3,
255
+ column: 17,
256
+ type: "ObjectExpression"
257
+ }
258
+ ],
259
+ output: `
260
+ var value = { a, b, c }
261
+ var value = {
262
+ aaaaaaaaaa,
263
+ bbbbbbbbbbb,
264
+ ccccccccccc
265
+ }
266
+ var value = {}
267
+ `,
268
+ parserOptions: { ecmaVersion: "latest" }
269
+ },
270
+ {
271
+ code: `
272
+ var {a, b, c} = value
273
+ var { aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc } = value
274
+ var {} = value
275
+ `,
276
+ errors: [
277
+ {
278
+ line: 2,
279
+ column: 9,
280
+ type: "ObjectPattern"
281
+ },
282
+ {
283
+ line: 3,
284
+ column: 9,
285
+ type: "ObjectPattern"
286
+ }
287
+ ],
288
+ output: `
289
+ var { a, b, c } = value
290
+ var {
291
+ aaaaaaaaaa,
292
+ bbbbbbbbbbb,
293
+ ccccccccccc
294
+ } = value
295
+ var {} = value
296
+ `,
297
+ parserOptions: { ecmaVersion: "latest" }
298
+ },
299
+ {
300
+ code: `
301
+ a,
302
+ b,
303
+ c
304
+
305
+ aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc
306
+ `,
307
+ errors: [
308
+ {
309
+ line: 2,
310
+ column: 4,
311
+ type: "SequenceExpression"
312
+ },
313
+ {
314
+ line: 6,
315
+ column: 4,
316
+ type: "SequenceExpression"
317
+ }
318
+ ],
319
+ output: `
320
+ a, b, c
321
+
322
+ aaaaaaaaaa,
323
+ bbbbbbbbbbb,
324
+ ccccccccccc
325
+ `
326
+ }
327
+ )
328
+ }
@@ -0,0 +1,111 @@
1
+ /**
2
+ * @param {import("eslint").RuleTester.ValidTestCase[]} valid
3
+ * @param {import("eslint").RuleTester.InvalidTestCase[]} invalid
4
+ */
5
+ exports.module = (valid, invalid) => {
6
+ valid.push(
7
+ {
8
+ code: `
9
+ var value = [a,b,c]
10
+ var value = (a,b,c) => {}
11
+ var value = {a,b,c}
12
+ a,b,c
13
+ `,
14
+ options: [
15
+ {
16
+ checkCall: false,
17
+ checkArray: false,
18
+ checkObject: false,
19
+ checkSequence: false
20
+ }
21
+ ],
22
+ parserOptions: { ecmaVersion: "latest" }
23
+ },
24
+ {
25
+ code: `
26
+ var value = {
27
+ aaaaaaaaaa_aaaaaaaaaa_aaaaaaaaaa
28
+ }
29
+ `,
30
+ options: [ { indent: " " } ],
31
+ parserOptions: { ecmaVersion: "latest" }
32
+ },
33
+ {
34
+ code: `
35
+ var value = { aaaaaaaaaa_aaaaaaaaaa_aaaaaaaaaa }
36
+ `,
37
+ options: [ { maxLength: 40 } ],
38
+ parserOptions: { ecmaVersion: "latest" }
39
+ }
40
+ )
41
+ invalid.push(
42
+ {
43
+ code: `
44
+ var value = [a,b,c]
45
+ `,
46
+ errors: [ {} ],
47
+ options: [ { arrayBracketSpacing: true } ],
48
+ output: `
49
+ var value = [ a, b, c ]
50
+ `
51
+ },
52
+ {
53
+ code: `
54
+ var value = [a,b,c]
55
+ `,
56
+ errors: [ {} ],
57
+ options: [ { arrayBracketSpacing: false } ],
58
+ output: `
59
+ var value = [a, b, c]
60
+ `
61
+ }
62
+ )
63
+ invalid.push(
64
+ {
65
+ code: `
66
+ var value = (a,b,c) => {}
67
+ `,
68
+ errors: [ {} ],
69
+ options: [ { funcCallSpacing: true } ],
70
+ output: `
71
+ var value = ( a, b, c ) => {}
72
+ `,
73
+ parserOptions: { ecmaVersion: "latest" }
74
+ },
75
+ {
76
+ code: `
77
+ var value = (a,b,c) => {}
78
+ `,
79
+ errors: [ {} ],
80
+ options: [ { funcCallSpacing: false } ],
81
+ output: `
82
+ var value = (a, b, c) => {}
83
+ `,
84
+ parserOptions: { ecmaVersion: "latest" }
85
+ }
86
+ )
87
+ invalid.push(
88
+ {
89
+ code: `
90
+ var value = {a,b,c}
91
+ `,
92
+ errors: [ {} ],
93
+ options: [ { objectCurlySpacing: true } ],
94
+ output: `
95
+ var value = { a, b, c }
96
+ `,
97
+ parserOptions: { ecmaVersion: "latest" }
98
+ },
99
+ {
100
+ code: `
101
+ var value = {a,b,c}
102
+ `,
103
+ errors: [ {} ],
104
+ options: [ { objectCurlySpacing: false } ],
105
+ output: `
106
+ var value = {a, b, c}
107
+ `,
108
+ parserOptions: { ecmaVersion: "latest" }
109
+ }
110
+ )
111
+ }
@@ -0,0 +1,168 @@
1
+ /**
2
+ * @param {import("eslint").RuleTester.ValidTestCase[]} valid
3
+ * @param {import("eslint").RuleTester.InvalidTestCase[]} invalid
4
+ */
5
+ exports.module = (valid, invalid) => {
6
+ valid.push(
7
+ {
8
+ code: `
9
+ var value = {
10
+ aaaaaaaaaa_aaaaaaaaaa_aaaaaaaaaa
11
+ }
12
+ `,
13
+ parserOptions: { ecmaVersion: "latest" }
14
+ },
15
+ {
16
+ code: "func(a, /* a */(b)/* b */)"
17
+ },
18
+ {
19
+ code: `
20
+ var value = {
21
+ // aaa
22
+ a,
23
+ b,
24
+ c
25
+ }
26
+ `,
27
+ parserOptions: { ecmaVersion: "latest" }
28
+ },
29
+ {
30
+ code: "func(v => f(a, b, c))",
31
+ parserOptions: { ecmaVersion: "latest" }
32
+ },
33
+ {
34
+ code: `
35
+ func(
36
+ aaaaaaaaaa_bbbbbbbbbb_cccccccccc
37
+ )
38
+ .a(
39
+ aaaaaaaaaa_bbbbbbbbbb_cccccccccc
40
+ )
41
+ .b(
42
+ aaaaaaaaaa_bbbbbbbbbb_cccccccccc
43
+ )
44
+ .c(
45
+ aaaaaaaaaa_bbbbbbbbbb_cccccccccc
46
+ )
47
+ `,
48
+ parserOptions: { ecmaVersion: "latest" }
49
+ }
50
+ )
51
+ invalid.push(
52
+ {
53
+ code: `
54
+ var value = {
55
+ a: [a,b,c],
56
+ b: true,
57
+ c: {
58
+ aaaaaaaaaa: a, bbbbbbbbbb: b, c: [ aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc ],
59
+ d: { aaaaaaaaaa, bbbbbbbbbbb, ccccccccccc }
60
+ }
61
+ }
62
+ `,
63
+ errors: [
64
+ {
65
+ column: 9,
66
+ line: 3,
67
+ type: "ArrayExpression"
68
+ },
69
+ {
70
+ column: 9,
71
+ line: 5,
72
+ type: "ObjectExpression"
73
+ },
74
+ {
75
+ column: 40,
76
+ line: 6,
77
+ type: "ArrayExpression"
78
+ },
79
+ {
80
+ column: 10,
81
+ line: 7,
82
+ type: "ObjectExpression"
83
+ }
84
+ ],
85
+ output: `
86
+ var value = {
87
+ a: [ a, b, c ],
88
+ b: true,
89
+ c: {
90
+ aaaaaaaaaa: a,
91
+ bbbbbbbbbb: b,
92
+ c: [
93
+ aaaaaaaaaa,
94
+ bbbbbbbbbbb,
95
+ ccccccccccc
96
+ ],
97
+ d: {
98
+ aaaaaaaaaa,
99
+ bbbbbbbbbbb,
100
+ ccccccccccc
101
+ }
102
+ }
103
+ }
104
+ `,
105
+ parserOptions: { ecmaVersion: "latest" }
106
+ },
107
+ {
108
+ code: `
109
+ var value = {a:{b:{c:{d:{e:{f:{g:gggggggggg_gggggggggg_gggggggggg}}}}}}}
110
+ `,
111
+ errors: [
112
+ {
113
+ column: 17,
114
+ line: 2,
115
+ type: "ObjectExpression"
116
+ },
117
+ {
118
+ column: 20,
119
+ line: 2,
120
+ type: "ObjectExpression"
121
+ },
122
+ {
123
+ column: 23,
124
+ line: 2,
125
+ type: "ObjectExpression"
126
+ },
127
+ {
128
+ column: 26,
129
+ line: 2,
130
+ type: "ObjectExpression"
131
+ },
132
+ {
133
+ column: 29,
134
+ line: 2,
135
+ type: "ObjectExpression"
136
+ },
137
+ {
138
+ column: 32,
139
+ line: 2,
140
+ type: "ObjectExpression"
141
+ },
142
+ {
143
+ column: 35,
144
+ line: 2,
145
+ type: "ObjectExpression"
146
+ }
147
+ ],
148
+ output: `
149
+ var value = {
150
+ a:{
151
+ b:{
152
+ c:{
153
+ d:{
154
+ e:{
155
+ f:{
156
+ g:gggggggggg_gggggggggg_gggggggggg
157
+ }
158
+ }
159
+ }
160
+ }
161
+ }
162
+ }
163
+ }
164
+ `,
165
+ parserOptions: { ecmaVersion: "latest" }
166
+ }
167
+ )
168
+ }
@@ -0,0 +1,23 @@
1
+ "use strict"
2
+ const { RuleTester } = require("eslint")
3
+
4
+ /** @type {RuleTester.ValidTestCase[]} */
5
+ const valid = []
6
+ /** @type {RuleTester.InvalidTestCase[]} */
7
+ const invalid = []
8
+
9
+ require(
10
+ "./pretty-sequence/case_by_node_type"
11
+ ).module(valid, invalid)
12
+ require(
13
+ "./pretty-sequence/case_by_option"
14
+ ).module(valid, invalid)
15
+ require(
16
+ "./pretty-sequence/various_situations"
17
+ ).module(valid, invalid)
18
+
19
+ new RuleTester().run(
20
+ "pretty-sequence",
21
+ require("../rules/pretty-sequence"),
22
+ { valid, invalid }
23
+ )
@@ -5,46 +5,49 @@
5
5
  exports.module = (valid, invalid) => {
6
6
  valid.push(
7
7
  { code: "var s = 'Hello'" },
8
- { code: "var snake_case = 'Hello'" },
9
- { code: "var snake_case_123 = 'Hello'" },
10
- { code: "var snake_case_123 = 'Hello'" },
11
- { code: "var snake1_2_3case_4 = 'Hello'" },
12
- { code: "var SNAKE_CASE = 'Hello'" },
13
- { code: "var SNAKE1_2_3CASE_4 = 'Hello'" },
8
+ {
9
+ code: "var snake_case = 'Hello'"
10
+ },
11
+ {
12
+ code: "var snake_case_123 = 'Hello'"
13
+ },
14
+ {
15
+ code: "var snake_case_123 = 'Hello'"
16
+ },
17
+ {
18
+ code: "var snake1_2_3case_4 = 'Hello'"
19
+ },
20
+ {
21
+ code: "var SNAKE_CASE = 'Hello'"
22
+ },
23
+ {
24
+ code: "var SNAKE1_2_3CASE_4 = 'Hello'"
25
+ },
14
26
  { code: "camelCase = 'Hello'" },
15
- { code: "var snake_case = camelCase" },
16
- { code: "var PascalCase = 'Hello'" },
17
- { code: "var P1ascal2Case345 = 'Hello'" }
27
+ {
28
+ code: "var snake_case = camelCase"
29
+ },
30
+ {
31
+ code: "var PascalCase = 'Hello'"
32
+ },
33
+ {
34
+ code: "var P1ascal2Case345 = 'Hello'"
35
+ }
18
36
  )
19
37
  invalid.push(
20
38
  {
21
39
  code: "var camelCase = 'Hello'",
22
- errors: [
23
- {
24
- line: 1,
25
- column: 5
26
- }
27
- ],
40
+ errors: [ { line: 1, column: 5 } ],
28
41
  output: "var camel_case = 'Hello'"
29
42
  },
30
43
  {
31
44
  code: "var NO_SNAKE__CASE = 'Hello'",
32
- errors: [
33
- {
34
- line: 1,
35
- column: 5
36
- }
37
- ],
45
+ errors: [ { line: 1, column: 5 } ],
38
46
  output: "var NO_SNAKE__CASE = 'Hello'"
39
47
  },
40
48
  {
41
49
  code: "var NO_SNAKE_CASE_ = 'Hello'",
42
- errors: [
43
- {
44
- line: 1,
45
- column: 5
46
- }
47
- ],
50
+ errors: [ { line: 1, column: 5 } ],
48
51
  output: "var NO_SNAKE_CASE_ = 'Hello'"
49
52
  }
50
53
  )