@@ -264,22 +264,42 @@ export async function transformMain(
264264 / t s x ? $ / . test ( lang ) &&
265265 ! descriptor . script ?. src // only normal script can have src
266266 ) {
267- const { code, map } = await transformWithEsbuild (
268- resolvedCode ,
269- filename ,
270- {
271- target : 'esnext' ,
272- charset : 'utf8' ,
273- // #430 support decorators in .vue file
274- // target can be overridden by esbuild config target
275- ...options . devServer ?. config . esbuild ,
276- loader : 'ts' ,
277- sourcemap : options . sourceMap ,
278- } ,
279- resolvedMap ,
280- )
281- resolvedCode = code
282- resolvedMap = resolvedMap ? ( map as any ) : resolvedMap
267+ // @ts -ignore Rolldown-specific
268+ const { transformWithOxc } = await import ( 'vite' )
269+ if ( transformWithOxc ) {
270+ const { code, map } = await transformWithOxc (
271+ resolvedCode ,
272+ filename ,
273+ {
274+ // #430 support decorators in .vue file
275+ // target can be overridden by oxc config target
276+ // @ts -ignore Rolldown-specific
277+ ...options . devServer ?. config . oxc ,
278+ lang : 'ts' ,
279+ sourcemap : options . sourceMap ,
280+ } ,
281+ resolvedMap ,
282+ )
283+ resolvedCode = code
284+ resolvedMap = resolvedMap ? ( map as any ) : resolvedMap
285+ } else {
286+ const { code, map } = await transformWithEsbuild (
287+ resolvedCode ,
288+ filename ,
289+ {
290+ target : 'esnext' ,
291+ charset : 'utf8' ,
292+ // #430 support decorators in .vue file
293+ // target can be overridden by esbuild config target
294+ ...options . devServer ?. config . esbuild ,
295+ loader : 'ts' ,
296+ sourcemap : options . sourceMap ,
297+ } ,
298+ resolvedMap ,
299+ )
300+ resolvedCode = code
301+ resolvedMap = resolvedMap ? ( map as any ) : resolvedMap
302+ }
283303 }
284304
285305 return {
0 commit comments