Skip to content

Commit ae30506

Browse files
committed
Update kotlin wrappers to pre.819, switch to ES modules, and use ktor as HTTP client
1 parent bf0d42a commit ae30506

File tree

14 files changed

+1180
-320
lines changed

14 files changed

+1180
-320
lines changed

action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,4 @@ outputs:
109109
110110
runs:
111111
using: node20
112-
main: build/distributions/index.js
112+
main: build/distributions/index.mjs

gradle/build-logic/build-logic.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ plugins {
2424

2525
dependencies {
2626
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
27+
implementation(files(kotlinWrappers.javaClass.superclass.protectionDomain.codeSource.location))
2728
implementation(plugin(libs.plugins.versions))
2829
implementation(plugin(libs.plugins.dependency.analysis))
2930
implementation(plugin(libs.plugins.release))

gradle/build-logic/settings.gradle.kts

+5-1
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,13 @@ dependencyResolutionManagement {
8282
repositoriesMode.set(FAIL_ON_PROJECT_REPOS)
8383

8484
versionCatalogs {
85-
create("libs") {
85+
val libs by registering {
8686
from(files("../libs.versions.toml"))
8787
}
88+
89+
val kotlinWrappers by registering {
90+
from("org.jetbrains.kotlin-wrappers:kotlin-wrappers-catalog:0.0.1-pre.819")
91+
}
8892
}
8993
}
9094

gradle/build-logic/src/main/kotlin/net/kautler/ncc_packer.gradle.kts

+6-6
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
package net.kautler
1818

19-
import net.kautler.util.npm
2019
import org.gradle.accessors.dm.LibrariesForLibs
20+
import org.gradle.accessors.dm.LibrariesForKotlinWrappers
2121
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
2222
import org.jetbrains.kotlin.gradle.tasks.IncrementalSyncTask
2323

@@ -26,10 +26,11 @@ plugins {
2626
}
2727

2828
val libs = the<LibrariesForLibs>()
29+
val kotlinWrappers = the<LibrariesForKotlinWrappers>()
2930

3031
kotlin {
3132
js {
32-
useCommonJs()
33+
useEsModules()
3334
binaries.executable()
3435
nodejs()
3536
}
@@ -38,10 +39,9 @@ kotlin {
3839
jsMain {
3940
dependencies {
4041
implementation(libs.kotlinx.coroutines.core)
41-
implementation(dependencies.platform(libs.kotlin.wrappers.bom))
42-
implementation(libs.kotlin.wrapper.js)
43-
implementation(libs.kotlin.wrapper.node)
44-
implementation(npm(libs.build.vercel.ncc))
42+
implementation(kotlinWrappers.js)
43+
implementation(kotlinWrappers.node)
44+
implementation(kotlinWrappers.vercel.ncc)
4545
}
4646
}
4747
}

gradle/build-logic/src/main/kotlin/net/kautler/node.gradle.kts

+29-9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package net.kautler
1919
import net.kautler.dao.action.GitHubAction
2020
import net.kautler.util.npm
2121
import org.gradle.accessors.dm.LibrariesForLibs
22+
import org.gradle.accessors.dm.LibrariesForKotlinWrappers
2223
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
2324
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
2425
import org.jetbrains.kotlin.gradle.tasks.IncrementalSyncTask
@@ -29,10 +30,11 @@ plugins {
2930
}
3031

3132
val libs = the<LibrariesForLibs>()
33+
val kotlinWrappers = the<LibrariesForKotlinWrappers>()
3234

3335
kotlin {
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
5658
tasks.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

6282
val 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
}

gradle/libs.versions.toml

+3-11
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,9 @@ build-inject = "1"
2424
build-kotlinx-serialization = "1.5.0"
2525
build-node = "20.11.0"
2626
build-snakeyaml = "2.0"
27-
build-vercel-ncc = "0.36.1"
2827
kotlin = "2.0.20"
29-
kotlin-wrappers = "1.0.0-pre.529"
3028
kotlinx-coroutines = "1.6.4"
31-
nullWritable = "1.0.5"
32-
semver = "7.3.8"
29+
ktor = "3.0.0"
3330
workflows-kotlin = "2.0.20"
3431

3532
[libraries]
@@ -39,14 +36,9 @@ build-kotlinx-serialization-bom = { module = "org.jetbrains.kotlinx:kotlinx-seri
3936
build-kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core" }
4037
build-kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json" }
4138
build-snakeyaml = { module = "org.yaml:snakeyaml", version.ref = "build-snakeyaml" }
42-
build-vercel-ncc = { module = "vercel:ncc", version.ref = "build-vercel-ncc" }
43-
kotlin-wrapper-actions-toolkit = { module = "org.jetbrains.kotlin-wrappers:kotlin-actions-toolkit" }
44-
kotlin-wrapper-js = { module = "org.jetbrains.kotlin-wrappers:kotlin-js" }
45-
kotlin-wrapper-node = { module = "org.jetbrains.kotlin-wrappers:kotlin-node" }
46-
kotlin-wrappers-bom = { module = "org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom", version.ref = "kotlin-wrappers" }
4739
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" }
48-
nullWritable = { module = "<unscoped>:null-writable", version.ref = "nullWritable" }
49-
semver = { module = "<unscoped>:semver", version.ref = "semver" }
40+
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
41+
ktor-client-js = { module = "io.ktor:ktor-client-js", version.ref = "ktor" }
5042
workflows-kotlin-compiler = { module = "org.jetbrains.kotlin:kotlin-compiler", version.ref = "workflows-kotlin" }
5143
workflows-kotlin-main-kts = { module = "org.jetbrains.kotlin:kotlin-main-kts", version.ref = "workflows-kotlin" }
5244
workflows-kotlin-scripting-compiler = { module = "org.jetbrains.kotlin:kotlin-scripting-compiler", version.ref = "workflows-kotlin" }

0 commit comments

Comments
 (0)