@@ -3,20 +3,39 @@ const babel = require('babel-core')
33const compileTemplate = require ( './lib/template-compiler' )
44const generateSourceMap = require ( './lib/generate-source-map' )
55const addTemplateMapping = require ( './lib/add-template-mapping' )
6+ const convertSourceMap = require ( 'convert-source-map' )
7+ const typescript = require ( 'typescript' )
68
7- const convert = require ( 'convert-source-map' )
89const splitRE = / \r ? \n / g
910
11+ function compileBabel ( scriptContent ) {
12+ return babel . transform ( scriptContent , {
13+ sourceMaps : true ,
14+ presets : [ 'es2015' ] ,
15+ plugins : [ 'transform-runtime' ]
16+ } )
17+ }
18+
19+ function compileTypescript ( scriptContent ) {
20+ return {
21+ code : typescript . transpile ( scriptContent )
22+ }
23+ }
24+
25+ function processScript ( scriptPart ) {
26+ if ( scriptPart . lang === 'typescript' || scriptPart . lang === 'ts' ) {
27+ return compileTypescript ( scriptPart . content )
28+ }
29+
30+ return compileBabel ( scriptPart . content )
31+ }
32+
1033module . exports = {
1134 process ( src , path ) {
1235 var parts = vueCompiler . parseComponent ( src , { pad : true } )
1336 const renderFunctions = compileTemplate ( parts . template . content )
1437
15- const result = babel . transform ( parts . script . content , {
16- sourceMaps : true ,
17- presets : [ 'es2015' ] ,
18- plugins : [ 'transform-runtime' ]
19- } )
38+ const result = processScript ( parts . script )
2039
2140 const script = result . code
2241
@@ -38,7 +57,7 @@ module.exports = {
3857 }
3958
4059 if ( map ) {
41- output += '\n' + convert . fromJSON ( map . toString ( ) ) . toComment ( )
60+ output += '\n' + convertSourceMap . fromJSON ( map . toString ( ) ) . toComment ( )
4261 }
4362
4463 return output
0 commit comments