@@ -56,7 +56,7 @@ describe('generateRouteRecordPath', () => {
5656 expect (
5757 generateRouteRecordPath ( { importsMap, node, paramParsersMap : new Map ( ) } )
5858 ) . toMatchInlineSnapshot ( `
59- "path: new MatcherPatternPathCustomParams (
59+ "path: new MatcherPatternPathDynamic (
6060 /^\\/a\\/([^/]+?)$/i,
6161 {
6262 b: {},
@@ -75,7 +75,7 @@ describe('generateRouteRecordPath', () => {
7575 paramParsersMap : new Map ( ) ,
7676 } )
7777 ) . toMatchInlineSnapshot ( `
78- "path: new MatcherPatternPathCustomParams (
78+ "path: new MatcherPatternPathDynamic (
7979 /^\\/a\\/([^/]+?)\\/([^/]+?)$/i,
8080 {
8181 b: {},
@@ -91,7 +91,7 @@ describe('generateRouteRecordPath', () => {
9191 expect (
9292 generateRouteRecordPath ( { importsMap, node, paramParsersMap : new Map ( ) } )
9393 ) . toMatchInlineSnapshot ( `
94- "path: new MatcherPatternPathCustomParams (
94+ "path: new MatcherPatternPathDynamic (
9595 /^\\/a\\/([^/]+?)?$/i,
9696 {
9797 b: {},
@@ -106,7 +106,7 @@ describe('generateRouteRecordPath', () => {
106106 expect (
107107 generateRouteRecordPath ( { importsMap, node, paramParsersMap : new Map ( ) } )
108108 ) . toMatchInlineSnapshot ( `
109- "path: new MatcherPatternPathCustomParams (
109+ "path: new MatcherPatternPathDynamic (
110110 /^\\/a\\/(.+?)$/i,
111111 {
112112 b: {repeat: true, },
@@ -121,7 +121,7 @@ describe('generateRouteRecordPath', () => {
121121 expect (
122122 generateRouteRecordPath ( { importsMap, node, paramParsersMap : new Map ( ) } )
123123 ) . toMatchInlineSnapshot ( `
124- "path: new MatcherPatternPathCustomParams (
124+ "path: new MatcherPatternPathDynamic (
125125 /^\\/a\\/(.+?)?$/i,
126126 {
127127 b: {repeat: true, },
@@ -139,7 +139,7 @@ describe('generateRouteRecordPath', () => {
139139 expect (
140140 generateRouteRecordPath ( { importsMap, node, paramParsersMap : new Map ( ) } )
141141 ) . toMatchInlineSnapshot ( `
142- "path: new MatcherPatternPathCustomParams (
142+ "path: new MatcherPatternPathDynamic (
143143 /^\\/a\\/a-([^/]+?)-c-([^/]+?)$/i,
144144 {
145145 b: {},
@@ -243,7 +243,7 @@ describe('generateRouteResolver', () => {
243243 },
244244 })
245245
246- export const resolver = createStaticResolver ([
246+ export const resolver = createFixedResolver ([
247247 r_2, // /b/c/d
248248 r_3, // /b/e/f
249249 r_1, // /b/c
@@ -274,7 +274,7 @@ describe('generateRouteResolver', () => {
274274 new Map ( )
275275 )
276276
277- expect ( resolver . replace ( / ^ .* ?c r e a t e S t a t i c R e s o l v e r / s, '' ) )
277+ expect ( resolver . replace ( / ^ .* ?c r e a t e F i x e d R e s o l v e r / s, '' ) )
278278 . toMatchInlineSnapshot ( `
279279 "([
280280 r_10, // /b/a-b
@@ -340,7 +340,7 @@ describe('generateRouteResolver', () => {
340340 },
341341 })
342342
343- export const resolver = createStaticResolver ([
343+ export const resolver = createFixedResolver ([
344344 r_2, // /b/c/d
345345 r_3, // /b/e/f
346346 r_1, // /b/c
@@ -381,7 +381,7 @@ describe('generateRouteResolver', () => {
381381 parent: r_0,
382382 })
383383
384- export const resolver = createStaticResolver ([
384+ export const resolver = createFixedResolver ([
385385 r_1, // /a/b/c/e
386386 r_0, // /a
387387 ])
@@ -422,7 +422,7 @@ describe('generateRouteResolver', () => {
422422 parent: r_0,
423423 })
424424
425- export const resolver = createStaticResolver ([
425+ export const resolver = createFixedResolver ([
426426 r_1, // /a/b/c
427427 ])
428428 "
@@ -460,7 +460,7 @@ describe('generateRouteResolver', () => {
460460 },
461461 })
462462
463- export const resolver = createStaticResolver ([
463+ export const resolver = createFixedResolver ([
464464 r_0, // /users
465465 ])
466466 "
@@ -494,14 +494,13 @@ describe('generateRouteResolver', () => {
494494 components: {
495495 'default': () => import('profile.vue')
496496 },
497-
498497 },
499498 _definePage_default_0
500499 )
501500 )
502501
503502
504- export const resolver = createStaticResolver ([
503+ export const resolver = createFixedResolver ([
505504 r_0, // /profile
506505 ])
507506 "
@@ -605,6 +604,22 @@ describe('route prioritization in resolver', () => {
605604 ] )
606605 } )
607606
607+ it ( 'handles catch all with prefix before generic param' , ( ) => {
608+ const tree = new PrefixTree ( DEFAULT_OPTIONS )
609+
610+ tree . insert ( 'api/v1/users' , 'api/v1/users.vue' )
611+ tree . insert ( 'api/v1/[type]' , 'api/v1/[type].vue' )
612+ tree . insert ( 'api/v1/[type]/c' , 'api/v1/[type].vue' )
613+ tree . insert ( 'api/v1/teams/[...id]' , 'api/v1/teams/[...id].vue' )
614+
615+ expect ( getRouteOrderFromResolver ( tree ) ) . toEqual ( [
616+ '/api/v1/users' ,
617+ '/api/v1/teams/:id(.*)' ,
618+ '/api/v1/:type/c' ,
619+ '/api/v1/:type' ,
620+ ] )
621+ } )
622+
608623 it ( 'handles complex subsegments in deeply nested routes' , ( ) => {
609624 const tree = new PrefixTree ( DEFAULT_OPTIONS )
610625
0 commit comments