@@ -29,9 +29,9 @@ function getNodeAttrs (node) {
2929 */
3030function padContent ( content ) {
3131 return content
32- . split ( / \r ? \n / g)
33- . map ( ( ) => '' )
34- . join ( '\n' )
32+ . split ( / \r ? \n / g)
33+ . map ( ( ) => '' )
34+ . join ( '\n' )
3535}
3636
3737function validateTemplate ( code , content , id ) {
@@ -54,9 +54,9 @@ async function processTemplate (source, id, content, options, nodes, modules) {
5454 const extras = { modules, id, lang : source . attrs . lang }
5555 const code = deIndent ( source . code )
5656 const template = await (
57- options . disableCssModuleStaticReplacement !== true
58- ? templateProcessor ( code , extras , options )
59- : code
57+ options . disableCssModuleStaticReplacement !== true
58+ ? templateProcessor ( code , extras , options )
59+ : code
6060 )
6161
6262 if ( ! options . compileTemplate ) {
@@ -66,11 +66,28 @@ async function processTemplate (source, id, content, options, nodes, modules) {
6666 return htmlMinifier . minify ( template , options . htmlMinifier )
6767}
6868
69+ /* eslint-disable complexity */
70+ function normalizeLang ( any ) {
71+ switch ( any ) {
72+ case 'coffee' :
73+ case 'coffeescript' :
74+ case 'coffee-script' :
75+ return 'coffee'
76+ case 'ts' :
77+ case 'typescript' :
78+ case 'type-script' :
79+ return 'ts'
80+ default :
81+ return 'js'
82+ }
83+ }
84+ /* eslint-enable complexity */
85+
6986async function processScript ( source , id , content , options , nodes , modules , scoped ) {
7087 const template = await processTemplate ( nodes . template [ 0 ] , id , content , options , nodes , modules )
7188
7289 debug ( `Process script: ${ id } ` )
73- const lang = 'js'
90+ const lang = normalizeLang ( source . attrs . lang )
7491
7592 if ( source . attrs . lang && [ 'js' , 'babel' ] . indexOf ( source . attrs . lang ) < 0 ) {
7693 if ( ! ( source . attrs . lang in options . script ) ) {
@@ -123,7 +140,7 @@ async function processStyle (styles, id, content, options) {
123140 const style = styles [ i ]
124141
125142 const code = deIndent (
126- padContent ( content . slice ( 0 , content . indexOf ( style . code ) ) ) + style . code
143+ padContent ( content . slice ( 0 , content . indexOf ( style . code ) ) ) + style . code
127144 )
128145
129146 const map = ( new MagicString ( code ) ) . generateMap ( { hires : true } )
@@ -199,7 +216,6 @@ const hasScoped = function (styles) {
199216 return scoped || style . scoped
200217 } , false )
201218}
202-
203219export default async function vueTransform ( code , id , options ) {
204220 const nodes = parseTemplate ( code )
205221 const css = await processStyle ( nodes . style , id , code , options , nodes )
0 commit comments