11const { parse, compileTemplate, compileScript } = require ( '@vue/compiler-sfc' )
22const { transform } = require ( '@babel/core' )
3- const convertSourceMap = require ( 'convert-source-map' )
43const babelTransformer = require ( 'babel-jest' )
54
6- const generateSourceMap = require ( './generate-source-map' )
75const typescriptTransformer = require ( './transformers/typescript' )
86const coffeescriptTransformer = require ( './transformers/coffee' )
9- const _processStyle = require ( './process-style' )
10- const processCustomBlocks = require ( './process-custom-blocks' )
7+ // const _processStyle = require('./process-style')
8+ // const processCustomBlocks = require('./process-custom-blocks')
119const getVueJestConfig = require ( './utils' ) . getVueJestConfig
1210const getTsJestConfig = require ( './utils' ) . getTsJestConfig
1311const logResultErrors = require ( './utils' ) . logResultErrors
1412const stripInlineSourceMap = require ( './utils' ) . stripInlineSourceMap
1513const getCustomTransformer = require ( './utils' ) . getCustomTransformer
1614const loadSrc = require ( './utils' ) . loadSrc
1715const generateCode = require ( './generate-code' )
18-
19- const splitRE = / \r ? \n / g
16+ const mapLines = require ( './map-lines' )
2017
2118function resolveTransformer ( lang = 'js' , vueJestConfig ) {
2219 const transformer = getCustomTransformer ( vueJestConfig [ 'transform' ] , lang )
@@ -34,18 +31,19 @@ function processScript(scriptPart, filePath, config) {
3431 return null
3532 }
3633
37- let externalSrc = null
34+ let content = scriptPart . content
35+ let filename = filePath
3836 if ( scriptPart . src ) {
39- scriptPart . content = loadSrc ( scriptPart . src , filePath )
40- externalSrc = scriptPart . content
37+ content = loadSrc ( scriptPart . src , filePath )
38+ filename = scriptPart . src
4139 }
4240
4341 const vueJestConfig = getVueJestConfig ( config )
4442 const transformer = resolveTransformer ( scriptPart . lang , vueJestConfig )
4543
46- const result = transformer . process ( scriptPart . content , filePath , config )
44+ const result = transformer . process ( content , filename , config )
4745 result . code = stripInlineSourceMap ( result . code )
48- result . externalSrc = externalSrc
46+ result . map = mapLines ( scriptPart . map , result . map )
4947 return result
5048}
5149
@@ -54,14 +52,17 @@ function processScriptSetup(descriptor, filePath, config) {
5452 return null
5553 }
5654 const content = compileScript ( descriptor )
55+ const contentMap = mapLines ( descriptor . scriptSetup . map , content . map )
56+
5757 const vueJestConfig = getVueJestConfig ( config )
5858 const transformer = resolveTransformer (
5959 descriptor . scriptSetup . lang ,
6060 vueJestConfig
6161 )
6262
6363 const result = transformer . process ( content . content , filePath , config )
64- result . code = stripInlineSourceMap ( result . code )
64+ result . map = mapLines ( contentMap , result . map )
65+
6566 return result
6667}
6768
@@ -114,6 +115,7 @@ function processTemplate(descriptor, filename, config) {
114115 }
115116}
116117
118+ /*
117119function processStyle(styles, filename, config) {
118120 if (!styles) {
119121 return null
@@ -128,51 +130,31 @@ function processStyle(styles, filename, config) {
128130
129131 return filteredStyles.length ? filteredStyles : null
130132}
133+ */
131134
132135module . exports = function ( src , filename , config ) {
133- const { descriptor } = parse ( src )
136+ const { descriptor } = parse ( src , { filename } )
134137
135138 const templateResult = processTemplate ( descriptor , filename , config )
136139 const scriptResult = processScript ( descriptor . script , filename , config )
137140 const scriptSetupResult = processScriptSetup ( descriptor , filename , config )
141+ /*
138142 const stylesResult = processStyle(descriptor.styles, filename, config)
139143 const customBlocksResult = processCustomBlocks(
140144 descriptor.customBlocks,
141145 filename,
142146 config
143147 )
144-
145- const isFunctional =
146- descriptor . template &&
147- descriptor . template . attrs &&
148- descriptor . template . attrs . functional
149-
150- const templateStart = descriptor . template && descriptor . template . start
151- const templateLine = src . slice ( 0 , templateStart ) . split ( splitRE ) . length
152-
148+ */
153149 const output = generateCode (
154- { scriptResult, scriptSetupResult } ,
155- templateResult ,
156- stylesResult ,
157- customBlocksResult ,
158- isFunctional
159- )
160-
161- const map = generateSourceMap (
162150 scriptResult ,
163- src ,
164- filename ,
165- output . renderFnStartLine ,
166- output . renderFnEndLine ,
167- templateLine
151+ scriptSetupResult ,
152+ templateResult ,
153+ filename
168154 )
169155
170- if ( map ) {
171- output . code += '\n' + convertSourceMap . fromJSON ( map . toString ( ) ) . toComment ( )
172- }
173-
174156 return {
175157 code : output . code ,
176- map : map && map . toJSON ( )
158+ map : output . map . toString ( )
177159 }
178160}
0 commit comments