From bb615ac3f9ef30589f1afe8a4487de8938108660 Mon Sep 17 00:00:00 2001 From: Alexander T Date: Fri, 11 May 2018 13:47:44 +0300 Subject: [PATCH 1/2] Add declarationDir to excludeSpec --- src/compiler/commandLineParser.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index f648bddefe9a7..d9bfc93b78d65 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -1607,10 +1607,13 @@ namespace ts { createCompilerDiagnosticOnlyIfJson(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, "exclude", "Array"); } } - else { - const outDir = raw.compilerOptions && raw.compilerOptions.outDir; - if (outDir) { - excludeSpecs = [outDir]; + else if (raw.compilerOptions) { + const outDir = raw.compilerOptions.outDir; + const declarationDir = raw.compilerOptions.declarationDir; + const excludeDirs = [outDir, declarationDir].filter(dir => dir); + + if (excludeDirs.length) { + excludeSpecs = excludeDirs; } } From 60d39d7f18d831706e2b067d5a8079cdd023291a Mon Sep 17 00:00:00 2001 From: Alexader Date: Fri, 11 May 2018 21:27:40 +0300 Subject: [PATCH 2/2] add tests --- src/compiler/commandLineParser.ts | 5 ++--- src/harness/unittests/tsconfigParsing.ts | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index d9bfc93b78d65..8b963409ab6ad 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -1610,10 +1610,9 @@ namespace ts { else if (raw.compilerOptions) { const outDir = raw.compilerOptions.outDir; const declarationDir = raw.compilerOptions.declarationDir; - const excludeDirs = [outDir, declarationDir].filter(dir => dir); - if (excludeDirs.length) { - excludeSpecs = excludeDirs; + if (outDir || declarationDir) { + excludeSpecs = [outDir, declarationDir].filter(d => !!d); } } diff --git a/src/harness/unittests/tsconfigParsing.ts b/src/harness/unittests/tsconfigParsing.ts index f1b4d5265816b..7a47481b88d3f 100644 --- a/src/harness/unittests/tsconfigParsing.ts +++ b/src/harness/unittests/tsconfigParsing.ts @@ -217,6 +217,29 @@ namespace ts { assertParseFileList(tsconfigWithExclude, "tsconfig.json", rootDir, allFiles, allFiles); }); + it("exclude declarationDir unless overridden", () => { + const tsconfigWithoutExclude = + `{ + "compilerOptions": { + "declarationDir": "declarations" + } + }`; + const tsconfigWithExclude = + `{ + "compilerOptions": { + "declarationDir": "declarations" + }, + "exclude": [ "types" ] + }`; + + const rootDir = "/"; + const allFiles = ["/declarations/a.d.ts", "/a.ts"]; + const expectedFiles = ["/a.ts"]; + + assertParseFileList(tsconfigWithoutExclude, "tsconfig.json", rootDir, allFiles, expectedFiles); + assertParseFileList(tsconfigWithExclude, "tsconfig.json", rootDir, allFiles, allFiles); + }); + it("implicitly exclude common package folders", () => { assertParseFileList( `{}`,