@@ -2,13 +2,15 @@ const { parse, compileTemplate } = require('@vue/compiler-sfc')
2
2
const { transform } = require ( '@babel/core' )
3
3
const convertSourceMap = require ( 'convert-source-map' )
4
4
const babelTransformer = require ( 'babel-jest' )
5
+ const { transpileModule } = require ( 'typescript' )
5
6
6
7
const generateSourceMap = require ( './generate-source-map' )
7
8
const typescriptTransformer = require ( './transformers/typescript' )
8
9
const coffeescriptTransformer = require ( './transformers/coffee' )
9
10
const _processStyle = require ( './process-style' )
10
11
const processCustomBlocks = require ( './process-custom-blocks' )
11
12
const getVueJestConfig = require ( './utils' ) . getVueJestConfig
13
+ const getTsJestConfig = require ( './utils' ) . getTsJestConfig
12
14
const logResultErrors = require ( './utils' ) . logResultErrors
13
15
const stripInlineSourceMap = require ( './utils' ) . stripInlineSourceMap
14
16
const getCustomTransformer = require ( './utils' ) . getCustomTransformer
@@ -68,10 +70,19 @@ function processTemplate(template, filename, config) {
68
70
69
71
logResultErrors ( result )
70
72
71
- const babelify = transform ( result . code , { filename : 'file.js' } )
73
+ const tsconfig = getTsJestConfig ( config )
72
74
73
- return {
74
- code : babelify . code
75
+ if ( tsconfig ) {
76
+ // they are using TypeScript.
77
+ const { outputText } = transpileModule ( result . code , { tsconfig } )
78
+ return { code : outputText }
79
+ } else {
80
+ // babel
81
+ const babelify = transform ( result . code , { filename : 'file.js' } )
82
+
83
+ return {
84
+ code : babelify . code
85
+ }
75
86
}
76
87
}
77
88
0 commit comments