From ad72aef4b112b623e9695a638bfeaca9ae79fed3 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Thu, 21 Feb 2019 12:28:15 -0800 Subject: [PATCH] Correctly set sourceFileInfo for bundle when generating output without creating program --- src/compiler/emitter.ts | 10 ++++- .../buildInfo/emitHelpers-in-all-projects.js | 7 +++- .../multiple-emitHelpers-in-all-projects.js | 9 ++++- ...tiple-emitHelpers-in-different-projects.js | 7 +++- .../multiple-prologues-in-all-projects.js | 39 ++++++++++++++++++- ...ultiple-prologues-in-different-projects.js | 21 +++++++++- .../buildInfo/strict-in-all-projects.js | 21 +++++++++- .../buildInfo/emitHelpers-in-all-projects.js | 7 +++- .../multiple-emitHelpers-in-all-projects.js | 9 ++++- ...tiple-emitHelpers-in-different-projects.js | 7 +++- .../multiple-prologues-in-all-projects.js | 39 ++++++++++++++++++- ...ultiple-prologues-in-different-projects.js | 21 +++++++++- .../buildInfo/strict-in-all-projects.js | 21 +++++++++- 13 files changed, 204 insertions(+), 14 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index f2ad9585a13..2caf35ce786 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -537,7 +537,7 @@ namespace ts { if ((declarationMapPath && !declarationMapText) || config.options.inlineSourceMap) return declarationMapPath || "inline sourcemap decoding"; const buildInfo = JSON.parse(buildInfoText) as BuildInfo; - if (!buildInfo.bundle || !buildInfo.bundle.js || (declarationMapText && !buildInfo.bundle.dts)) return buildInfoPath!; + if (!buildInfo.bundle || !buildInfo.bundle.js || (declarationText && !buildInfo.bundle.dts)) return buildInfoPath!; const ownPrependInput = createInputFiles( jsFileText, declarationText!, @@ -578,7 +578,13 @@ namespace ts { case buildInfoPath: const newBuildInfo = JSON.parse(text) as BuildInfo; newBuildInfo.program = buildInfo.program; - outputFiles.push({ name, text: getBuildInfoText({ program: buildInfo.program, bundle: newBuildInfo.bundle }), writeByteOrderMark }); + // Update sourceFileInfo + const { js, dts } = buildInfo.bundle!; + newBuildInfo.bundle!.js!.sources = js!.sources; + if (dts) { + newBuildInfo.bundle!.dts!.sources = dts.sources; + } + outputFiles.push({ name, text: getBuildInfoText(newBuildInfo), writeByteOrderMark }); return; case declarationFilePath: if (declarationText === text) return; diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/emitHelpers-in-all-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/emitHelpers-in-all-projects.js index 1e9dea333bf..c1979573b4e 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/emitHelpers-in-all-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/emitHelpers-in-all-projects.js @@ -423,7 +423,12 @@ const { b, ...rest } = { a: 10, b: 30, yy: 30 }; "end": 1343, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "helpers": [ + "typescript:rest" + ] + } }, "dts": { "sections": [ diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-emitHelpers-in-all-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-emitHelpers-in-all-projects.js index 63d59bd34f6..1da38c5cfee 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-emitHelpers-in-all-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-emitHelpers-in-all-projects.js @@ -623,7 +623,14 @@ const { b, ...rest } = { a: 10, b: 30, yy: 30 }; "end": 2661, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "helpers": [ + "typescript:rest", + "typescript:read", + "typescript:spread" + ] + } }, "dts": { "sections": [ diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-emitHelpers-in-different-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-emitHelpers-in-different-projects.js index 8fdc4b889c3..d5ab0b8087e 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-emitHelpers-in-different-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-emitHelpers-in-different-projects.js @@ -435,7 +435,12 @@ const { b, ...rest } = { a: 10, b: 30, yy: 30 }; "end": 2118, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "helpers": [ + "typescript:rest" + ] + } }, "dts": { "sections": [ diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-prologues-in-all-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-prologues-in-all-projects.js index 5fd880c997b..b5c44951945 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-prologues-in-all-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-prologues-in-all-projects.js @@ -406,7 +406,44 @@ console.log(s); "end": 635, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "prologues": [ + { + "file": "/src/third/third_part1.ts", + "text": "\"myPrologue3\";\n\"myPrologue\";", + "directives": [ + { + "pos": -1, + "end": -1, + "expression": { + "pos": -1, + "end": -1, + "text": "use strict" + } + }, + { + "pos": 0, + "end": 14, + "expression": { + "pos": 0, + "end": 13, + "text": "myPrologue3" + } + }, + { + "pos": 14, + "end": 28, + "expression": { + "pos": 14, + "end": 27, + "text": "myPrologue" + } + } + ] + } + ] + } }, "dts": { "sections": [ diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-prologues-in-different-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-prologues-in-different-projects.js index c6b0b7a0bac..90c333575d0 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-prologues-in-different-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/multiple-prologues-in-different-projects.js @@ -367,7 +367,26 @@ console.log(s); "end": 619, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "prologues": [ + { + "file": "/src/third/third_part1.ts", + "text": "", + "directives": [ + { + "pos": -1, + "end": -1, + "expression": { + "pos": -1, + "end": -1, + "text": "use strict" + } + } + ] + } + ] + } }, "dts": { "sections": [ diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/strict-in-all-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/strict-in-all-projects.js index 78bdf9b5e93..6682bc19117 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/strict-in-all-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-declaration-doesnt-change/buildInfo/strict-in-all-projects.js @@ -355,7 +355,26 @@ console.log(s); "end": 588, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "prologues": [ + { + "file": "/src/third/third_part1.ts", + "text": "", + "directives": [ + { + "pos": -1, + "end": -1, + "expression": { + "pos": -1, + "end": -1, + "text": "use strict" + } + } + ] + } + ] + } }, "dts": { "sections": [ diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/emitHelpers-in-all-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/emitHelpers-in-all-projects.js index 250b6074ccd..8cf6875e5e0 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/emitHelpers-in-all-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/emitHelpers-in-all-projects.js @@ -466,7 +466,12 @@ function forfirstfirst_PART1Rest() { } "end": 1249, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "helpers": [ + "typescript:rest" + ] + } }, "dts": { "sections": [ diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-emitHelpers-in-all-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-emitHelpers-in-all-projects.js index 8ddedab7c0d..f2f9d02da1f 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-emitHelpers-in-all-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-emitHelpers-in-all-projects.js @@ -700,7 +700,14 @@ function forfirstfirst_PART1Rest() { } "end": 2567, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "helpers": [ + "typescript:rest", + "typescript:read", + "typescript:spread" + ] + } }, "dts": { "sections": [ diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-emitHelpers-in-different-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-emitHelpers-in-different-projects.js index a71370ff652..d434388cbc5 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-emitHelpers-in-different-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-emitHelpers-in-different-projects.js @@ -478,7 +478,12 @@ function forfirstfirst_PART1Rest() { } "end": 2024, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "helpers": [ + "typescript:rest" + ] + } }, "dts": { "sections": [ diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-prologues-in-all-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-prologues-in-all-projects.js index cc2722b1ac6..38ab0572bac 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-prologues-in-all-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-prologues-in-all-projects.js @@ -549,7 +549,44 @@ console.log(s); "end": 634, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "prologues": [ + { + "file": "/src/third/third_part1.ts", + "text": "\"myPrologue3\";\n\"myPrologue\";", + "directives": [ + { + "pos": -1, + "end": -1, + "expression": { + "pos": -1, + "end": -1, + "text": "use strict" + } + }, + { + "pos": 0, + "end": 14, + "expression": { + "pos": 0, + "end": 13, + "text": "myPrologue3" + } + }, + { + "pos": 14, + "end": 28, + "expression": { + "pos": 14, + "end": 27, + "text": "myPrologue" + } + } + ] + } + ] + } }, "dts": { "sections": [ diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-prologues-in-different-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-prologues-in-different-projects.js index 7df847b1e0e..8de94e5f231 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-prologues-in-different-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/multiple-prologues-in-different-projects.js @@ -510,7 +510,26 @@ console.log(s); "end": 618, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "prologues": [ + { + "file": "/src/third/third_part1.ts", + "text": "", + "directives": [ + { + "pos": -1, + "end": -1, + "expression": { + "pos": -1, + "end": -1, + "text": "use strict" + } + } + ] + } + ] + } }, "dts": { "sections": [ diff --git a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/strict-in-all-projects.js b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/strict-in-all-projects.js index 4cca585e2a6..f0dd9f21112 100644 --- a/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/strict-in-all-projects.js +++ b/tests/baselines/reference/tsbuild/outfile-concat/incremental-headers-change-without-dts-changes/buildInfo/strict-in-all-projects.js @@ -498,7 +498,26 @@ console.log(s); "end": 586, "kind": "sourceMapUrl" } - ] + ], + "sources": { + "prologues": [ + { + "file": "/src/third/third_part1.ts", + "text": "", + "directives": [ + { + "pos": -1, + "end": -1, + "expression": { + "pos": -1, + "end": -1, + "text": "use strict" + } + } + ] + } + ] + } }, "dts": { "sections": [