From af4cbabf72bd4547736bc3a28a3047fd6ae52ff2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Segersva=CC=88rd?= Date: Fri, 22 Jan 2016 12:21:30 +0100 Subject: [PATCH 1/2] Add failing test with a d.ts-file --- .gitignore | 2 +- test/sample/dts/main.ts | 3 +++ test/sample/dts/node_modules/an-import.d.ts | 1 + test/test.js | 11 +++++++++++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 test/sample/dts/main.ts create mode 100644 test/sample/dts/node_modules/an-import.d.ts diff --git a/.gitignore b/.gitignore index 2dc1150..3313bea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -node_modules +/node_modules dist src/*.js test/sample/**/*.js diff --git a/test/sample/dts/main.ts b/test/sample/dts/main.ts new file mode 100644 index 0000000..4d1c21f --- /dev/null +++ b/test/sample/dts/main.ts @@ -0,0 +1,3 @@ +import { foo } from 'an-import'; + +foo(); diff --git a/test/sample/dts/node_modules/an-import.d.ts b/test/sample/dts/node_modules/an-import.d.ts new file mode 100644 index 0000000..8b1a393 --- /dev/null +++ b/test/sample/dts/node_modules/an-import.d.ts @@ -0,0 +1 @@ +// empty diff --git a/test/test.js b/test/test.js index c9b05e6..5416068 100644 --- a/test/test.js +++ b/test/test.js @@ -106,6 +106,17 @@ describe( 'rollup-plugin-typescript', function () { }); }); + it( 'should not resolve .d.ts files', function () { + return rollup.rollup({ + entry: 'sample/dts/main.ts', + plugins: [ + typescript() + ] + }).then( function ( bundle ) { + assert.deepEqual( bundle.imports, [ 'an-import' ] ); + }); + }); + it( 'should transpile JSX if enabled', function () { return rollup.rollup({ entry: 'sample/jsx/main.tsx', From 04743bcec301b9f67b926251f72b6b5aa707738d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Segersva=CC=88rd?= Date: Fri, 22 Jan 2016 12:23:53 +0100 Subject: [PATCH 2/2] Do not resolve or transform d.ts-files --- src/index.ts | 10 +++++++++- src/string.ts | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 src/string.ts diff --git a/src/index.ts b/src/index.ts index 1cb8114..e142491 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,6 +3,7 @@ import { createFilter } from 'rollup-pluginutils'; import { statSync } from 'fs'; import assign from 'object-assign'; +import { endsWith } from './string'; import fixExportClass from './fixExportClass'; const jsxOptions = { @@ -28,7 +29,10 @@ function goodErrors ( diagnostic: ts.Diagnostic ): boolean { export default function typescript ( options ) { options = assign( {}, options || {} ); - const filter = createFilter( options.include || [ '*.ts+(|x)', '**/*.ts+(|x)' ], options.exclude ); + const filter = createFilter( + options.include || [ '*.ts+(|x)', '**/*.ts+(|x)' ], + options.exclude || [ '*.d.ts', '**/*.d.ts' ] ); + delete options.include; delete options.exclude; @@ -52,6 +56,10 @@ export default function typescript ( options ) { var result = typescript.nodeModuleNameResolver( importee, importer, resolveHost ); if ( result.resolvedModule && result.resolvedModule.resolvedFileName ) { + if ( endsWith( result.resolvedModule.resolvedFileName, '.d.ts' ) ) { + return null; + } + return result.resolvedModule.resolvedFileName; } diff --git a/src/string.ts b/src/string.ts new file mode 100644 index 0000000..d863554 --- /dev/null +++ b/src/string.ts @@ -0,0 +1,3 @@ +export function endsWith ( str: string, tail: string ): boolean { + return !tail.length || str.slice( -tail.length ) === tail; +}