From 82248e75a04bef23896a677a75549feb9abca696 Mon Sep 17 00:00:00 2001 From: Xnuk Shuman Date: Sat, 25 Dec 2021 23:28:19 +0900 Subject: [PATCH 1/2] fix: double `JSON.stringify`-ied inline sourcemaps --- src/swc/file.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/swc/file.ts b/src/swc/file.ts index 50de19e..40de3eb 100644 --- a/src/swc/file.ts +++ b/src/swc/file.ts @@ -60,7 +60,7 @@ export default async function ({ return { code, - map: JSON.stringify(map), + map: map, }; } From 8059720e220b61ee3441f60e1640a66d8d78e0c8 Mon Sep 17 00:00:00 2001 From: Xnuk Shuman Date: Sat, 25 Dec 2021 23:43:54 +0900 Subject: [PATCH 2/2] fix: generating empty inline sourcemaps Fixes by lazily init `SourceMapGenerator` --- src/swc/file.ts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/swc/file.ts b/src/swc/file.ts index 40de3eb..34a5a5b 100644 --- a/src/swc/file.ts +++ b/src/swc/file.ts @@ -18,10 +18,13 @@ export default async function ({ file: string, ...results: swc.Output[] ): Promise { - const map = new SourceMapGenerator({ - file, - sourceRoot: swcOptions.sourceRoot, - }); + const initMap = () => + new SourceMapGenerator({ + file, + sourceRoot: swcOptions.sourceRoot, + }); + + let map: SourceMapGenerator | null = null; let code = ""; let offset = 0; @@ -35,6 +38,11 @@ export default async function ({ consumer.eachMapping(mapping => { sources.add(mapping.source); + + if (map == null) { + map = initMap(); + } + map.addMapping({ generated: { line: mapping.generatedLine + offset, @@ -50,7 +58,7 @@ export default async function ({ sources.forEach(source => { const content = consumer.sourceContentFor(source, true); - if (content !== null) { + if (content !== null && map != null) { map.setSourceContent(source, content); } }); @@ -60,7 +68,7 @@ export default async function ({ return { code, - map: map, + map: map || undefined, }; }