diff --git a/src/testRunner/unittests/tsbuild/helpers.ts b/src/testRunner/unittests/tsbuild/helpers.ts index 97fa347cbf6..938fc433400 100644 --- a/src/testRunner/unittests/tsbuild/helpers.ts +++ b/src/testRunner/unittests/tsbuild/helpers.ts @@ -78,6 +78,7 @@ namespace ts { function generateSourceMapBaselineFiles(fs: vfs.FileSystem, mapFileNames: ReadonlyArray) { for (const mapFile of mapFileNames) { + if (!fs.existsSync(mapFile)) continue; const text = Harness.SourceMapRecorder.getSourceMapRecordWithVFS(fs, mapFile); fs.writeFileSync(`${mapFile}.baseline.txt`, text); } diff --git a/src/testRunner/unittests/tsbuild/outFile.ts b/src/testRunner/unittests/tsbuild/outFile.ts index d6b32fc6419..bdbd2dea29a 100644 --- a/src/testRunner/unittests/tsbuild/outFile.ts +++ b/src/testRunner/unittests/tsbuild/outFile.ts @@ -419,7 +419,7 @@ namespace ts { // Verify baseline with and without build info verifyOutFileScenario({ scenario: "when final project is not composite but uses project references", - modifyFs: fs => replaceText(fs, "/src/third/tsconfig.json", `"composite": true,`, ""), + modifyFs: fs => replaceText(fs, sources[project.third][source.config], `"composite": true,`, ""), ignoreDtsChanged: true, ignoreDtsUnchanged: true, baselineOnly: true @@ -540,9 +540,7 @@ namespace ts { // Verify ignore without build info and dtsChanged verifyOutFileScenario({ scenario: "strict in one dependency", - modifyFs: fs => { - enableStrict(fs, sources[project.second][source.config]); - }, + modifyFs: fs => enableStrict(fs, sources[project.second][source.config]), modifyAgainFs: fs => addPrologue(fs, "src/first/first_PART1.ts", `"myPrologue"`), ignoreWithoutBuildInfo: true, ignoreDtsChanged: true, @@ -606,9 +604,7 @@ namespace ts { // Verify ignore without build info and dtsChanged verifyOutFileScenario({ scenario: "shebang in only one dependency project", - modifyFs: fs => { - addShebang(fs, "second", "second_part1"); - }, + modifyFs: fs => addShebang(fs, "second", "second_part1"), ignoreWithoutBuildInfo: true, ignoreDtsChanged: true, baselineOnly: true @@ -798,7 +794,7 @@ ${internal} enum internalEnum { a, b, c }`); // Verify initial + incremental edits verifyOutFileScenario({ scenario: "stripInternal", - modifyFs: fs => stripInternalScenario(fs), + modifyFs: stripInternalScenario, modifyAgainFs: fs => replaceText(fs, sources[project.first][source.ts][part.one], `/*@internal*/ interface`, "interface"), }); @@ -845,7 +841,7 @@ ${internal} enum internalEnum { a, b, c }`); // Verify initial + incremental edits verifyOutFileScenario({ scenario: "stripInternal when one-two-three are prepended in order", - modifyFs: fs => stripInternalWithDependentOrder(fs), + modifyFs: stripInternalWithDependentOrder, modifyAgainFs: fs => replaceText(fs, sources[project.first][source.ts][part.one], `/*@internal*/ interface`, "interface"), dependOrdered: true, }); @@ -882,10 +878,14 @@ ${internal} enum internalEnum { a, b, c }`); baselineOnly: true }); + function makeThirdEmptySourceFile(fs: vfs.FileSystem) { + fs.writeFileSync(sources[project.third][source.ts][part.one], "", "utf8"); + } + // Verify ignore without build info and dtsChanged verifyOutFileScenario({ scenario: "when source files are empty in the own file", - modifyFs: fs => fs.writeFileSync(sources[project.third][source.ts][part.one], "", "utf8"), + modifyFs: makeThirdEmptySourceFile, ignoreWithoutBuildInfo: true, ignoreDtsChanged: true, baselineOnly: true @@ -965,5 +965,20 @@ ${internal} enum internalEnum { a, b, c }`); ignoreDtsUnchanged: true, baselineOnly: true }); + + // only baseline + verifyOutFileScenario({ + scenario: "declarationMap and sourceMap disabled", + modifyFs: fs => { + makeThirdEmptySourceFile(fs); + replaceText(fs, sources[project.third][source.config], `"composite": true,`, ""); + replaceText(fs, sources[project.third][source.config], `"sourceMap": true,`, ""); + replaceText(fs, sources[project.third][source.config], `"declarationMap": true,`, ""); + }, + ignoreWithoutBuildInfo: true, + ignoreDtsChanged: true, + ignoreDtsUnchanged: true, + baselineOnly: true + }); }); } diff --git a/tests/baselines/reference/tsbuild/outfile-concat/initial-Build/buildInfo/declarationMap-and-sourceMap-disabled.js b/tests/baselines/reference/tsbuild/outfile-concat/initial-Build/buildInfo/declarationMap-and-sourceMap-disabled.js new file mode 100644 index 00000000000..68f8f728f6e --- /dev/null +++ b/tests/baselines/reference/tsbuild/outfile-concat/initial-Build/buildInfo/declarationMap-and-sourceMap-disabled.js @@ -0,0 +1,1078 @@ +//// [/src/2/.tsbuildinfo] +{ + "bundle": { + "commonSourceDirectory": "/src/second/", + "sourceFiles": [ + "/src/second/second_part1.ts", + "/src/second/second_part2.ts" + ], + "js": { + "sections": [ + { + "pos": 0, + "end": 285, + "kind": "text" + }, + { + "pos": 285, + "end": 326, + "kind": "sourceMapUrl" + } + ] + }, + "dts": { + "sections": [ + { + "pos": 0, + "end": 100, + "kind": "text" + }, + { + "pos": 100, + "end": 143, + "kind": "sourceMapUrl" + } + ] + } + } +} + +//// [/src/2/.tsbuildinfo.baseline.txt] +====================================================================== +File:: /src/2/second-output.js +---------------------------------------------------------------------- +text: (0-285) +var N; +(function (N) { + function f() { + console.log('testing'); + } + f(); +})(N || (N = {})); +var C = (function () { + function C() { + } + C.prototype.doSomething = function () { + console.log("something got done"); + }; + return C; +}()); + +---------------------------------------------------------------------- +sourceMapUrl: (285-326) +//# sourceMappingURL=second-output.js.map +====================================================================== +====================================================================== +File:: /src/2/second-output.d.ts +---------------------------------------------------------------------- +text: (0-100) +declare namespace N { +} +declare namespace N { +} +declare class C { + doSomething(): void; +} + +---------------------------------------------------------------------- +sourceMapUrl: (100-143) +//# sourceMappingURL=second-output.d.ts.map +====================================================================== + +//// [/src/2/second-output.d.ts] +declare namespace N { +} +declare namespace N { +} +declare class C { + doSomething(): void; +} +//# sourceMappingURL=second-output.d.ts.map + +//// [/src/2/second-output.d.ts.map] +{"version":3,"file":"second-output.d.ts","sourceRoot":"","sources":["../second/second_part1.ts","../second/second_part2.ts"],"names":[],"mappings":"AAAA,kBAAU,CAAC,CAAC;CAEX;AAED,kBAAU,CAAC,CAAC;CAMX;ACVD,cAAM,CAAC;IACH,WAAW;CAGd"} + +//// [/src/2/second-output.d.ts.map.baseline.txt] +=================================================================== +JsFile: second-output.d.ts +mapUrl: second-output.d.ts.map +sourceRoot: +sources: ../second/second_part1.ts,../second/second_part2.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:/src/2/second-output.d.ts +sourceFile:../second/second_part1.ts +------------------------------------------------------------------- +>>>declare namespace N { +1 > +2 >^^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^ +1 > +2 >namespace +3 > N +4 > +1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0) +2 >Emitted(1, 19) Source(1, 11) + SourceIndex(0) +3 >Emitted(1, 20) Source(1, 12) + SourceIndex(0) +4 >Emitted(1, 21) Source(1, 13) + SourceIndex(0) +--- +>>>} +1 >^ +2 > ^^^^^^^^^^^^^^^^^^^^^-> +1 >{ + > // Comment text + >} +1 >Emitted(2, 2) Source(3, 2) + SourceIndex(0) +--- +>>>declare namespace N { +1-> +2 >^^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^ +1-> + > + > +2 >namespace +3 > N +4 > +1->Emitted(3, 1) Source(5, 1) + SourceIndex(0) +2 >Emitted(3, 19) Source(5, 11) + SourceIndex(0) +3 >Emitted(3, 20) Source(5, 12) + SourceIndex(0) +4 >Emitted(3, 21) Source(5, 13) + SourceIndex(0) +--- +>>>} +1 >^ +2 > ^^^^^^^^^^^^^^^^^-> +1 >{ + > function f() { + > console.log('testing'); + > } + > + > f(); + >} +1 >Emitted(4, 2) Source(11, 2) + SourceIndex(0) +--- +------------------------------------------------------------------- +emittedFile:/src/2/second-output.d.ts +sourceFile:../second/second_part2.ts +------------------------------------------------------------------- +>>>declare class C { +1-> +2 >^^^^^^^^^^^^^^ +3 > ^ +4 > ^^^^^^^^^^-> +1-> +2 >class +3 > C +1->Emitted(5, 1) Source(1, 1) + SourceIndex(1) +2 >Emitted(5, 15) Source(1, 7) + SourceIndex(1) +3 >Emitted(5, 16) Source(1, 8) + SourceIndex(1) +--- +>>> doSomething(): void; +1->^^^^ +2 > ^^^^^^^^^^^ +1-> { + > +2 > doSomething +1->Emitted(6, 5) Source(2, 5) + SourceIndex(1) +2 >Emitted(6, 16) Source(2, 16) + SourceIndex(1) +--- +>>>} +1 >^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 >() { + > console.log("something got done"); + > } + >} +1 >Emitted(7, 2) Source(5, 2) + SourceIndex(1) +--- +>>>//# sourceMappingURL=second-output.d.ts.map + +//// [/src/2/second-output.js] +var N; +(function (N) { + function f() { + console.log('testing'); + } + f(); +})(N || (N = {})); +var C = (function () { + function C() { + } + C.prototype.doSomething = function () { + console.log("something got done"); + }; + return C; +}()); +//# sourceMappingURL=second-output.js.map + +//// [/src/2/second-output.js.map] +{"version":3,"file":"second-output.js","sourceRoot":"","sources":["../second/second_part1.ts","../second/second_part2.ts"],"names":[],"mappings":"AAIA,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IACP,SAAS,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,CAAC,EAAE,CAAC;AACR,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;ACVD;IAAA;IAIA,CAAC;IAHG,uBAAW,GAAX;QACI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC;IACL,QAAC;AAAD,CAAC,AAJD,IAIC"} + +//// [/src/2/second-output.js.map.baseline.txt] +=================================================================== +JsFile: second-output.js +mapUrl: second-output.js.map +sourceRoot: +sources: ../second/second_part1.ts,../second/second_part2.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:/src/2/second-output.js +sourceFile:../second/second_part1.ts +------------------------------------------------------------------- +>>>var N; +1 > +2 >^^^^ +3 > ^ +4 > ^ +5 > ^^^^^^^^^^-> +1 >namespace N { + > // Comment text + >} + > + > +2 >namespace +3 > N +4 > { + > function f() { + > console.log('testing'); + > } + > + > f(); + > } +1 >Emitted(1, 1) Source(5, 1) + SourceIndex(0) +2 >Emitted(1, 5) Source(5, 11) + SourceIndex(0) +3 >Emitted(1, 6) Source(5, 12) + SourceIndex(0) +4 >Emitted(1, 7) Source(11, 2) + SourceIndex(0) +--- +>>>(function (N) { +1-> +2 >^^^^^^^^^^^ +3 > ^ +4 > ^^^^^^^-> +1-> +2 >namespace +3 > N +1->Emitted(2, 1) Source(5, 1) + SourceIndex(0) +2 >Emitted(2, 12) Source(5, 11) + SourceIndex(0) +3 >Emitted(2, 13) Source(5, 12) + SourceIndex(0) +--- +>>> function f() { +1->^^^^ +2 > ^^^^^^^^^ +3 > ^ +4 > ^^^^^^^^^^^^^^^^^^-> +1-> { + > +2 > function +3 > f +1->Emitted(3, 5) Source(6, 5) + SourceIndex(0) +2 >Emitted(3, 14) Source(6, 14) + SourceIndex(0) +3 >Emitted(3, 15) Source(6, 15) + SourceIndex(0) +--- +>>> console.log('testing'); +1->^^^^^^^^ +2 > ^^^^^^^ +3 > ^ +4 > ^^^ +5 > ^ +6 > ^^^^^^^^^ +7 > ^ +8 > ^ +1->() { + > +2 > console +3 > . +4 > log +5 > ( +6 > 'testing' +7 > ) +8 > ; +1->Emitted(4, 9) Source(7, 9) + SourceIndex(0) +2 >Emitted(4, 16) Source(7, 16) + SourceIndex(0) +3 >Emitted(4, 17) Source(7, 17) + SourceIndex(0) +4 >Emitted(4, 20) Source(7, 20) + SourceIndex(0) +5 >Emitted(4, 21) Source(7, 21) + SourceIndex(0) +6 >Emitted(4, 30) Source(7, 30) + SourceIndex(0) +7 >Emitted(4, 31) Source(7, 31) + SourceIndex(0) +8 >Emitted(4, 32) Source(7, 32) + SourceIndex(0) +--- +>>> } +1 >^^^^ +2 > ^ +3 > ^^^^-> +1 > + > +2 > } +1 >Emitted(5, 5) Source(8, 5) + SourceIndex(0) +2 >Emitted(5, 6) Source(8, 6) + SourceIndex(0) +--- +>>> f(); +1->^^^^ +2 > ^ +3 > ^^ +4 > ^ +5 > ^^^^^^^^^^^-> +1-> + > + > +2 > f +3 > () +4 > ; +1->Emitted(6, 5) Source(10, 5) + SourceIndex(0) +2 >Emitted(6, 6) Source(10, 6) + SourceIndex(0) +3 >Emitted(6, 8) Source(10, 8) + SourceIndex(0) +4 >Emitted(6, 9) Source(10, 9) + SourceIndex(0) +--- +>>>})(N || (N = {})); +1-> +2 >^ +3 > ^^ +4 > ^ +5 > ^^^^^ +6 > ^ +7 > ^^^^^^^^ +8 > ^^^^^-> +1-> + > +2 >} +3 > +4 > N +5 > +6 > N +7 > { + > function f() { + > console.log('testing'); + > } + > + > f(); + > } +1->Emitted(7, 1) Source(11, 1) + SourceIndex(0) +2 >Emitted(7, 2) Source(11, 2) + SourceIndex(0) +3 >Emitted(7, 4) Source(5, 11) + SourceIndex(0) +4 >Emitted(7, 5) Source(5, 12) + SourceIndex(0) +5 >Emitted(7, 10) Source(5, 11) + SourceIndex(0) +6 >Emitted(7, 11) Source(5, 12) + SourceIndex(0) +7 >Emitted(7, 19) Source(11, 2) + SourceIndex(0) +--- +------------------------------------------------------------------- +emittedFile:/src/2/second-output.js +sourceFile:../second/second_part2.ts +------------------------------------------------------------------- +>>>var C = (function () { +1-> +2 >^^^^^^^^^^^^^^^^^^^-> +1-> +1->Emitted(8, 1) Source(1, 1) + SourceIndex(1) +--- +>>> function C() { +1->^^^^ +2 > ^^-> +1-> +1->Emitted(9, 5) Source(1, 1) + SourceIndex(1) +--- +>>> } +1->^^^^ +2 > ^ +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1->class C { + > doSomething() { + > console.log("something got done"); + > } + > +2 > } +1->Emitted(10, 5) Source(5, 1) + SourceIndex(1) +2 >Emitted(10, 6) Source(5, 2) + SourceIndex(1) +--- +>>> C.prototype.doSomething = function () { +1->^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^ +3 > ^^^ +4 > ^^^^^^^^^^^^^-> +1-> +2 > doSomething +3 > +1->Emitted(11, 5) Source(2, 5) + SourceIndex(1) +2 >Emitted(11, 28) Source(2, 16) + SourceIndex(1) +3 >Emitted(11, 31) Source(2, 5) + SourceIndex(1) +--- +>>> console.log("something got done"); +1->^^^^^^^^ +2 > ^^^^^^^ +3 > ^ +4 > ^^^ +5 > ^ +6 > ^^^^^^^^^^^^^^^^^^^^ +7 > ^ +8 > ^ +1->doSomething() { + > +2 > console +3 > . +4 > log +5 > ( +6 > "something got done" +7 > ) +8 > ; +1->Emitted(12, 9) Source(3, 9) + SourceIndex(1) +2 >Emitted(12, 16) Source(3, 16) + SourceIndex(1) +3 >Emitted(12, 17) Source(3, 17) + SourceIndex(1) +4 >Emitted(12, 20) Source(3, 20) + SourceIndex(1) +5 >Emitted(12, 21) Source(3, 21) + SourceIndex(1) +6 >Emitted(12, 41) Source(3, 41) + SourceIndex(1) +7 >Emitted(12, 42) Source(3, 42) + SourceIndex(1) +8 >Emitted(12, 43) Source(3, 43) + SourceIndex(1) +--- +>>> }; +1 >^^^^ +2 > ^ +3 > ^^^^^^^^^-> +1 > + > +2 > } +1 >Emitted(13, 5) Source(4, 5) + SourceIndex(1) +2 >Emitted(13, 6) Source(4, 6) + SourceIndex(1) +--- +>>> return C; +1->^^^^ +2 > ^^^^^^^^ +1-> + > +2 > } +1->Emitted(14, 5) Source(5, 1) + SourceIndex(1) +2 >Emitted(14, 13) Source(5, 2) + SourceIndex(1) +--- +>>>}()); +1 > +2 >^ +3 > +4 > ^^^^ +5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > +2 >} +3 > +4 > class C { + > doSomething() { + > console.log("something got done"); + > } + > } +1 >Emitted(15, 1) Source(5, 1) + SourceIndex(1) +2 >Emitted(15, 2) Source(5, 2) + SourceIndex(1) +3 >Emitted(15, 2) Source(1, 1) + SourceIndex(1) +4 >Emitted(15, 6) Source(5, 2) + SourceIndex(1) +--- +>>>//# sourceMappingURL=second-output.js.map + +//// [/src/first/bin/.tsbuildinfo] +{ + "bundle": { + "commonSourceDirectory": "/src/first/", + "sourceFiles": [ + "/src/first/first_PART1.ts", + "/src/first/first_part2.ts", + "/src/first/first_part3.ts" + ], + "js": { + "sections": [ + { + "pos": 0, + "end": 110, + "kind": "text" + }, + { + "pos": 110, + "end": 150, + "kind": "sourceMapUrl" + } + ] + }, + "dts": { + "sections": [ + { + "pos": 0, + "end": 157, + "kind": "text" + }, + { + "pos": 157, + "end": 199, + "kind": "sourceMapUrl" + } + ] + } + } +} + +//// [/src/first/bin/.tsbuildinfo.baseline.txt] +====================================================================== +File:: /src/first/bin/first-output.js +---------------------------------------------------------------------- +text: (0-110) +var s = "Hello, world"; +console.log(s); +console.log(f()); +function f() { + return "JS does hoists"; +} + +---------------------------------------------------------------------- +sourceMapUrl: (110-150) +//# sourceMappingURL=first-output.js.map +====================================================================== +====================================================================== +File:: /src/first/bin/first-output.d.ts +---------------------------------------------------------------------- +text: (0-157) +interface TheFirst { + none: any; +} +declare const s = "Hello, world"; +interface NoJsForHereEither { + none: any; +} +declare function f(): string; + +---------------------------------------------------------------------- +sourceMapUrl: (157-199) +//# sourceMappingURL=first-output.d.ts.map +====================================================================== + +//// [/src/first/bin/first-output.d.ts] +interface TheFirst { + none: any; +} +declare const s = "Hello, world"; +interface NoJsForHereEither { + none: any; +} +declare function f(): string; +//# sourceMappingURL=first-output.d.ts.map + +//// [/src/first/bin/first-output.d.ts.map] +{"version":3,"file":"first-output.d.ts","sourceRoot":"","sources":["../first_PART1.ts","../first_part2.ts","../first_part3.ts"],"names":[],"mappings":"AAAA,UAAU,QAAQ;IACd,IAAI,EAAE,GAAG,CAAC;CACb;AAED,QAAA,MAAM,CAAC,iBAAiB,CAAC;AAEzB,UAAU,iBAAiB;IACvB,IAAI,EAAE,GAAG,CAAC;CACb;AERD,iBAAS,CAAC,WAET"} + +//// [/src/first/bin/first-output.d.ts.map.baseline.txt] +=================================================================== +JsFile: first-output.d.ts +mapUrl: first-output.d.ts.map +sourceRoot: +sources: ../first_PART1.ts,../first_part2.ts,../first_part3.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:/src/first/bin/first-output.d.ts +sourceFile:../first_PART1.ts +------------------------------------------------------------------- +>>>interface TheFirst { +1 > +2 >^^^^^^^^^^ +3 > ^^^^^^^^ +1 > +2 >interface +3 > TheFirst +1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0) +2 >Emitted(1, 11) Source(1, 11) + SourceIndex(0) +3 >Emitted(1, 19) Source(1, 19) + SourceIndex(0) +--- +>>> none: any; +1 >^^^^ +2 > ^^^^ +3 > ^^ +4 > ^^^ +5 > ^ +1 > { + > +2 > none +3 > : +4 > any +5 > ; +1 >Emitted(2, 5) Source(2, 5) + SourceIndex(0) +2 >Emitted(2, 9) Source(2, 9) + SourceIndex(0) +3 >Emitted(2, 11) Source(2, 11) + SourceIndex(0) +4 >Emitted(2, 14) Source(2, 14) + SourceIndex(0) +5 >Emitted(2, 15) Source(2, 15) + SourceIndex(0) +--- +>>>} +1 >^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + >} +1 >Emitted(3, 2) Source(3, 2) + SourceIndex(0) +--- +>>>declare const s = "Hello, world"; +1-> +2 >^^^^^^^^ +3 > ^^^^^^ +4 > ^ +5 > ^^^^^^^^^^^^^^^^^ +6 > ^ +1-> + > + > +2 > +3 > const +4 > s +5 > = "Hello, world" +6 > ; +1->Emitted(4, 1) Source(5, 1) + SourceIndex(0) +2 >Emitted(4, 9) Source(5, 1) + SourceIndex(0) +3 >Emitted(4, 15) Source(5, 7) + SourceIndex(0) +4 >Emitted(4, 16) Source(5, 8) + SourceIndex(0) +5 >Emitted(4, 33) Source(5, 25) + SourceIndex(0) +6 >Emitted(4, 34) Source(5, 26) + SourceIndex(0) +--- +>>>interface NoJsForHereEither { +1 > +2 >^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^ +1 > + > + > +2 >interface +3 > NoJsForHereEither +1 >Emitted(5, 1) Source(7, 1) + SourceIndex(0) +2 >Emitted(5, 11) Source(7, 11) + SourceIndex(0) +3 >Emitted(5, 28) Source(7, 28) + SourceIndex(0) +--- +>>> none: any; +1 >^^^^ +2 > ^^^^ +3 > ^^ +4 > ^^^ +5 > ^ +1 > { + > +2 > none +3 > : +4 > any +5 > ; +1 >Emitted(6, 5) Source(8, 5) + SourceIndex(0) +2 >Emitted(6, 9) Source(8, 9) + SourceIndex(0) +3 >Emitted(6, 11) Source(8, 11) + SourceIndex(0) +4 >Emitted(6, 14) Source(8, 14) + SourceIndex(0) +5 >Emitted(6, 15) Source(8, 15) + SourceIndex(0) +--- +>>>} +1 >^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + >} +1 >Emitted(7, 2) Source(9, 2) + SourceIndex(0) +--- +------------------------------------------------------------------- +emittedFile:/src/first/bin/first-output.d.ts +sourceFile:../first_part3.ts +------------------------------------------------------------------- +>>>declare function f(): string; +1-> +2 >^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^^^^^^^^^^^ +5 > ^^^^^^^^^^^^-> +1-> +2 >function +3 > f +4 > () { + > return "JS does hoists"; + > } +1->Emitted(8, 1) Source(1, 1) + SourceIndex(2) +2 >Emitted(8, 18) Source(1, 10) + SourceIndex(2) +3 >Emitted(8, 19) Source(1, 11) + SourceIndex(2) +4 >Emitted(8, 30) Source(3, 2) + SourceIndex(2) +--- +>>>//# sourceMappingURL=first-output.d.ts.map + +//// [/src/first/bin/first-output.js] +var s = "Hello, world"; +console.log(s); +console.log(f()); +function f() { + return "JS does hoists"; +} +//# sourceMappingURL=first-output.js.map + +//// [/src/first/bin/first-output.js.map] +{"version":3,"file":"first-output.js","sourceRoot":"","sources":["../first_PART1.ts","../first_part2.ts","../first_part3.ts"],"names":[],"mappings":"AAIA,IAAM,CAAC,GAAG,cAAc,CAAC;AAMzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;ACVf,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;ACAjB,SAAS,CAAC;IACN,OAAO,gBAAgB,CAAC;AAC5B,CAAC"} + +//// [/src/first/bin/first-output.js.map.baseline.txt] +=================================================================== +JsFile: first-output.js +mapUrl: first-output.js.map +sourceRoot: +sources: ../first_PART1.ts,../first_part2.ts,../first_part3.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:/src/first/bin/first-output.js +sourceFile:../first_PART1.ts +------------------------------------------------------------------- +>>>var s = "Hello, world"; +1 > +2 >^^^^ +3 > ^ +4 > ^^^ +5 > ^^^^^^^^^^^^^^ +6 > ^ +1 >interface TheFirst { + > none: any; + >} + > + > +2 >const +3 > s +4 > = +5 > "Hello, world" +6 > ; +1 >Emitted(1, 1) Source(5, 1) + SourceIndex(0) +2 >Emitted(1, 5) Source(5, 7) + SourceIndex(0) +3 >Emitted(1, 6) Source(5, 8) + SourceIndex(0) +4 >Emitted(1, 9) Source(5, 11) + SourceIndex(0) +5 >Emitted(1, 23) Source(5, 25) + SourceIndex(0) +6 >Emitted(1, 24) Source(5, 26) + SourceIndex(0) +--- +>>>console.log(s); +1 > +2 >^^^^^^^ +3 > ^ +4 > ^^^ +5 > ^ +6 > ^ +7 > ^ +8 > ^ +9 > ^^^-> +1 > + > + >interface NoJsForHereEither { + > none: any; + >} + > + > +2 >console +3 > . +4 > log +5 > ( +6 > s +7 > ) +8 > ; +1 >Emitted(2, 1) Source(11, 1) + SourceIndex(0) +2 >Emitted(2, 8) Source(11, 8) + SourceIndex(0) +3 >Emitted(2, 9) Source(11, 9) + SourceIndex(0) +4 >Emitted(2, 12) Source(11, 12) + SourceIndex(0) +5 >Emitted(2, 13) Source(11, 13) + SourceIndex(0) +6 >Emitted(2, 14) Source(11, 14) + SourceIndex(0) +7 >Emitted(2, 15) Source(11, 15) + SourceIndex(0) +8 >Emitted(2, 16) Source(11, 16) + SourceIndex(0) +--- +------------------------------------------------------------------- +emittedFile:/src/first/bin/first-output.js +sourceFile:../first_part2.ts +------------------------------------------------------------------- +>>>console.log(f()); +1-> +2 >^^^^^^^ +3 > ^ +4 > ^^^ +5 > ^ +6 > ^ +7 > ^^ +8 > ^ +9 > ^ +1-> +2 >console +3 > . +4 > log +5 > ( +6 > f +7 > () +8 > ) +9 > ; +1->Emitted(3, 1) Source(1, 1) + SourceIndex(1) +2 >Emitted(3, 8) Source(1, 8) + SourceIndex(1) +3 >Emitted(3, 9) Source(1, 9) + SourceIndex(1) +4 >Emitted(3, 12) Source(1, 12) + SourceIndex(1) +5 >Emitted(3, 13) Source(1, 13) + SourceIndex(1) +6 >Emitted(3, 14) Source(1, 14) + SourceIndex(1) +7 >Emitted(3, 16) Source(1, 16) + SourceIndex(1) +8 >Emitted(3, 17) Source(1, 17) + SourceIndex(1) +9 >Emitted(3, 18) Source(1, 18) + SourceIndex(1) +--- +------------------------------------------------------------------- +emittedFile:/src/first/bin/first-output.js +sourceFile:../first_part3.ts +------------------------------------------------------------------- +>>>function f() { +1 > +2 >^^^^^^^^^ +3 > ^ +4 > ^^^^^^^^^^^^^^^^^^^-> +1 > +2 >function +3 > f +1 >Emitted(4, 1) Source(1, 1) + SourceIndex(2) +2 >Emitted(4, 10) Source(1, 10) + SourceIndex(2) +3 >Emitted(4, 11) Source(1, 11) + SourceIndex(2) +--- +>>> return "JS does hoists"; +1->^^^^ +2 > ^^^^^^^ +3 > ^^^^^^^^^^^^^^^^ +4 > ^ +1->() { + > +2 > return +3 > "JS does hoists" +4 > ; +1->Emitted(5, 5) Source(2, 5) + SourceIndex(2) +2 >Emitted(5, 12) Source(2, 12) + SourceIndex(2) +3 >Emitted(5, 28) Source(2, 28) + SourceIndex(2) +4 >Emitted(5, 29) Source(2, 29) + SourceIndex(2) +--- +>>>} +1 > +2 >^ +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > +2 >} +1 >Emitted(6, 1) Source(3, 1) + SourceIndex(2) +2 >Emitted(6, 2) Source(3, 2) + SourceIndex(2) +--- +>>>//# sourceMappingURL=first-output.js.map + +//// [/src/third/thirdjs/output/.tsbuildinfo] +{ + "bundle": { + "commonSourceDirectory": "/src/third/", + "sourceFiles": [ + "/src/third/third_part1.ts" + ], + "js": { + "sections": [ + { + "pos": 0, + "end": 150, + "kind": "prepend", + "data": "/src/first/bin/first-output.js", + "texts": [ + { + "pos": 0, + "end": 110, + "kind": "text" + }, + { + "pos": 110, + "end": 150, + "kind": "sourceMapUrl" + } + ] + }, + { + "pos": 152, + "end": 478, + "kind": "prepend", + "data": "/src/2/second-output.js", + "texts": [ + { + "pos": 152, + "end": 437, + "kind": "text" + }, + { + "pos": 437, + "end": 478, + "kind": "sourceMapUrl" + } + ] + } + ] + }, + "dts": { + "sections": [ + { + "pos": 0, + "end": 199, + "kind": "prepend", + "data": "/src/first/bin/first-output.d.ts", + "texts": [ + { + "pos": 0, + "end": 157, + "kind": "text" + }, + { + "pos": 157, + "end": 199, + "kind": "sourceMapUrl" + } + ] + }, + { + "pos": 201, + "end": 344, + "kind": "prepend", + "data": "/src/2/second-output.d.ts", + "texts": [ + { + "pos": 201, + "end": 301, + "kind": "text" + }, + { + "pos": 301, + "end": 344, + "kind": "sourceMapUrl" + } + ] + } + ] + } + } +} + +//// [/src/third/thirdjs/output/.tsbuildinfo.baseline.txt] +====================================================================== +File:: /src/third/thirdjs/output/third-output.js +---------------------------------------------------------------------- +prepend: (0-150):: /src/first/bin/first-output.js texts:: 2 +>>-------------------------------------------------------------------- +text: (0-110) +var s = "Hello, world"; +console.log(s); +console.log(f()); +function f() { + return "JS does hoists"; +} + +>>-------------------------------------------------------------------- +sourceMapUrl: (110-150) +//# sourceMappingURL=first-output.js.map +---------------------------------------------------------------------- +prepend: (152-478):: /src/2/second-output.js texts:: 2 +>>-------------------------------------------------------------------- +text: (152-437) +var N; +(function (N) { + function f() { + console.log('testing'); + } + f(); +})(N || (N = {})); +var C = (function () { + function C() { + } + C.prototype.doSomething = function () { + console.log("something got done"); + }; + return C; +}()); + +>>-------------------------------------------------------------------- +sourceMapUrl: (437-478) +//# sourceMappingURL=second-output.js.map +====================================================================== +====================================================================== +File:: /src/third/thirdjs/output/third-output.d.ts +---------------------------------------------------------------------- +prepend: (0-199):: /src/first/bin/first-output.d.ts texts:: 2 +>>-------------------------------------------------------------------- +text: (0-157) +interface TheFirst { + none: any; +} +declare const s = "Hello, world"; +interface NoJsForHereEither { + none: any; +} +declare function f(): string; + +>>-------------------------------------------------------------------- +sourceMapUrl: (157-199) +//# sourceMappingURL=first-output.d.ts.map +---------------------------------------------------------------------- +prepend: (201-344):: /src/2/second-output.d.ts texts:: 2 +>>-------------------------------------------------------------------- +text: (201-301) +declare namespace N { +} +declare namespace N { +} +declare class C { + doSomething(): void; +} + +>>-------------------------------------------------------------------- +sourceMapUrl: (301-344) +//# sourceMappingURL=second-output.d.ts.map +====================================================================== + +//// [/src/third/thirdjs/output/third-output.d.ts] +interface TheFirst { + none: any; +} +declare const s = "Hello, world"; +interface NoJsForHereEither { + none: any; +} +declare function f(): string; +//# sourceMappingURL=first-output.d.ts.map +declare namespace N { +} +declare namespace N { +} +declare class C { + doSomething(): void; +} +//# sourceMappingURL=second-output.d.ts.map + + +//// [/src/third/thirdjs/output/third-output.js] +var s = "Hello, world"; +console.log(s); +console.log(f()); +function f() { + return "JS does hoists"; +} +//# sourceMappingURL=first-output.js.map +var N; +(function (N) { + function f() { + console.log('testing'); + } + f(); +})(N || (N = {})); +var C = (function () { + function C() { + } + C.prototype.doSomething = function () { + console.log("something got done"); + }; + return C; +}()); +//# sourceMappingURL=second-output.js.map + + +//// [/src/third/third_part1.ts] + + +//// [/src/third/tsconfig.json] +{ + "compilerOptions": { + "target": "es5", + + "removeComments": true, + "strict": false, + + + "declaration": true, + "outFile": "./thirdjs/output/third-output.js", + "skipDefaultLibCheck": true + }, + "files": [ + "third_part1.ts" + ], + "references": [ + { "path": "../first", "prepend": true }, + { "path": "../second", "prepend": true }, + ] +} + +