Skip to content

Commit 45de2b7

Browse files
committed
feat: allow defining an empty name to remove a route from the map
1 parent c9f6107 commit 45de2b7

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

playground/src/pages/(some-layout).vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
<script setup lang="ts">
2+
definePage({
3+
name: '',
4+
})
5+
</script>
6+
17
<template>
28
<div>
39
This is a layout page

playground/typed-router.d.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ declare module 'vue-router/auto-routes' {
1818
* Route name map generated by unplugin-vue-router
1919
*/
2020
export interface RouteNamedMap {
21-
'/(some-layout)': RouteRecordInfo<'/(some-layout)', '/', Record<never, never>, Record<never, never>, '/(some-layout)/app' | '/(some-layout)/home'>,
2221
'/(some-layout)/app': RouteRecordInfo<'/(some-layout)/app', '/app', Record<never, never>, Record<never, never>>,
2322
'/(some-layout)/home': RouteRecordInfo<'/(some-layout)/home', '/home', Record<never, never>, Record<never, never>>,
2423
'/(test-group)': RouteRecordInfo<'/(test-group)', '/', Record<never, never>, Record<never, never>, '/(test-group)/test-group-child'>,

src/codegen/generateRouteMap.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ${node.getSortedChildren().map(generateRouteNamedMap).join('')}}`
1010
return (
1111
// if the node has a filePath, it's a component, it has a routeName and it should be referenced in the RouteNamedMap
1212
// otherwise it should be skipped to avoid navigating to a route that doesn't render anything
13-
(node.value.components.size > 0
13+
(node.value.components.size > 0 && node.name
1414
? ` '${node.name}': ${generateRouteRecordInfo(node)},\n`
1515
: '') +
1616
(node.children.size > 0

src/core/tree.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,20 @@ export class TreeNode {
228228
return this.value.fullPath
229229
}
230230

231+
get components() {
232+
return Object.fromEntries(this.value.components.entries())
233+
}
234+
231235
/**
232236
* Returns the route name of the node. If the name was overridden, it returns the override.
233237
*/
234238
get name() {
235-
return this.value.overrides.name || this.options.getRouteName(this)
239+
const overrideName = this.value.overrides.name
240+
// allows passing a null or empty name so the route is not named
241+
// and isn't listed in the route map
242+
return overrideName !== undefined
243+
? overrideName
244+
: this.options.getRouteName(this)
236245
}
237246

238247
/**

0 commit comments

Comments
 (0)