From cc916a866cf6cd6e1c18a5e63a1aaed972c8c035 Mon Sep 17 00:00:00 2001 From: Chris Predeek Date: Tue, 20 Sep 2016 09:39:19 -0700 Subject: [PATCH] Changed sourcemap file path resolution to use correct extension --- lib/output.ts | 5 ++++- release/output.js | 4 +++- test/baselines/sourceMaps/1.6/js/Main/MainFileTsx.js | 6 ++++++ test/baselines/sourceMaps/1.6/js/Main/MainFileTsx.js.map | 1 + test/baselines/sourceMaps/1.7/js/Main/MainFileTsx.js | 6 ++++++ test/baselines/sourceMaps/1.7/js/Main/MainFileTsx.js.map | 1 + test/baselines/sourceMaps/1.8/js/Main/MainFileTsx.js | 7 +++++++ test/baselines/sourceMaps/1.8/js/Main/MainFileTsx.js.map | 1 + test/baselines/sourceMaps/dev/js/Main/MainFileTsx.js | 7 +++++++ test/baselines/sourceMaps/dev/js/Main/MainFileTsx.js.map | 1 + test/sourceMaps/Main/MainFileTsx.tsx | 7 +++++++ 11 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 test/baselines/sourceMaps/1.6/js/Main/MainFileTsx.js create mode 100644 test/baselines/sourceMaps/1.6/js/Main/MainFileTsx.js.map create mode 100644 test/baselines/sourceMaps/1.7/js/Main/MainFileTsx.js create mode 100644 test/baselines/sourceMaps/1.7/js/Main/MainFileTsx.js.map create mode 100644 test/baselines/sourceMaps/1.8/js/Main/MainFileTsx.js create mode 100644 test/baselines/sourceMaps/1.8/js/Main/MainFileTsx.js.map create mode 100644 test/baselines/sourceMaps/dev/js/Main/MainFileTsx.js create mode 100644 test/baselines/sourceMaps/dev/js/Main/MainFileTsx.js.map create mode 100644 test/sourceMaps/Main/MainFileTsx.tsx diff --git a/lib/output.ts b/lib/output.ts index 26bb081b..cb1f2f90 100644 --- a/lib/output.ts +++ b/lib/output.ts @@ -106,10 +106,13 @@ export class Output { file.sourceMapOrigins = [file.original]; } const [, jsExtension] = utils.splitExtension(file.sourceMap.file); // js or jsx + const [filePath, ] = utils.splitExtension(originalFileName); + const outputFileName = `${filePath}.${jsExtension}`; + // Fix the output filename in the source map, which must be relative // to the source root or it won't work correctly in gulp-sourcemaps if // there are more transformations down in the pipeline. - file.sourceMap.file = path.relative(file.sourceMap.sourceRoot, originalFileName).replace(/\.ts$/, '.' + jsExtension); + file.sourceMap.file = path.relative(file.sourceMap.sourceRoot, outputFileName); } this.applySourceMaps(file); diff --git a/release/output.js b/release/output.js index 02b19aa6..e6d14813 100644 --- a/release/output.js +++ b/release/output.js @@ -76,10 +76,12 @@ var Output = (function () { file.sourceMapOrigins = [file.original]; } var _a = utils.splitExtension(file.sourceMap.file), jsExtension = _a[1]; // js or jsx + var filePath = utils.splitExtension(originalFileName)[0]; + var outputFileName = filePath + "." + jsExtension; // Fix the output filename in the source map, which must be relative // to the source root or it won't work correctly in gulp-sourcemaps if // there are more transformations down in the pipeline. - file.sourceMap.file = path.relative(file.sourceMap.sourceRoot, originalFileName).replace(/\.ts$/, '.' + jsExtension); + file.sourceMap.file = path.relative(file.sourceMap.sourceRoot, outputFileName); } this.applySourceMaps(file); if (!this.project.sortOutput) { diff --git a/test/baselines/sourceMaps/1.6/js/Main/MainFileTsx.js b/test/baselines/sourceMaps/1.6/js/Main/MainFileTsx.js new file mode 100644 index 00000000..f2b8ce87 --- /dev/null +++ b/test/baselines/sourceMaps/1.6/js/Main/MainFileTsx.js @@ -0,0 +1,6 @@ +var foo = { + bar: 42 +}; +console.log(foo.bar); + +//# sourceMappingURL=MainFileTsx.js.map diff --git a/test/baselines/sourceMaps/1.6/js/Main/MainFileTsx.js.map b/test/baselines/sourceMaps/1.6/js/Main/MainFileTsx.js.map new file mode 100644 index 00000000..3659c38d --- /dev/null +++ b/test/baselines/sourceMaps/1.6/js/Main/MainFileTsx.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["MainFileTsx.tsx"],"names":[],"mappings":"AAEA,IAAI,GAAG,GAAS;IACZ,GAAG,EAAE,EAAE;CACV,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC","file":"MainFileTsx.js","sourcesContent":["import IFoo = require(\"../Outer/Foo\");\n\nvar foo: IFoo = {\n bar: 42\n};\n\nconsole.log(foo.bar);\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/test/baselines/sourceMaps/1.7/js/Main/MainFileTsx.js b/test/baselines/sourceMaps/1.7/js/Main/MainFileTsx.js new file mode 100644 index 00000000..f2b8ce87 --- /dev/null +++ b/test/baselines/sourceMaps/1.7/js/Main/MainFileTsx.js @@ -0,0 +1,6 @@ +var foo = { + bar: 42 +}; +console.log(foo.bar); + +//# sourceMappingURL=MainFileTsx.js.map diff --git a/test/baselines/sourceMaps/1.7/js/Main/MainFileTsx.js.map b/test/baselines/sourceMaps/1.7/js/Main/MainFileTsx.js.map new file mode 100644 index 00000000..3659c38d --- /dev/null +++ b/test/baselines/sourceMaps/1.7/js/Main/MainFileTsx.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["MainFileTsx.tsx"],"names":[],"mappings":"AAEA,IAAI,GAAG,GAAS;IACZ,GAAG,EAAE,EAAE;CACV,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC","file":"MainFileTsx.js","sourcesContent":["import IFoo = require(\"../Outer/Foo\");\n\nvar foo: IFoo = {\n bar: 42\n};\n\nconsole.log(foo.bar);\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/test/baselines/sourceMaps/1.8/js/Main/MainFileTsx.js b/test/baselines/sourceMaps/1.8/js/Main/MainFileTsx.js new file mode 100644 index 00000000..29b274ba --- /dev/null +++ b/test/baselines/sourceMaps/1.8/js/Main/MainFileTsx.js @@ -0,0 +1,7 @@ +"use strict"; +var foo = { + bar: 42 +}; +console.log(foo.bar); + +//# sourceMappingURL=MainFileTsx.js.map diff --git a/test/baselines/sourceMaps/1.8/js/Main/MainFileTsx.js.map b/test/baselines/sourceMaps/1.8/js/Main/MainFileTsx.js.map new file mode 100644 index 00000000..7d633886 --- /dev/null +++ b/test/baselines/sourceMaps/1.8/js/Main/MainFileTsx.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["MainFileTsx.tsx"],"names":[],"mappings":";AAEA,IAAI,GAAG,GAAS;IACZ,GAAG,EAAE,EAAE;CACV,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC","file":"MainFileTsx.js","sourcesContent":["import IFoo = require(\"../Outer/Foo\");\n\nvar foo: IFoo = {\n bar: 42\n};\n\nconsole.log(foo.bar);\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/test/baselines/sourceMaps/dev/js/Main/MainFileTsx.js b/test/baselines/sourceMaps/dev/js/Main/MainFileTsx.js new file mode 100644 index 00000000..29b274ba --- /dev/null +++ b/test/baselines/sourceMaps/dev/js/Main/MainFileTsx.js @@ -0,0 +1,7 @@ +"use strict"; +var foo = { + bar: 42 +}; +console.log(foo.bar); + +//# sourceMappingURL=MainFileTsx.js.map diff --git a/test/baselines/sourceMaps/dev/js/Main/MainFileTsx.js.map b/test/baselines/sourceMaps/dev/js/Main/MainFileTsx.js.map new file mode 100644 index 00000000..7d633886 --- /dev/null +++ b/test/baselines/sourceMaps/dev/js/Main/MainFileTsx.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["MainFileTsx.tsx"],"names":[],"mappings":";AAEA,IAAI,GAAG,GAAS;IACZ,GAAG,EAAE,EAAE;CACV,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC","file":"MainFileTsx.js","sourcesContent":["import IFoo = require(\"../Outer/Foo\");\n\nvar foo: IFoo = {\n bar: 42\n};\n\nconsole.log(foo.bar);\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/test/sourceMaps/Main/MainFileTsx.tsx b/test/sourceMaps/Main/MainFileTsx.tsx new file mode 100644 index 00000000..fd1a5687 --- /dev/null +++ b/test/sourceMaps/Main/MainFileTsx.tsx @@ -0,0 +1,7 @@ +import IFoo = require("../Outer/Foo"); + +var foo: IFoo = { + bar: 42 +}; + +console.log(foo.bar);