UNPKG

958 BJavaScriptView Raw
1var typescript = require( 'typescript' );
2var createFilter = require( 'rollup-pluginutils' ).createFilter;
3
4var assign = Object.assign || function ( target, source ) {
5 Object.keys( source ).forEach( function ( key ) {
6 target[ key ] = source[ key ];
7 });
8
9 return target;
10};
11
12module.exports = function ( options ) {
13 options = assign( {}, options || {} );
14
15 var filter = createFilter( options.include, options.exclude );
16 delete options.include;
17 delete options.exclude;
18
19 return {
20 transform: function ( code, id ) {
21 if ( !filter( id ) ) return null;
22
23 var transformed = typescript.transpileModule( code, {
24 compilerOptions: assign( {
25 target: typescript.ScriptTarget.ES5,
26 module: typescript.ModuleKind.ES6,
27 sourceMap: true
28 }, options )
29 });
30
31
32 return {
33 code: transformed.outputText,
34 // Rollup expects `map` to be an object so we must parse the string
35 map: JSON.parse(transformed.sourceMapText)
36 };
37 }
38 };
39};