@@ -14,8 +14,7 @@ export type Options = {
1414 filename : string
1515 importSet : Set < string >
1616 delegateEventSet : Set < string >
17- preambleMap : Map < string , string >
18- preambleIndex : number
17+ templates : string [ ]
1918 file : BabelFile
2019 roots : {
2120 node : JSXElement | JSXFragment
@@ -43,8 +42,7 @@ export default (): {
4342 enter : ( path , state ) => {
4443 state . importSet = new Set < string > ( )
4544 state . delegateEventSet = new Set < string > ( )
46- state . preambleMap = new Map < string , string > ( )
47- state . preambleIndex = 0
45+ state . templates = [ ]
4846 state . roots = [ ]
4947 const collectRoot : VisitNodeFunction <
5048 Node ,
@@ -78,20 +76,24 @@ export default (): {
7876 } )
7977 } ,
8078 exit : ( path , state ) => {
81- const { delegateEventSet, importSet, preambleMap } = state
79+ const { delegateEventSet, importSet, templates } = state
8280
8381 const statements : string [ ] = [ ]
8482 if ( delegateEventSet . size ) {
8583 statements . unshift (
86- `_delegateEvents(${ Array . from ( delegateEventSet ) . join ( ', ' ) } );` ,
84+ `_delegateEvents(" ${ Array . from ( delegateEventSet ) . join ( '", " ' ) } " );` ,
8785 )
8886 }
8987
90- if ( preambleMap . size ) {
91- let preambleResult = ''
92- for ( const [ value , key ] of preambleMap ) {
93- preambleResult += `const ${ key } = ${ value } \n`
94- }
88+ if ( templates . length ) {
89+ let preambleResult = 'const '
90+ const definedTemplates : Record < string , string > = { }
91+ templates . forEach ( ( template , index ) => {
92+ preambleResult += `t${ index } = ${
93+ definedTemplates [ template ] || template
94+ } ${ templates . length - 1 === index ? ';' : ',' } \n`
95+ definedTemplates [ template ] = `t${ index } `
96+ } )
9597 statements . unshift ( preambleResult )
9698 }
9799
0 commit comments