1 | var typescript = require( 'typescript' );
|
2 | var createFilter = require( 'rollup-pluginutils' ).createFilter;
|
3 |
|
4 | var 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 |
|
12 | module.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 |
|
35 | map: JSON.parse(transformed.sourceMapText)
|
36 | };
|
37 | }
|
38 | };
|
39 | };
|