22 DynamicResourceError ,
33 generateJavaScript ,
44 generateJSON ,
5+ generateTypescript ,
56 generateYAML
67} from '@intlify/bundle-utils'
78import { assign , generateCodeFrame , isEmptyObject } from '@intlify/shared'
@@ -17,7 +18,7 @@ import { parse } from 'vue/compiler-sfc'
1718import { checkVuePlugin , error , getVitePlugin , raiseError , resolveNamespace , warn } from '../utils'
1819import { getVueCompiler , parseVueRequest } from '../vue'
1920
20- import type { CodeGenOptions } from '@intlify/bundle-utils'
21+ import type { CodeGenOptions , CodeGenResult } from '@intlify/bundle-utils'
2122import type { RollupPlugin , UnpluginContextMeta , UnpluginOptions } from 'unplugin'
2223import type { ResolvedOptions } from '../core/options'
2324import type { SFCLangFormat } from '../types'
@@ -274,7 +275,7 @@ export function resourcePlugin(opts: ResolvedOptions, meta: UnpluginContextMeta)
274275 debug ( 'parseOptions' , parseOptions )
275276
276277 try {
277- const { code : generatedCode , map } = generate ( code , parseOptions )
278+ const { code : generatedCode , map } = await generate ( code , parseOptions )
278279
279280 debug ( 'generated code' , generatedCode )
280281 debug ( 'sourcemap' , map , ctx . sourceMap )
@@ -323,7 +324,7 @@ export function resourcePlugin(opts: ResolvedOptions, meta: UnpluginContextMeta)
323324 }
324325
325326 const generate = getGenerator ( langInfo , generateYAML )
326- const { code : generatedCode , map } = generate ( source , parseOptions )
327+ const { code : generatedCode , map } = await generate ( source , parseOptions )
327328 debug ( 'generated code' , generatedCode )
328329 debug ( 'sourcemap' , map , ctx . sourceMap )
329330
@@ -334,9 +335,11 @@ export function resourcePlugin(opts: ResolvedOptions, meta: UnpluginContextMeta)
334335 }
335336 } as UnpluginOptions
336337}
337-
338- type GeneratorFn = typeof generateJSON | typeof generateJavaScript | typeof generateYAML
339- function getGenerator ( ext : string , fallback : GeneratorFn = generateJSON ) {
338+ type GeneratorLike = (
339+ source : string | Buffer ,
340+ options : CodeGenOptions
341+ ) => Promise < CodeGenResult < unknown > > | CodeGenResult < unknown >
342+ function getGenerator ( ext : string , fallback : GeneratorLike = generateJSON ) {
340343 if ( / \. ? j s o n 5 ? $ / . test ( ext ) ) {
341344 return generateJSON
342345 }
@@ -345,10 +348,14 @@ function getGenerator(ext: string, fallback: GeneratorFn = generateJSON) {
345348 return generateYAML
346349 }
347350
348- if ( / \. [ c | m ] ? [ j | t ] s $ / . test ( ext ) ) {
351+ if ( / \. [ c | m ] ? j s $ / . test ( ext ) ) {
349352 return generateJavaScript
350353 }
351354
355+ if ( / \. [ c | m ] ? t s $ / . test ( ext ) ) {
356+ return generateTypescript
357+ }
358+
352359 return fallback
353360}
354361
0 commit comments