[Sourcemap] Extract addLink from SourceMap3Builder as a addSourceMappingURL

The general goal is remove dependency on TextOutput and
make it simpler to use for wasm backend.
This commit is contained in:
Zalim Bashorov
2022-12-05 16:12:35 +01:00
committed by Space Team
parent 9f82c43b1b
commit e34d3d09bc
5 changed files with 24 additions and 15 deletions
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.js.parser.sourcemaps.SourceMapParser
import org.jetbrains.kotlin.js.parser.sourcemaps.SourceMapSuccess
import org.jetbrains.kotlin.js.sourceMap.SourceFilePathResolver
import org.jetbrains.kotlin.js.sourceMap.SourceMap3Builder
import org.jetbrains.kotlin.js.sourceMap.addSourceMappingURL
import org.jetbrains.kotlin.js.util.TextOutputImpl
import java.io.File
import java.io.InputStreamReader
@@ -115,18 +116,19 @@ class DeadCodeElimination(
for ((file, block) in inputFiles.zip(blocks)) {
val sourceMapFile = File(file.outputPath + ".map")
val textOutput = TextOutputImpl()
val sourceMapBuilder = SourceMap3Builder(File(file.outputPath), textOutput, "")
val outputFile = File(file.outputPath)
val sourceMapBuilder = SourceMap3Builder(outputFile, textOutput, "")
val inputFile = File(file.resource.name)
val sourceBaseDir = if (inputFile.exists()) inputFile.parentFile else File(".")
val sourcePathResolver = SourceFilePathResolver(emptyList(), File(file.outputPath).parentFile)
val sourcePathResolver = SourceFilePathResolver(emptyList(), outputFile.parentFile)
val consumer = SourceMapBuilderConsumer(sourceBaseDir, sourceMapBuilder, sourcePathResolver, true, true)
block.accept(JsToStringGenerationVisitor(textOutput, consumer))
val sourceMapContent = sourceMapBuilder.build()
sourceMapBuilder.addLink()
textOutput.addSourceMappingURL(outputFile)
with(File(file.outputPath)) {
with(outputFile) {
parentFile.mkdirs()
writeText(textOutput.toString())
}