Skip to content

Commit

Permalink
feat: fix indent in generated js for auto-routes
Browse files Browse the repository at this point in the history
  • Loading branch information
posva committed Jan 26, 2025
1 parent 0af47d2 commit b734d9a
Showing 1 changed file with 26 additions and 18 deletions.
44 changes: 26 additions & 18 deletions src/codegen/generateRouteRecords.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,25 @@ ${node
]`
}

const definePageDataList: string[] = []

if (node.hasDefinePage) {
for (const [name, filePath] of node.value.components) {
const pageDataImport = `_definePage_${name}_${importsMap.size}`
definePageDataList.push(pageDataImport)
importsMap.addDefault(
// TODO: apply the language used in the sfc
`${filePath}?definePage&vue&lang.tsx`,
pageDataImport
)
}

// extra indent to add `_mergeRouteRecord()`
if (definePageDataList.length > 0) {
indent++
}
}

const startIndent = ' '.repeat(indent * 2)
const indentStr = ' '.repeat((indent + 1) * 2)

Expand Down Expand Up @@ -75,25 +94,14 @@ ${indentStr}],`
}${formatMeta(node, indentStr)}
${startIndent}}`

if (node.hasDefinePage) {
const definePageDataList: string[] = []
for (const [name, filePath] of node.value.components) {
const pageDataImport = `_definePage_${name}_${importsMap.size}`
definePageDataList.push(pageDataImport)
importsMap.addDefault(
// TODO: apply the language used in the sfc
`${filePath}?definePage&vue&lang.tsx`,
pageDataImport
)
}

if (definePageDataList.length) {
importsMap.add('unplugin-vue-router/runtime', '_mergeRouteRecord')
return ` _mergeRouteRecord(
if (definePageDataList.length > 0) {
// remove one tab
const mergeCallIndent = startIndent.slice(2)
importsMap.add('unplugin-vue-router/runtime', '_mergeRouteRecord')
return `${mergeCallIndent}_mergeRouteRecord(
${routeRecord},
${definePageDataList.join(',\n')}
)`
}
${definePageDataList.map((s) => startIndent + s).join(',\n')}
${mergeCallIndent})`
}

return routeRecord
Expand Down

0 comments on commit b734d9a

Please sign in to comment.