fix(kit,schema): set esbuild target for experimental decorators (#31089)

This commit is contained in:
Daniel Roe 2025-02-23 16:48:52 +00:00
parent 7b5ba53cb6
commit aac000061b
No known key found for this signature in database
GPG Key ID: 3714AB03996F442B
2 changed files with 16 additions and 4 deletions

View File

@ -200,7 +200,6 @@ export async function _generateTypes (nuxt: Nuxt) {
/* Decorator support */
...useDecorators
? {
useDefineForClassFields: false,
experimentalDecorators: false,
}
: {},

View File

@ -9,6 +9,19 @@ export default defineResolvers({
* @type {import('esbuild').TransformOptions}
*/
options: {
target: {
$resolve: async (val, get) => {
if (typeof val === 'string') {
return val
}
// https://github.com/vitejs/vite-plugin-vue/issues/528
const useDecorators = await get('experimental').then(r => r?.decorators === true)
if (useDecorators) {
return 'es2024'
}
return 'esnext'
},
},
jsxFactory: 'h',
jsxFragment: 'Fragment',
tsconfigRaw: {
@ -19,12 +32,12 @@ export default defineResolvers({
if (!useDecorators) {
return val
}
return defu(val, {
// Force experimentalDecorators to false if decorators are enabled
return defu({
compilerOptions: {
useDefineForClassFields: false,
experimentalDecorators: false,
},
} satisfies TransformOptions['tsconfigRaw'])
} satisfies TransformOptions['tsconfigRaw'], val)
},
},
},