1
1
import type { Nuxt } from '@nuxt/schema'
2
2
import type { Resolver } from '@nuxt/kit'
3
3
import {
4
- addDevServerHandler ,
5
- addServerHandler ,
4
+ // addDevServerHandler,
5
+ // addServerHandler,
6
6
// addServerImportsDir,
7
7
addPlugin ,
8
8
addPluginTemplate ,
9
+ addServerPlugin ,
9
10
} from '@nuxt/kit'
10
- import defu from 'defu'
11
+ // import defu from 'defu'
11
12
import type { HttpClientHintsOptions } from '../types'
12
13
import type { ResolvedHttpClientHintsOptions } from '../runtime/shared-types/types'
13
14
@@ -62,7 +63,7 @@ export function configure(ctx: HttpClientHintsContext, nuxt: Nuxt) {
62
63
const clientOnly = nuxt . options . _generate || ! nuxt . options . ssr
63
64
64
65
// we register the client detector only if needed and not in SSR mode
65
- if ( ( options . detectBrowser || options . detectOS || resolvedOptions . userAgent . length ) && clientOnly ) {
66
+ if ( ( resolvedOptions . detectBrowser || resolvedOptions . detectOS || resolvedOptions . userAgent . length ) && clientOnly ) {
66
67
nuxt . options . build . transpile . push ( runtimeDir )
67
68
nuxt . hook ( 'prepare:types' , ( { references } ) => {
68
69
references . push ( { path : resolver . resolve ( runtimeDir , 'plugins/types' ) } )
@@ -128,7 +129,7 @@ export function configure(ctx: HttpClientHintsContext, nuxt: Nuxt) {
128
129
129
130
addPlugin ( resolver . resolve ( runtimeDir , 'plugins/init.server' ) )
130
131
131
- if ( options . detectBrowser || options . detectOS || resolvedOptions . userAgent . length ) {
132
+ if ( resolvedOptions . detectBrowser || resolvedOptions . detectOS || resolvedOptions . userAgent . length ) {
132
133
clientDependsOn . push ( 'detect' )
133
134
serverDependsOn . push ( 'detect' )
134
135
addPlugin ( resolver . resolve ( runtimeDir , 'plugins/detect.client' ) )
@@ -148,17 +149,17 @@ export function configure(ctx: HttpClientHintsContext, nuxt: Nuxt) {
148
149
}
149
150
150
151
// Add utils to nitro config
151
- nuxt . hook ( 'nitro:config' , ( nitroConfig ) => {
152
+ /* nuxt.hook('nitro:config', (nitroConfig) => {
152
153
nitroConfig.alias = nitroConfig.alias || {}
153
154
154
155
// Inline module runtime in Nitro bundle
155
156
nitroConfig.externals = defu(
156
157
typeof nitroConfig.externals === 'object' ? nitroConfig.externals : {},
157
158
{
158
- inline : [ resolver . resolve ( './runtime/server/utils/index.js ' ) ] ,
159
+ inline: [resolver.resolve('./runtime/server/utils/index')],
159
160
},
160
161
)
161
- } )
162
+ }) */
162
163
163
164
resolvedOptions . serverImages = serverImages
164
165
? serverImages === true
@@ -169,24 +170,41 @@ export function configure(ctx: HttpClientHintsContext, nuxt: Nuxt) {
169
170
: undefined
170
171
171
172
if ( resolvedOptions . serverImages ?. length ) {
173
+ addServerPlugin ( resolver . resolve ( runtimeDir , 'server/plugin' ) )
174
+ const { serverImages, ...rest } = resolvedOptions
175
+ nuxt . options . appConfig . httpClientHints = {
176
+ ...rest ,
177
+ serverImages : serverImages . map ( r => r . source ) ,
178
+ }
179
+ /* nuxt.hook('nitro:init', (nitro) => {
180
+ nitro.options.appConfig.public ??= {}
181
+ nitro.options.appConfig.public.httpClientHints = resolvedOptions
182
+ })
183
+ nuxt.hook('nitro:config', (nitroConfig) => {
184
+ nitroConfig.runtimeConfig ??= {}
185
+ nitroConfig.runtimeConfig.public ??= {}
186
+ nitroConfig.runtimeConfig.public.httpClientHints = resolvedOptions
187
+ }) */
172
188
// Add utils to server imports
173
189
// addServerImportsDir(resolver.resolve('./runtime/utils'))
174
190
// addServerImportsDir(resolver.resolve('./runtime/server'))
175
191
if ( nuxt . options . dev ) {
176
- addDevServerHandler ( {
192
+ /* addDevServerHandler({
177
193
method: 'get',
178
194
handler: resolver.resolve(runtimeDir, 'server/index'),
179
- } )
195
+ }) */
180
196
/* nuxt.hook('nitro:init', (nitro) => {
181
197
nitro.options.devHandlers.unshift({
182
198
route: '',
183
199
handler: resolver.resolve(runtimeDir, 'server/index'),
184
200
})
185
201
}) */
186
- /* nuxt.options.devServerHandlers.push({
187
- route: '',
202
+ /* nuxt.options.devServerHandlers.unshift({
203
+ // route: '',
204
+ method: 'get',
188
205
handler: resolver.resolve(runtimeDir, 'server/index'),
189
- })
206
+ }) */
207
+ /*
190
208
addDevServerHandler({
191
209
route: '',
192
210
handler: defineEventHandler(async (event) => {
@@ -195,18 +213,18 @@ export function configure(ctx: HttpClientHintsContext, nuxt: Nuxt) {
195
213
}) */
196
214
}
197
215
else {
198
- addServerHandler ( {
216
+ /* addServerHandler({
199
217
method: 'get',
200
218
handler: resolver.resolve(runtimeDir, 'server/index'),
201
- } )
219
+ }) */
202
220
/* nuxt.hook('nitro:init', (nitro) => {
203
221
nitro.options.handlers.unshift({
204
222
route: '',
205
223
handler: resolver.resolve(runtimeDir, 'server/index'),
206
224
})
207
225
}) */
208
- /* nuxt.options.serverHandlers.push ({
209
- route: '',
226
+ /* nuxt.options.serverHandlers.unshift ({
227
+ // route: '',
210
228
handler: resolver.resolve(runtimeDir, 'server/index'),
211
229
}) */
212
230
/* addServerHandler({
0 commit comments