@@ -26,6 +26,25 @@ ${node
26
26
]`
27
27
}
28
28
29
+ const definePageDataList : string [ ] = [ ]
30
+
31
+ if ( node . hasDefinePage ) {
32
+ for ( const [ name , filePath ] of node . value . components ) {
33
+ const pageDataImport = `_definePage_${ name } _${ importsMap . size } `
34
+ definePageDataList . push ( pageDataImport )
35
+ importsMap . addDefault (
36
+ // TODO: apply the language used in the sfc
37
+ `${ filePath } ?definePage&vue&lang.tsx` ,
38
+ pageDataImport
39
+ )
40
+ }
41
+
42
+ // extra indent to add `_mergeRouteRecord()`
43
+ if ( definePageDataList . length > 0 ) {
44
+ indent ++
45
+ }
46
+ }
47
+
29
48
const startIndent = ' ' . repeat ( indent * 2 )
30
49
const indentStr = ' ' . repeat ( ( indent + 1 ) * 2 )
31
50
@@ -75,25 +94,14 @@ ${indentStr}],`
75
94
} ${ formatMeta ( node , indentStr ) }
76
95
${ startIndent } }`
77
96
78
- if ( node . hasDefinePage ) {
79
- const definePageDataList : string [ ] = [ ]
80
- for ( const [ name , filePath ] of node . value . components ) {
81
- const pageDataImport = `_definePage_${ name } _${ importsMap . size } `
82
- definePageDataList . push ( pageDataImport )
83
- importsMap . addDefault (
84
- // TODO: apply the language used in the sfc
85
- `${ filePath } ?definePage&vue&lang.tsx` ,
86
- pageDataImport
87
- )
88
- }
89
-
90
- if ( definePageDataList . length ) {
91
- importsMap . add ( 'unplugin-vue-router/runtime' , '_mergeRouteRecord' )
92
- return ` _mergeRouteRecord(
97
+ if ( definePageDataList . length > 0 ) {
98
+ // remove one tab
99
+ const mergeCallIndent = startIndent . slice ( 2 )
100
+ importsMap . add ( 'unplugin-vue-router/runtime' , '_mergeRouteRecord' )
101
+ return `${ mergeCallIndent } _mergeRouteRecord(
93
102
${ routeRecord } ,
94
- ${ definePageDataList . join ( ',\n' ) }
95
- )`
96
- }
103
+ ${ definePageDataList . map ( ( s ) => startIndent + s ) . join ( ',\n' ) }
104
+ ${ mergeCallIndent } )`
97
105
}
98
106
99
107
return routeRecord
0 commit comments