|
9 | 9 | extendPages, |
10 | 10 | installModule, |
11 | 11 | useLogger, |
| 12 | + extendRouteRules, |
12 | 13 | } from '@nuxt/kit' |
13 | 14 | import { name, version } from '../package.json' |
14 | 15 | import type { ModuleOptions } from './types/module' |
@@ -49,26 +50,11 @@ export default defineNuxtModule<ModuleOptions>({ |
49 | 50 | const resolver = createResolver(import.meta.url) |
50 | 51 | const logger = useLogger('@nuxtify/app') |
51 | 52 |
|
52 | | - // Update Nuxt config |
53 | | - _nuxt.options.ssr = false |
54 | | - _nuxt.options.routeRules = defu(_nuxt.options.routeRules || {}, { |
55 | | - // Middleware |
56 | | - '/': { |
57 | | - appMiddleware: ['auth-user-only'], |
58 | | - }, |
59 | | - '/account': { |
60 | | - appMiddleware: ['auth-user-only'], |
61 | | - }, |
62 | | - '/signin': { |
63 | | - appMiddleware: ['auth-public'], |
64 | | - }, |
65 | | - '/signup': { |
66 | | - appMiddleware: ['auth-public'], |
67 | | - }, |
68 | | - '/admin/**': { |
69 | | - appMiddleware: ['auth-super-admin-only'], |
70 | | - }, |
71 | | - }) |
| 53 | + // Warn if SSR |
| 54 | + if (_nuxt.options.ssr) { |
| 55 | + logger.warn('[@nuxtify/app]', 'Not compatible with SSR. For the most reliable experience, please set `ssr: false` in your nuxt.config.ts.') |
| 56 | + _nuxt.options.ssr = false |
| 57 | + } |
72 | 58 |
|
73 | 59 | // Expose module options to app config |
74 | 60 | _nuxt.options.appConfig.nuxtify = defu(_nuxt.options.appConfig.nuxtify, { |
@@ -113,14 +99,31 @@ export default defineNuxtModule<ModuleOptions>({ |
113 | 99 | addRouteMiddleware({ |
114 | 100 | name: 'auth-public', |
115 | 101 | path: resolver.resolve('./runtime/middleware/authPublic.ts'), |
116 | | - }) |
| 102 | + }, { prepend: true }) |
117 | 103 | addRouteMiddleware({ |
118 | 104 | name: 'auth-user-only', |
119 | 105 | path: resolver.resolve('./runtime/middleware/authUserOnly.ts'), |
120 | | - }) |
| 106 | + }, { prepend: true }) |
121 | 107 | addRouteMiddleware({ |
122 | 108 | name: 'auth-super-admin-only', |
123 | 109 | path: resolver.resolve('./runtime/middleware/authSuperAdminOnly.ts'), |
| 110 | + }, { prepend: true }) |
| 111 | + |
| 112 | + // Route rules |
| 113 | + extendRouteRules('/', { |
| 114 | + appMiddleware: ['auth-user-only'], |
| 115 | + }) |
| 116 | + extendRouteRules('/account', { |
| 117 | + appMiddleware: ['auth-user-only'], |
| 118 | + }) |
| 119 | + extendRouteRules('/signin', { |
| 120 | + appMiddleware: ['auth-public'], |
| 121 | + }) |
| 122 | + extendRouteRules('/signup', { |
| 123 | + appMiddleware: ['auth-public'], |
| 124 | + }) |
| 125 | + extendRouteRules('/admin/**', { |
| 126 | + appMiddleware: ['auth-super-admin-only'], |
124 | 127 | }) |
125 | 128 |
|
126 | 129 | // Layouts |
@@ -215,7 +218,7 @@ export default defineNuxtModule<ModuleOptions>({ |
215 | 218 | if (coreImportIndex > -1) { |
216 | 219 | imports.splice(coreImportIndex, 1) |
217 | 220 | if (_options.verboseLogs) |
218 | | - logger.info( |
| 221 | + logger.info('[@nuxtify/app]', |
219 | 222 | 'Intentionally overriding useNuxtifyConfig from @nuxtify/core.', |
220 | 223 | ) |
221 | 224 | } |
|
0 commit comments