@@ -29,34 +29,35 @@ export function generate(name: string, code: string): string {
29
29
} ) ;
30
30
const writer = new Writer ( ) ;
31
31
writer . declareModule ( name , ( ) => {
32
- writer . import ( '* as React' , 'react' , ( ) => {
33
- writer . nl ( ) ;
34
- walk ( ast . program , {
35
- 'ExportDefaultDeclaration' : ( node : any ) => {
36
- walk ( node , {
37
- 'ClassDeclaration' : ( node : any ) => {
38
- let propTypes : any = false ;
39
- walk ( node . body , {
40
- 'ClassProperty' : ( node : any ) => {
41
- if ( node . key . name == 'propTypes' ) {
42
- propTypes = { } ;
43
- walk ( node . value , {
44
- 'ObjectProperty' : ( node : any ) => {
45
- propTypes [ node . key . name ] = getTypeFromPropType ( node . value ) ;
46
- }
47
- } ) ;
48
- }
32
+ writer . import ( '* as React' , 'react' ) ;
33
+ writer . nl ( ) ;
34
+ walk ( ast . program , {
35
+ 'ExportDefaultDeclaration' : ( node : any ) => {
36
+ let name : string ;
37
+ let propTypes : any = false ;
38
+ walk ( node , {
39
+ 'ClassDeclaration' : ( node : any ) => {
40
+ name = node . id . name ;
41
+ walk ( node . body , {
42
+ 'ClassProperty' : ( node : any ) => {
43
+ if ( node . key . name == 'propTypes' ) {
44
+ propTypes = { } ;
45
+ walk ( node . value , {
46
+ 'ObjectProperty' : ( node : any ) => {
47
+ propTypes [ node . key . name ] = getTypeFromPropType ( node . value ) ;
48
+ }
49
+ } ) ;
49
50
}
50
- } ) ;
51
- writer . props ( node . id . name , propTypes ) ;
52
- writer . nl ( ) ;
53
- writer . exportDefault ( ( ) => {
54
- writer . class ( node . id . name , ! ! propTypes ) ;
55
- } ) ;
56
- }
57
- } ) ;
58
- }
59
- } ) ;
51
+ }
52
+ } ) ;
53
+ writer . props ( name , propTypes ) ;
54
+ writer . nl ( ) ;
55
+ }
56
+ } ) ;
57
+ writer . exportDefault ( ( ) => {
58
+ writer . class ( name , ! ! propTypes ) ;
59
+ } ) ;
60
+ }
60
61
} ) ;
61
62
} ) ;
62
63
return writer . toString ( ) ;
@@ -154,11 +155,11 @@ class Writer {
154
155
this . nl ( ) ;
155
156
}
156
157
157
- import ( decl : string , from : string , fn : ( ) = > void ) {
158
+ import ( decl : string , from : string , fn ? : ( ) => void ) {
158
159
this. indent ( ) ;
159
160
this . code += `import ${ decl } from '${ from } ';` ;
160
161
this . nl ( ) ;
161
- fn ( ) ;
162
+ fn && fn ( ) ;
162
163
}
163
164
164
165
props ( name : string , props : any , fn ?: ( ) => void ) {
0 commit comments