Skip to content

Commit a2e7807

Browse files
author
reidspencer
committed
ScalaJS sourcemap support
1 parent e354f84 commit a2e7807

2 files changed

Lines changed: 22 additions & 4 deletions

File tree

src/main/scala/com/ossuminc/sbt/OssumIncPlugin.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ object OssumIncPlugin extends AutoPlugin {
7878
def java: ConfigFunc = helpers.Java.configure
7979

8080
/** Use this to configure your project to compile Scala to ScalaJS via scala.js */
81-
def Javascript: helpers.Javascript.type = helpers.Javascript
82-
def js: ConfigFunc = helpers.Javascript.configure
81+
def ScalaJS: helpers.ScalaJS.type = helpers.ScalaJS
82+
def scalajs: ConfigFunc = helpers.ScalaJS.configure
8383

8484
/** Use this to configure your project to include typical laminar dependencies */
8585
def Laminar: helpers.Laminar.type = helpers.Laminar

src/main/scala/com/ossuminc/sbt/helpers/ScalaJS.scala

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package com.ossuminc.sbt.helpers
22

33
import sbt.*
4-
import sbt.Keys.libraryDependencies
4+
import sbt.Keys.*
55
import org.scalajs.sbtplugin.ScalaJSPlugin
66
import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport.*
77
import org.portablescala.sbtplatformdeps.PlatformDepsPlugin.autoImport.*
88
import org.scalajs.linker.interface.ModuleSplitStyle
9+
import com.github.sbt.git.GitPlugin.autoImport.git
910

10-
object Javascript extends AutoPluginHelper {
11+
object ScalaJS extends AutoPluginHelper {
1112

1213
override def configure(project: Project): Project = apply()(project)
1314

@@ -23,6 +24,23 @@ object Javascript extends AutoPluginHelper {
2324
.enablePlugins(ScalaJSPlugin)
2425
// .settings(ScalaJSPlugin.testConfigSettings) <-- generates undefined settings
2526
.settings(
27+
// For source maps in Scala
28+
scalacOptions ++= {
29+
// Map the sourcemaps to github paths instead of local directories
30+
val flag =
31+
if (scalaVersion.value.startsWith("3")) "-scalajs-mapSourceURI"
32+
else "-P:scalajs:mapSourceURI"
33+
val localSourcesPath = baseDirectory.value.toURI
34+
val headCommit = git.gitHeadCommit.value.get
35+
scmInfo.value.map { info =>
36+
val remoteSourcesPath =
37+
s"${
38+
info.browseUrl.toString
39+
.replace("github.com", "raw.githubusercontent.com")
40+
}/$headCommit"
41+
s"${flag}:$localSourcesPath->$remoteSourcesPath"
42+
}
43+
},
2644
// for an application with a main method
2745
scalaJSUseMainModuleInitializer := hasMain,
2846
scalaJSLinkerConfig ~= {

0 commit comments

Comments
 (0)