1
+ import type { Resolver } from '@nuxt/kit'
1
2
import type { Nuxt } from '@nuxt/schema'
2
3
import type { NitroConfig } from 'nitropack'
3
4
import type { CompatibilityFlags , RuntimeCompatibilitySchema } from './runtime/types'
@@ -129,7 +130,7 @@ export function getPresetNitroPresetCompatibility(target: string) {
129
130
return compatibility
130
131
}
131
132
132
- export async function applyNitroPresetCompatibility ( nitroConfig : NitroConfig , options : { compatibility ?: CompatibilityFlags , resolve : ( s : string ) => string , overrides ?: RuntimeCompatibilitySchema } ) : Promise < Partial < Omit < RuntimeCompatibilitySchema , 'wasm' > > > {
133
+ export async function applyNitroPresetCompatibility ( nitroConfig : NitroConfig , options : { compatibility ?: CompatibilityFlags , resolve : Resolver , overrides ?: RuntimeCompatibilitySchema } ) : Promise < Partial < Omit < RuntimeCompatibilitySchema , 'wasm' > > > {
133
134
const target = resolveNitroPreset ( nitroConfig )
134
135
const compatibility : RuntimeCompatibilitySchema = getPresetNitroPresetCompatibility ( target )
135
136
@@ -141,11 +142,12 @@ export async function applyNitroPresetCompatibility(nitroConfig: NitroConfig, op
141
142
const satoriEnabled = typeof options . compatibility ?. satori !== 'undefined' ? ! ! options . compatibility . satori : ! ! compatibility . satori
142
143
const chromiumEnabled = typeof options . compatibility ?. chromium !== 'undefined' ? ! ! options . compatibility . chromium : ! ! compatibility . chromium
143
144
// renderers
144
- nitroConfig . alias ! [ '#og-image/renderers/satori' ] = satoriEnabled ? resolve ( './runtime/server/og-image/satori/renderer' ) : resolve ( './runtime/mock/empty' )
145
- nitroConfig . alias ! [ '#og-image/renderers/chromium' ] = chromiumEnabled ? resolve ( './runtime/server/og-image/chromium/renderer' ) : resolve ( './runtime/mock/empty' )
145
+ const emptyMock = await resolve . resolvePath ( './runtime/mock/empty' )
146
+ nitroConfig . alias ! [ '#og-image/renderers/satori' ] = satoriEnabled ? await resolve . resolvePath ( './runtime/server/og-image/satori/renderer' ) : emptyMock
147
+ nitroConfig . alias ! [ '#og-image/renderers/chromium' ] = chromiumEnabled ? await resolve . resolvePath ( './runtime/server/og-image/chromium/renderer' ) : emptyMock
146
148
147
149
const resolvedCompatibility : Partial < Omit < RuntimeCompatibilitySchema , 'wasm' > > = { }
148
- function applyBinding ( key : keyof Omit < RuntimeCompatibilitySchema , 'wasm' > ) {
150
+ async function applyBinding ( key : keyof Omit < RuntimeCompatibilitySchema , 'wasm' > ) {
149
151
let binding = options . compatibility ?. [ key ]
150
152
if ( typeof binding === 'undefined' )
151
153
binding = compatibility [ key ]
@@ -160,15 +162,15 @@ export async function applyNitroPresetCompatibility(nitroConfig: NitroConfig, op
160
162
// @ts -expect-error untyped
161
163
resolvedCompatibility [ key ] = binding
162
164
return {
163
- [ `#og-image/bindings/${ key } ` ] : binding === false ? resolve ( './runtime/mock/empty' ) : resolve ( `./runtime/server/og-image/bindings/${ key } /${ binding } ` ) ,
165
+ [ `#og-image/bindings/${ key } ` ] : binding === false ? emptyMock : await resolve . resolvePath ( `./runtime/server/og-image/bindings/${ key } /${ binding } ` ) ,
164
166
}
165
167
}
166
168
nitroConfig . alias = defu (
167
- applyBinding ( 'chromium' ) ,
168
- applyBinding ( 'satori' ) ,
169
- applyBinding ( 'resvg' ) ,
170
- applyBinding ( 'sharp' ) ,
171
- applyBinding ( 'css-inline' ) ,
169
+ await applyBinding ( 'chromium' ) ,
170
+ await applyBinding ( 'satori' ) ,
171
+ await applyBinding ( 'resvg' ) ,
172
+ await applyBinding ( 'sharp' ) ,
173
+ await applyBinding ( 'css-inline' ) ,
172
174
nitroConfig . alias || { } ,
173
175
)
174
176
// if we're using any wasm modules we need to enable the wasm runtime
0 commit comments