@@ -27,20 +27,25 @@ function inlineExampleModuleTemplate(parsedData: ExampleMetadata[]): string {
27
27
return result . concat ( data . component ) . concat ( data . additionalComponents ) ;
28
28
} , [ ] as string [ ] ) . join ( ',' ) ;
29
29
30
- const exampleComponents = parsedData . reduce ( ( result , data ) => {
31
- result [ data . id ] = {
32
- title : data . title ,
33
- component : data . component ,
34
- additionalFiles : data . additionalFiles ,
35
- selectorName : data . selectorName . join ( ', ' ) ,
36
- } ;
37
-
38
- return result ;
30
+ const exampleComponents = parsedData . map ( ( metaData ) => {
31
+ const fields = [
32
+ `title: '${ metaData . title . trim ( ) } '` ,
33
+ `component: ${ metaData . component } ` ,
34
+ ] ;
35
+
36
+ if ( metaData . additionalFiles . length ) {
37
+ fields . push ( `additionalFiles: ${ JSON . stringify ( metaData . additionalFiles ) } ` ) ;
38
+ }
39
+ if ( metaData . selectorName . length ) {
40
+ fields . push ( `selectorName: '${ metaData . selectorName . join ( ', ' ) } '` ) ;
41
+ }
42
+ const data = '\n' + fields . map ( field => ' ' + field ) . join ( ',\n' ) ;
43
+ return `'${ metaData . id } ': {${ data } \n }` ;
39
44
} , { } as any ) ;
40
45
41
46
return fs . readFileSync ( require . resolve ( './example-module.template' ) , 'utf8' )
42
47
. replace ( '${exampleImports}' , exampleImports )
43
- . replace ( '${exampleComponents}' , JSON . stringify ( exampleComponents ) )
48
+ . replace ( '${exampleComponents}' , `{\n ${ exampleComponents . join ( ',\n ' ) } }` )
44
49
. replace ( '${exampleList}' , `[${ exampleList } ]` ) ;
45
50
}
46
51
0 commit comments