flatlint 1.81.0 → 1.83.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.
package/ChangeLog
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
closeRoundBrace,
|
|
3
|
+
isLastPunctuator,
|
|
4
|
+
semicolon,
|
|
5
|
+
} from '#types';
|
|
2
6
|
|
|
3
7
|
export const report = () => 'Add missing round brace';
|
|
4
8
|
|
|
5
9
|
export const match = () => ({
|
|
6
|
-
'__a(__args': (
|
|
10
|
+
'__a(__args': ({__args}, path) => {
|
|
11
|
+
if (isLastPunctuator(__args, semicolon))
|
|
12
|
+
return false;
|
|
13
|
+
|
|
7
14
|
if (path.isCurrentPunctuator(closeRoundBrace))
|
|
8
15
|
return false;
|
|
9
16
|
|
|
@@ -39,7 +39,12 @@ export const match = () => ({
|
|
|
39
39
|
|
|
40
40
|
return !path.isNextPunctuator(quote);
|
|
41
41
|
},
|
|
42
|
-
'__a.__b = __expr,': (
|
|
42
|
+
'__a.__b = __expr,': (vars, path) => {
|
|
43
|
+
if (path.isPrevPunctuator())
|
|
44
|
+
return false;
|
|
45
|
+
|
|
46
|
+
return !path.isNextPunctuator([quote, openCurlyBrace]);
|
|
47
|
+
},
|
|
43
48
|
});
|
|
44
49
|
|
|
45
50
|
export const replace = () => ({
|
package/lib/runner/path.js
CHANGED
|
@@ -29,6 +29,10 @@ export const createPath = ({tokens, start, end}) => ({
|
|
|
29
29
|
tokens,
|
|
30
30
|
end,
|
|
31
31
|
}),
|
|
32
|
+
isPrevPunctuator: createIsPrevPunctuator({
|
|
33
|
+
tokens,
|
|
34
|
+
start,
|
|
35
|
+
}),
|
|
32
36
|
isInsideTemplate: createIsInsideTemplate({
|
|
33
37
|
tokens,
|
|
34
38
|
end,
|
|
@@ -66,6 +70,25 @@ const next = ({tokens, end}) => {
|
|
|
66
70
|
}
|
|
67
71
|
};
|
|
68
72
|
|
|
73
|
+
const prev = ({tokens, start}) => {
|
|
74
|
+
let i = start;
|
|
75
|
+
|
|
76
|
+
while (--i) {
|
|
77
|
+
const token = tokens[i];
|
|
78
|
+
|
|
79
|
+
if (!token)
|
|
80
|
+
return token;
|
|
81
|
+
|
|
82
|
+
if (isNewLine(token))
|
|
83
|
+
continue;
|
|
84
|
+
|
|
85
|
+
if (isWhiteSpace(token))
|
|
86
|
+
continue;
|
|
87
|
+
|
|
88
|
+
return token;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
69
92
|
const createIsNext = ({tokens, end}) => () => {
|
|
70
93
|
return Boolean(next({
|
|
71
94
|
tokens,
|
|
@@ -97,7 +120,7 @@ const createIsInsideTemplate = ({tokens, end}) => () => {
|
|
|
97
120
|
return isTemplateMiddle(current);
|
|
98
121
|
};
|
|
99
122
|
|
|
100
|
-
const createIsNextKeyword = ({tokens, end}) => (
|
|
123
|
+
const createIsNextKeyword = ({tokens, end}) => () => {
|
|
101
124
|
const current = next({
|
|
102
125
|
tokens,
|
|
103
126
|
end,
|
|
@@ -118,6 +141,18 @@ const createIsNextPunctuator = ({tokens, end}) => (punctuators) => {
|
|
|
118
141
|
return isPunctuator(current, punctuators);
|
|
119
142
|
};
|
|
120
143
|
|
|
144
|
+
const createIsPrevPunctuator = ({tokens, start}) => (punctuators) => {
|
|
145
|
+
const current = prev({
|
|
146
|
+
tokens,
|
|
147
|
+
start,
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
if (!current)
|
|
151
|
+
return false;
|
|
152
|
+
|
|
153
|
+
return isPunctuator(current, punctuators);
|
|
154
|
+
};
|
|
155
|
+
|
|
121
156
|
const createIsPrevIdentifier = ({tokens, start}) => (value) => {
|
|
122
157
|
const SPACE = 1;
|
|
123
158
|
const FUNCTION = 1;
|
package/lib/types/types.js
CHANGED
|
@@ -28,6 +28,15 @@ export const isNumericLiteral = ({type}) => type === 'NumericLiteral';
|
|
|
28
28
|
export const isNewLine = ({type}) => type === 'LineTerminatorSequence';
|
|
29
29
|
export const notWhiteSpace = (a) => !isWhiteSpace(a);
|
|
30
30
|
|
|
31
|
+
export const isLastPunctuator = (tokens, punctuator) => {
|
|
32
|
+
if (!tokens.length)
|
|
33
|
+
return false;
|
|
34
|
+
|
|
35
|
+
const last = tokens.at(-1);
|
|
36
|
+
|
|
37
|
+
return isPunctuator(last, punctuator);
|
|
38
|
+
};
|
|
39
|
+
|
|
31
40
|
export const isKeyword = (token, name) => {
|
|
32
41
|
if (!token)
|
|
33
42
|
return false;
|
|
@@ -183,4 +192,3 @@ export const isBalancedRoundBraces = (tokens) => {
|
|
|
183
192
|
|
|
184
193
|
return !roundBalance;
|
|
185
194
|
};
|
|
186
|
-
|