feat(ref-transform): auto infer parser plugins

This commit is contained in:
Evan You
2021-08-23 12:20:53 -04:00
parent 0805abe573
commit 6453359852
3 changed files with 19 additions and 4 deletions

View File

@@ -63,9 +63,19 @@ export function transform(
importHelpersFrom = 'vue'
}: RefTransformOptions = {}
): RefTransformResults {
const plugins: ParserPlugin[] = parserPlugins || []
if (filename) {
if (/\.tsx?$/.test(filename)) {
plugins.push('typescript')
}
if (filename.endsWith('x')) {
plugins.push('jsx')
}
}
const ast = parse(src, {
sourceType: 'module',
plugins: [...babelParserDefaultPlugins, ...(parserPlugins || [])]
plugins: [...new Set([...babelParserDefaultPlugins, ...plugins])]
})
const s = new MagicString(src)
const res = transformAST(ast, s)