@@ -19,6 +19,7 @@ package net.kautler
1919import net.kautler.dao.action.GitHubAction
2020import net.kautler.util.npm
2121import org.gradle.accessors.dm.LibrariesForLibs
22+ import org.gradle.accessors.dm.LibrariesForKotlinWrappers
2223import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
2324import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
2425import org.jetbrains.kotlin.gradle.tasks.IncrementalSyncTask
@@ -29,10 +30,11 @@ plugins {
2930}
3031
3132val libs = the<LibrariesForLibs >()
33+ val kotlinWrappers = the<LibrariesForKotlinWrappers >()
3234
3335kotlin {
3436 js {
35- useCommonJs ()
37+ useEsModules ()
3638 binaries.executable()
3739 nodejs()
3840 }
@@ -41,22 +43,40 @@ kotlin {
4143 jsMain {
4244 dependencies {
4345 implementation(libs.kotlinx.coroutines.core)
44- implementation(dependencies.platform(libs.kotlin.wrappers.bom))
45- implementation(libs.kotlin.wrapper.actions.toolkit)
46- implementation(libs.kotlin.wrapper.js)
47- implementation(libs.kotlin.wrapper.node)
48- implementation(npm(libs.semver))
49- implementation(npm(libs.nullWritable))
46+ implementation(libs.ktor.client.core)
47+ implementation(libs.ktor.client.js)
48+ implementation(kotlinWrappers.actions.toolkit)
49+ implementation(kotlinWrappers.js)
50+ implementation(kotlinWrappers.node)
51+ implementation(kotlinWrappers.semver)
52+ implementation(kotlinWrappers.nullWritable)
5053 }
5154 }
5255 }
5356}
5457
55- // work-around for https://youtrack.jetbrains.com/issue/KT-56305
5658tasks.withType<IncrementalSyncTask >().configureEach {
59+ // work-around for https://youtrack.jetbrains.com/issue/KT-56305
5760 doFirst {
5861 outputs.files.forEach { it.deleteRecursively() }
5962 }
63+
64+ // work-around for https://youtrack.jetbrains.com/issue/KTOR-6158
65+ doLast {
66+ outputs
67+ .files
68+ .asFileTree
69+ .filter { it.name == " setup-wsl.mjs" }
70+ .forEach {
71+ it
72+ .readText()
73+ .replace(" eval('require')('abort-controller')" , " globalThis.AbortController" )
74+ .replace(" eval('require')('node-fetch')" , " globalThis.fetch" )
75+ .replace(" function readBodyNode(" , " function _readBodyNode(" )
76+ .replace(" readBodyNode(" , " readBodyBrowser(" )
77+ .apply (it::writeText)
78+ }
79+ }
6080}
6181
6282val inputDefaultValues by lazy {
@@ -109,7 +129,7 @@ artifacts {
109129 it
110130 .destinationDirectory
111131 .get()
112- .resolve(" ${project.name} .js " )
132+ .resolve(" ${project.name} .mjs " )
113133 }
114134 )
115135}
0 commit comments