Skip to content

Commit 7596bc8

Browse files
committed
feature: @putout/plugin-printer: merge-tuples-of-type-checkers: +/-
1 parent df85f87 commit 7596bc8

9 files changed

Lines changed: 38 additions & 4 deletions

File tree

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
const isJSXWithComment = createTypeChecker([
2+
['+: node.argument -> !JSXElement'],
3+
['-: node.argument.leadingComments -> +'],
4+
]);
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const isJSXWithComment = createTypeChecker([
2+
['+: node.argument -> !JSXElement'],
3+
['-: node.argument.leadingComments ->', Boolean],
4+
]);
5+
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
const isInsideIfWithElse = createTypeChecker([
2+
['-: parentPath -> !IfStatement'],
3+
['+: parentPath.node.alternate -> +'],
4+
]);
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const isInsideIfWithElse = createTypeChecker([
2+
['-: parentPath -> !IfStatement'],
3+
['+: parentPath.node.alternate', Boolean],
4+
]);
5+

packages/plugin-printer/lib/merge-tuples-of-type-checkers/fixture/merge-tuples-of-type-checkers-fix.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ export const isNewlineAfterComma = createTypeChecker([
33
['+: -> StringLiteral'],
44
['+: StringLiteral'],
55
['+', 3],
6-
['+: -> +'],
6+
['+ -> +'],
77
'+: -> StringLiteral',
88
]);
99

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export const is = createTypeChecker([
2-
[': -> -'],
2+
['-: node.consequent.length -> -'],
3+
['+: -> -'],
34
]);
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
export const is = createTypeChecker([
2+
['-: node.consequent.length -> !', Boolean],
23
['+: -> !', Boolean],
34
]);
5+

packages/plugin-printer/lib/merge-tuples-of-type-checkers/index.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,12 @@ export const report = () => `Merge tuple of type checker`;
2828
function prepareChecker(name, value) {
2929
if (name === 'Boolean') {
3030
if (value.endsWith('!'))
31-
return `${value.slice(1, -1)}-`;
31+
return `${value.slice(0, -1)}-`;
3232

33-
return `${prepareValue(value)}-> +`;
33+
if (value.endsWith('->'))
34+
return `${value} +`;
35+
36+
return `${value} -> +`;
3437
}
3538

3639
return `${prepareValue(value)}${name}`;

packages/plugin-printer/lib/merge-tuples-of-type-checkers/index.spec.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,16 @@ test('printer: merge-tuples-of-type-checkers: transform: not-boolean', (t) => {
2727
t.end();
2828
});
2929

30+
test('printer: merge-tuples-of-type-checkers: transform: boolean-no-arrow', (t) => {
31+
t.transform('boolean-no-arrow');
32+
t.end();
33+
});
34+
35+
test('printer: merge-tuples-of-type-checkers: transform: boolean-arrow', (t) => {
36+
t.transform('boolean-arrow');
37+
t.end();
38+
});
39+
3040
test('printer: merge-tuples-of-type-checkers: no report: is', (t) => {
3141
t.noReport('is');
3242
t.end();

0 commit comments

Comments
 (0)