@@ -7,35 +7,58 @@ var Buffer = require('buffer').Buffer;
77
88module . exports = {
99 transform : function ( input , options ) {
10+ options = processOptions ( options ) ;
1011 var output = innerTransform ( input , options ) ;
1112 var result = output . code ;
12- if ( options && options . sourceMap ) {
13+ if ( options . sourceMap ) {
1314 var map = inlineSourceMap (
1415 output . sourceMap ,
1516 input ,
16- options . sourceFilename
17+ options . filename
1718 ) ;
1819 result += '\n' + map ;
1920 }
2021 return result ;
2122 } ,
2223 transformWithDetails : function ( input , options ) {
24+ options = processOptions ( options ) ;
2325 var output = innerTransform ( input , options ) ;
2426 var result = { } ;
2527 result . code = output . code ;
26- if ( options && options . sourceMap ) {
28+ if ( options . sourceMap ) {
2729 result . sourceMap = output . sourceMap . toJSON ( ) ;
2830 }
29- if ( options && options . sourceFilename ) {
30- result . sourceMap . sources = [ options . sourceFilename ] ;
31+ if ( options . filename ) {
32+ result . sourceMap . sources = [ options . filename ] ;
3133 }
3234 return result ;
3335 }
3436} ;
3537
36- function innerTransform ( input , options ) {
37- options = options || { } ;
38+ /**
39+ * Only copy the values that we need. We'll do some preprocessing to account for
40+ * converting command line flags to options that jstransform can actually use.
41+ */
42+ function processOptions ( opts ) {
43+ opts = opts || { } ;
44+ var options = { } ;
45+
46+ options . harmony = opts . harmony ;
47+ options . stripTypes = opts . stripTypes ;
48+ options . sourceMap = opts . sourceMap ;
49+ options . filename = opts . sourceFilename ;
50+
51+ if ( opts . es6module ) {
52+ options . sourceType = 'module' ;
53+ }
54+ if ( opts . nonStrictEs6Module ) {
55+ options . sourceType = 'nonStrict6Module' ;
56+ }
3857
58+ return options ;
59+ }
60+
61+ function innerTransform ( input , options ) {
3962 var visitorSets = [ 'react' ] ;
4063 if ( options . harmony ) {
4164 visitorSets . push ( 'harmony' ) ;
@@ -49,9 +72,6 @@ function innerTransform(input, options) {
4972 }
5073
5174 var visitorList = visitors . getVisitorsBySet ( visitorSets ) ;
52- if ( options . sourceFilename ) {
53- options . filename = options . sourceFilename ;
54- }
5575 return transform ( visitorList , input , options ) ;
5676}
5777
0 commit comments