@@ -2,8 +2,8 @@ import { createInertiaApp } from '@inertiajs/vue3';
22import createServer from '@inertiajs/vue3/server' ;
33import { renderToString } from '@vue/server-renderer' ;
44import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers' ;
5- import { createSSRApp , h } from 'vue' ;
6- import { route as ziggyRoute } from 'ziggy-js' ;
5+ import { createSSRApp , DefineComponent , h } from 'vue' ;
6+ import { route , Router } from 'ziggy-js' ;
77
88const appName = import . meta. env . VITE_APP_NAME || 'Laravel' ;
99
@@ -12,7 +12,7 @@ createServer((page) =>
1212 page,
1313 render : renderToString ,
1414 title : ( title ) => `${ title } - ${ appName } ` ,
15- resolve : ( name ) => resolvePageComponent ( `./pages/ ${ name } .vue` , import . meta . glob ( './pages/**/*.vue' ) ) ,
15+ resolve : resolvePage ,
1616 setup ( { App, props, plugin } ) {
1717 const app = createSSRApp ( { render : ( ) => h ( App , props ) } ) ;
1818
@@ -22,15 +22,23 @@ createServer((page) =>
2222 location : new URL ( page . props . ziggy . location ) ,
2323 } ;
2424
25- // Create route function...
26- const route = ( name : string , params ?: any , absolute ?: boolean ) => ziggyRoute ( name , params , absolute , ziggyConfig ) ;
25+ // bind config to ziggyRoute function
26+ function appRoute ( ) : Router ;
27+ function appRoute ( name : string , params ?: any , absolute ?: boolean ) : string ;
28+ function appRoute ( name ?: string , params ?: any , absolute ?: boolean ) : Router | string {
29+ if ( name === undefined ) {
30+ return route ( ) ;
31+ }
32+
33+ return route ( name , params , absolute , ziggyConfig ) ;
34+ }
2735
2836 // Make route function available globally...
29- app . config . globalProperties . route = route ;
37+ app . config . globalProperties . route = appRoute ;
3038
3139 // Make route function available globally for SSR...
3240 if ( typeof window === 'undefined' ) {
33- global . route = route ;
41+ global . route = appRoute ;
3442 }
3543
3644 app . use ( plugin ) ;
@@ -39,3 +47,9 @@ createServer((page) =>
3947 } ,
4048 } ) ,
4149) ;
50+
51+ function resolvePage ( name : string ) {
52+ const pages = import . meta. glob < DefineComponent > ( './Pages/**/*.vue' ) ;
53+
54+ return resolvePageComponent < DefineComponent > ( `./Pages/${ name } .vue` , pages ) ;
55+ }
0 commit comments