@@ -8,22 +8,6 @@ const schema = [
88 } 
99] ; 
1010
11- const  fixShorthand  =  ( node ,  type )  =>  { 
12-  return  ( fixer )  =>  { 
13-  return  fixer . replaceText ( node ,  'Array<'  +  type  +  '>' ) ; 
14-  } ; 
15- } ; 
16- 
17- const  fixVerbose  =  ( node ,  type ,  elementTypeNode )  =>  { 
18-  return  ( fixer )  =>  { 
19-  if  ( needWrap ( elementTypeNode ) )  { 
20-  return  fixer . replaceText ( node ,  '('  +  type  +  ')[]' ) ; 
21-  }  else  { 
22-  return  fixer . replaceText ( node ,  type  +  '[]' ) ; 
23-  } 
24-  } ; 
25- } ; 
26- 
2711const  inlineType  =  ( type )  =>  { 
2812 const  inlined  =  type . replace ( / \s + / g,  ' ' ) ; 
2913
@@ -34,7 +18,7 @@ const inlineType = (type) => {
3418 } 
3519} ; 
3620
37- export  default  ( defaultConfig ,  shorthandHandler ,   verboseHandler )  =>  { 
21+ export  default  ( defaultConfig ,  simpleType )  =>  { 
3822 const  create  =  ( context )  =>  { 
3923 const  verbose  =  ( context . options [ 0 ]  ||  defaultConfig )  ===  'verbose' ; 
4024
@@ -45,15 +29,19 @@ export default (defaultConfig, shorthandHandler, verboseHandler) => {
4529 const  inlinedType  =  inlineType ( rawElementType ) ; 
4630 const  wrappedInlinedType  =  needWrap ( node . elementType )  ? '('  +  inlinedType  +  ')'  : inlinedType ; 
4731
48-  shorthandHandler ( 
49-  isSimpleType ( node . elementType ) , 
50-  verbose , 
51-  context , 
52-  node , 
53-  fixShorthand ( node ,  rawElementType ) , 
54-  inlinedType , 
55-  wrappedInlinedType 
56-  ) ; 
32+  if  ( isSimpleType ( node . elementType )  ===  simpleType  &&  verbose )  { 
33+  context . report ( { 
34+  data : { 
35+  type : inlinedType , 
36+  wrappedType : wrappedInlinedType 
37+  } , 
38+  fix  ( fixer )  { 
39+  return  fixer . replaceText ( node ,  'Array<'  +  rawElementType  +  '>' ) ; 
40+  } , 
41+  message : 'Use "Array<{{ type }}>", not "{{ wrappedType }}[]"' , 
42+  node
43+  } ) ; 
44+  } 
5745 } , 
5846 // verbose 
5947 GenericTypeAnnotation  ( node )  { 
@@ -64,15 +52,23 @@ export default (defaultConfig, shorthandHandler, verboseHandler) => {
6452 const  inlinedType  =  inlineType ( rawElementType ) ; 
6553 const  wrappedInlinedType  =  needWrap ( elementTypeNode )  ? '('  +  inlinedType  +  ')'  : inlinedType ; 
6654
67-  verboseHandler ( 
68-  isSimpleType ( elementTypeNode ) , 
69-  verbose , 
70-  context , 
71-  node , 
72-  fixVerbose ( node ,  rawElementType ,  elementTypeNode ) , 
73-  inlinedType , 
74-  wrappedInlinedType 
75-  ) ; 
55+  if  ( isSimpleType ( elementTypeNode )  ===  simpleType  &&  ! verbose )  { 
56+  context . report ( { 
57+  data : { 
58+  type : inlinedType , 
59+  wrappedType : wrappedInlinedType 
60+  } , 
61+  fix  ( fixer )  { 
62+  if  ( needWrap ( elementTypeNode ) )  { 
63+  return  fixer . replaceText ( node ,  '('  +  rawElementType  +  ')[]' ) ; 
64+  }  else  { 
65+  return  fixer . replaceText ( node ,  rawElementType  +  '[]' ) ; 
66+  } 
67+  } , 
68+  message : 'Use "{{ wrappedType }}[]", not "Array<{{ type }}>"' , 
69+  node
70+  } ) ; 
71+  } 
7672 } 
7773 } 
7874 } 
0 commit comments