1
1
const { parse, compileTemplate, compileScript } = require ( '@vue/compiler-sfc' )
2
2
const { transform } = require ( '@babel/core' )
3
- const convertSourceMap = require ( 'convert-source-map' )
4
3
const babelTransformer = require ( 'babel-jest' )
5
4
6
- const generateSourceMap = require ( './generate-source-map' )
7
5
const typescriptTransformer = require ( './transformers/typescript' )
8
6
const 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')
11
9
const getVueJestConfig = require ( './utils' ) . getVueJestConfig
12
10
const getTsJestConfig = require ( './utils' ) . getTsJestConfig
13
11
const logResultErrors = require ( './utils' ) . logResultErrors
14
12
const stripInlineSourceMap = require ( './utils' ) . stripInlineSourceMap
15
13
const getCustomTransformer = require ( './utils' ) . getCustomTransformer
16
14
const loadSrc = require ( './utils' ) . loadSrc
17
15
const generateCode = require ( './generate-code' )
18
-
19
- const splitRE = / \r ? \n / g
16
+ const mapLines = require ( './map-lines' )
20
17
21
18
function resolveTransformer ( lang = 'js' , vueJestConfig ) {
22
19
const transformer = getCustomTransformer ( vueJestConfig [ 'transform' ] , lang )
@@ -34,18 +31,19 @@ function processScript(scriptPart, filePath, config) {
34
31
return null
35
32
}
36
33
37
- let externalSrc = null
34
+ let content = scriptPart . content
35
+ let filename = filePath
38
36
if ( scriptPart . src ) {
39
- scriptPart . content = loadSrc ( scriptPart . src , filePath )
40
- externalSrc = scriptPart . content
37
+ content = loadSrc ( scriptPart . src , filePath )
38
+ filename = scriptPart . src
41
39
}
42
40
43
41
const vueJestConfig = getVueJestConfig ( config )
44
42
const transformer = resolveTransformer ( scriptPart . lang , vueJestConfig )
45
43
46
- const result = transformer . process ( scriptPart . content , filePath , config )
44
+ const result = transformer . process ( content , filename , config )
47
45
result . code = stripInlineSourceMap ( result . code )
48
- result . externalSrc = externalSrc
46
+ result . map = mapLines ( scriptPart . map , result . map )
49
47
return result
50
48
}
51
49
@@ -54,14 +52,17 @@ function processScriptSetup(descriptor, filePath, config) {
54
52
return null
55
53
}
56
54
const content = compileScript ( descriptor )
55
+ const contentMap = mapLines ( descriptor . scriptSetup . map , content . map )
56
+
57
57
const vueJestConfig = getVueJestConfig ( config )
58
58
const transformer = resolveTransformer (
59
59
descriptor . scriptSetup . lang ,
60
60
vueJestConfig
61
61
)
62
62
63
63
const result = transformer . process ( content . content , filePath , config )
64
- result . code = stripInlineSourceMap ( result . code )
64
+ result . map = mapLines ( contentMap , result . map )
65
+
65
66
return result
66
67
}
67
68
@@ -114,6 +115,7 @@ function processTemplate(descriptor, filename, config) {
114
115
}
115
116
}
116
117
118
+ /*
117
119
function processStyle(styles, filename, config) {
118
120
if (!styles) {
119
121
return null
@@ -128,51 +130,31 @@ function processStyle(styles, filename, config) {
128
130
129
131
return filteredStyles.length ? filteredStyles : null
130
132
}
133
+ */
131
134
132
135
module . exports = function ( src , filename , config ) {
133
- const { descriptor } = parse ( src )
136
+ const { descriptor } = parse ( src , { filename } )
134
137
135
138
const templateResult = processTemplate ( descriptor , filename , config )
136
139
const scriptResult = processScript ( descriptor . script , filename , config )
137
140
const scriptSetupResult = processScriptSetup ( descriptor , filename , config )
141
+ /*
138
142
const stylesResult = processStyle(descriptor.styles, filename, config)
139
143
const customBlocksResult = processCustomBlocks(
140
144
descriptor.customBlocks,
141
145
filename,
142
146
config
143
147
)
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
+ */
153
149
const output = generateCode (
154
- { scriptResult, scriptSetupResult } ,
155
- templateResult ,
156
- stylesResult ,
157
- customBlocksResult ,
158
- isFunctional
159
- )
160
-
161
- const map = generateSourceMap (
162
150
scriptResult ,
163
- src ,
164
- filename ,
165
- output . renderFnStartLine ,
166
- output . renderFnEndLine ,
167
- templateLine
151
+ scriptSetupResult ,
152
+ templateResult ,
153
+ filename
168
154
)
169
155
170
- if ( map ) {
171
- output . code += '\n' + convertSourceMap . fromJSON ( map . toString ( ) ) . toComment ( )
172
- }
173
-
174
156
return {
175
157
code : output . code ,
176
- map : map && map . toJSON ( )
158
+ map : output . map . toString ( )
177
159
}
178
160
}
0 commit comments