Skip to content

Commit 207bad1

Browse files
authored
Merge pull request #135 from tKe/ktor3-inplace
Update suspendapp-ktor to support ktor 3 and arrow 2
2 parents 45fc6ee + 2a13d4d commit 207bad1

File tree

102 files changed

+6434
-1605
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+6434
-1605
lines changed

build.gradle.kts

+33-43
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
import org.jetbrains.dokka.gradle.DokkaTask
2-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
1+
@file:OptIn(ExperimentalWasmDsl::class)
2+
3+
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
4+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
5+
import java.net.URI
36

47
plugins {
58
alias(libs.plugins.kotlin.multiplatform)
@@ -24,12 +27,16 @@ kotlin {
2427
// We set up custom targets rather than use Arrow Gradle Config for Kotlin,
2528
// Since we don't support all targets but only subset where having this behavior makes sense.
2629
jvm {
27-
compilations.all {
28-
kotlinOptions.jvmTarget = "1.8"
30+
compilerOptions {
31+
jvmTarget = JvmTarget.JVM_1_8
2932
}
3033
}
31-
js(IR) {
34+
js {
35+
nodejs()
36+
}
37+
wasmJs {
3238
nodejs()
39+
d8()
3340
}
3441

3542
linuxArm64()
@@ -39,56 +46,39 @@ kotlin {
3946
macosX64()
4047

4148
sourceSets {
42-
val commonMain by getting {
49+
applyDefaultHierarchyTemplate()
50+
51+
commonMain {
4352
dependencies {
4453
api(libs.coroutines)
4554
}
4655
}
47-
48-
val jvmMain by getting
49-
val jsMain by getting
50-
val mingwX64Main by getting
51-
val linuxX64Main by getting
52-
val macosArm64Main by getting
53-
val macosX64Main by getting
54-
val linuxArm64Main by getting
55-
56-
create("nativeMain") {
57-
dependsOn(commonMain)
58-
linuxX64Main.dependsOn(this)
59-
macosArm64Main.dependsOn(this)
60-
macosX64Main.dependsOn(this)
61-
mingwX64Main.dependsOn(this)
62-
linuxArm64Main.dependsOn(this)
63-
}
6456
}
6557
}
6658

67-
tasks {
68-
withType<DokkaTask>().configureEach {
59+
dokka {
60+
dokkaPublications.html {
6961
outputDirectory.set(rootDir.resolve("docs"))
70-
moduleName.set("suspendapp")
71-
dokkaSourceSets {
72-
named("commonMain") {
73-
includes.from("README.md")
74-
perPackageOption {
75-
matchingRegex.set(".*\\.unsafe.*")
76-
suppress.set(true)
77-
}
78-
externalDocumentationLink("https://kotlinlang.org/api/kotlinx.coroutines/")
79-
sourceLink {
80-
localDirectory.set(file("src/commonMain/kotlin"))
81-
remoteUrl.set(uri("https://github.com/arrow-kt/suspendapp/tree/main/src/commonMain/kotlin").toURL())
82-
remoteLineSuffix.set("#L")
83-
}
62+
}
63+
moduleName.set("suspendapp")
64+
dokkaSourceSets {
65+
named("commonMain") {
66+
includes.from("README.md")
67+
perPackageOption {
68+
matchingRegex.set(".*\\.unsafe.*")
69+
suppress.set(true)
70+
}
71+
// externalDocumentationLink("https://kotlinlang.org/api/kotlinx.coroutines/")
72+
sourceLink {
73+
localDirectory.set(file("src/commonMain/kotlin"))
74+
remoteUrl.set(URI("https://github.com/arrow-kt/suspendapp/tree/main/src/commonMain/kotlin"))
75+
remoteLineSuffix.set("#L")
8476
}
8577
}
8678
}
79+
}
8780

88-
withType<KotlinCompile>().configureEach {
89-
kotlinOptions.jvmTarget = "1.8"
90-
}
91-
81+
tasks {
9282
register<Delete>("cleanDocs") {
9383
val folder = file("docs").also { it.mkdir() }
9484
val docsContent = folder.listFiles().filter { it != folder }

docs/images/anchor-copy-button.svg

+1-1
Loading

docs/images/arrow_down.svg

-3
This file was deleted.

docs/images/copy-icon.svg

+1-1
Loading

docs/images/copy-successful-icon.svg

+1-1
Loading

docs/images/footer-go-to-link.svg

+1-1
Loading

docs/images/go-to-top-icon.svg

+1-1
Loading

docs/images/logo-icon.svg

+5-1
Loading

docs/images/theme-toggle.svg

-4
This file was deleted.

docs/index.html

+132-55
Large diffs are not rendered by default.

docs/navigation.html

+33-10
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,36 @@
1-
<div class="sideMenuPart" id="suspendapp-nav-submenu" pageId="suspendapp::////PointingToDeclaration//703050856">
2-
<div class="overview"><span class="navButton" onclick="document.getElementById(&quot;suspendapp-nav-submenu&quot;).classList.toggle(&quot;hidden&quot;);"><span class="navButtonContent"></span></span><a href="index.html"><span><span>suspendapp</span></span></a></div>
3-
<div class="sideMenuPart" id="suspendapp-nav-submenu-0" pageId="suspendapp::arrow.continuations////PointingToDeclaration//788909594">
4-
<div class="overview"><span class="navButton" onclick="document.getElementById(&quot;suspendapp-nav-submenu-0&quot;).classList.toggle(&quot;hidden&quot;);"><span class="navButtonContent"></span></span><a href="suspendapp/arrow.continuations/index.html"><span>arrow.</span><wbr></wbr><span><span>continuations</span></span></a></div>
5-
<div class="sideMenuPart" id="suspendapp-nav-submenu-0-0" pageId="suspendapp::arrow.continuations//SuspendApp/#kotlin.coroutines.CoroutineContext#kotlin.time.Duration#kotlin.coroutines.SuspendFunction1[kotlinx.coroutines.CoroutineScope,kotlin.Unit]/PointingToDeclaration//788909594">
6-
<div class="overview"><a href="suspendapp/arrow.continuations/-suspend-app.html"><span class="nav-link-grid"><span class="nav-link-child nav-icon function"></span><span class="nav-link-child"><span>Suspend</span><wbr></wbr><span><span>App()</span></span></span></span></a></div>
1+
<div class="toc--part" id="suspendapp-nav-submenu" pageId="suspendapp::////PointingToDeclaration//210890768" data-nesting-level="0">
2+
<div class="toc--row"><button class="toc--button" onclick="document.getElementById(&quot;suspendapp-nav-submenu&quot;).classList.toggle(&quot;toc--part_hidden&quot;);"></button><a href="index.html" class="toc--link"><span><span>suspendapp</span></span></a></div>
3+
<div class="toc--part" id="suspendapp-nav-submenu-0" pageId="suspendapp::arrow.continuations////PointingToDeclaration//210890768" data-nesting-level="1">
4+
<div class="toc--row"><button class="toc--button" onclick="document.getElementById(&quot;suspendapp-nav-submenu-0&quot;).classList.toggle(&quot;toc--part_hidden&quot;);"></button><a href="suspendapp/arrow.continuations/index.html" class="toc--link"><span>arrow.</span><wbr></wbr><span><span>continuations</span></span></a></div>
5+
<div class="toc--part" id="suspendapp-nav-submenu-0-0" pageId="suspendapp::arrow.continuations/JsProcess///PointingToDeclaration//-649084563" data-nesting-level="2">
6+
<div class="toc--row"><a href="suspendapp/arrow.continuations/[js]-js-process/index.html" class="toc--link"><span class="toc--link-grid"><span class="toc--icon object"></span><span><span>[js]Js</span><wbr></wbr><span><span>Process</span></span></span></span></a></div>
7+
</div>
8+
<div class="toc--part" id="suspendapp-nav-submenu-0-1" pageId="suspendapp::arrow.continuations/JsProcess///PointingToDeclaration//1382690738" data-nesting-level="2">
9+
<div class="toc--row"><a href="suspendapp/arrow.continuations/[wasm-js]-js-process/index.html" class="toc--link"><span class="toc--link-grid"><span class="toc--icon object"></span><span><span>[wasm</span><wbr></wbr><span>Js]Js</span><wbr></wbr><span><span>Process</span></span></span></span></a></div>
10+
</div>
11+
<div class="toc--part" id="suspendapp-nav-submenu-0-2" pageId="suspendapp::arrow.continuations//jsExit/#kotlin.Int/PointingToDeclaration//1382690738" data-nesting-level="2">
12+
<div class="toc--row"><a href="suspendapp/arrow.continuations/js-exit.html" class="toc--link"><span class="toc--link-grid"><span class="toc--icon function"></span><span><span>js</span><wbr></wbr><span><span>Exit()</span></span></span></span></a></div>
13+
</div>
14+
<div class="toc--part" id="suspendapp-nav-submenu-0-3" pageId="suspendapp::arrow.continuations/JvmProcess///PointingToDeclaration//2112555339" data-nesting-level="2">
15+
<div class="toc--row"><a href="suspendapp/arrow.continuations/-jvm-process/index.html" class="toc--link"><span class="toc--link-grid"><span class="toc--icon object"></span><span><span>Jvm</span><wbr></wbr><span><span>Process</span></span></span></span></a></div>
16+
</div>
17+
<div class="toc--part" id="suspendapp-nav-submenu-0-4" pageId="suspendapp::arrow.continuations/Process///PointingToDeclaration//1558683979" data-nesting-level="2">
18+
<div class="toc--row"><a href="suspendapp/arrow.continuations/-process/index.html" class="toc--link"><span class="toc--link-grid"><span class="toc--icon interface-kt"></span><span><span><span>Process</span></span></span></span></a></div>
19+
</div>
20+
<div class="toc--part" id="suspendapp-nav-submenu-0-5" pageId="suspendapp::arrow.continuations//process/#/PointingToDeclaration//210890768" data-nesting-level="2">
21+
<div class="toc--row"><a href="suspendapp/arrow.continuations/process.html" class="toc--link"><span class="toc--link-grid"><span class="toc--icon function"></span><span><span><span>process()</span></span></span></span></a></div>
22+
</div>
23+
<div class="toc--part" id="suspendapp-nav-submenu-0-6" pageId="suspendapp::arrow.continuations//processOn/#kotlin.Function0[kotlin.js.Promise[kotlin.js.JsAny?]]/PointingToDeclaration//1382690738" data-nesting-level="2">
24+
<div class="toc--row"><a href="suspendapp/arrow.continuations/process-on.html" class="toc--link"><span class="toc--link-grid"><span class="toc--icon function"></span><span><span>process</span><wbr></wbr><span><span>On()</span></span></span></span></a></div>
25+
</div>
26+
<div class="toc--part" id="suspendapp-nav-submenu-0-7" pageId="suspendapp::arrow.continuations//SIGINFO/#/PointingToDeclaration//-1186620981" data-nesting-level="2">
27+
<div class="toc--row"><a href="suspendapp/arrow.continuations/-s-i-g-i-n-f-o.html" class="toc--link"><span class="toc--link-grid"><span class="toc--icon val"></span><span><span><span>SIGINFO</span></span></span></span></a></div>
28+
</div>
29+
<div class="toc--part" id="suspendapp-nav-submenu-0-8" pageId="suspendapp::arrow.continuations//SIGUSR1/#/PointingToDeclaration//-1186620981" data-nesting-level="2">
30+
<div class="toc--row"><a href="suspendapp/arrow.continuations/-s-i-g-u-s-r1.html" class="toc--link"><span class="toc--link-grid"><span class="toc--icon val"></span><span><span><span>SIGUSR1</span></span></span></span></a></div>
31+
</div>
32+
<div class="toc--part" id="suspendapp-nav-submenu-0-9" pageId="suspendapp::arrow.continuations//SuspendApp/#kotlin.coroutines.CoroutineContext#kotlin.Function1[kotlin.Throwable,kotlin.Unit]#kotlin.time.Duration#arrow.continuations.Process#kotlin.coroutines.SuspendFunction1[kotlinx.coroutines.CoroutineScope,kotlin.Unit]/PointingToDeclaration//1558683979" data-nesting-level="2">
33+
<div class="toc--row"><a href="suspendapp/arrow.continuations/-suspend-app.html" class="toc--link"><span class="toc--link-grid"><span class="toc--icon function"></span><span><span>Suspend</span><wbr></wbr><span><span>App()</span></span></span></span></a></div>
734
</div>
8-
</div>
9-
<div class="sideMenuPart" id="suspendapp-nav-submenu-1" pageId="suspendapp::arrow.continuations.unsafe////PointingToDeclaration//337714522">
10-
<div class="overview"><a href="suspendapp/arrow.continuations.unsafe.html"><span>arrow.</span><wbr></wbr><span>continuations.</span><wbr></wbr><span>unsafe</span></a></div>
1135
</div>
1236
</div>
13-

docs/scripts/clipboard.js

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
/*
2+
* Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
15
window.addEventListener('load', () => {
26
document.querySelectorAll('span.copy-icon').forEach(element => {
37
element.addEventListener('click', (el) => copyElementsContentToClipboard(element));

docs/scripts/main.js

+20-11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/scripts/navigation-loader.js

+20-16
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1+
/*
2+
* Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
15
navigationPageText = fetch(pathToRoot + "navigation.html").then(response => response.text())
26

37
displayNavigationFromPage = () => {
48
navigationPageText.then(data => {
59
document.getElementById("sideMenu").innerHTML = data;
610
}).then(() => {
7-
document.querySelectorAll(".overview > a").forEach(link => {
11+
document.querySelectorAll(".toc--row > a").forEach(link => {
812
link.setAttribute("href", pathToRoot + link.getAttribute("href"));
913
})
1014
}).then(() => {
11-
document.querySelectorAll(".sideMenuPart").forEach(nav => {
12-
if (!nav.classList.contains("hidden"))
13-
nav.classList.add("hidden")
15+
document.querySelectorAll(".toc--part").forEach(nav => {
16+
if (!nav.classList.contains("toc--part_hidden"))
17+
nav.classList.add("toc--part_hidden")
1418
})
1519
}).then(() => {
1620
revealNavigationForCurrentPage()
@@ -29,14 +33,14 @@ displayNavigationFromPage = () => {
2933

3034
revealNavigationForCurrentPage = () => {
3135
let pageId = document.getElementById("content").attributes["pageIds"].value.toString();
32-
let parts = document.querySelectorAll(".sideMenuPart");
36+
let parts = document.querySelectorAll(".toc--part");
3337
let found = 0;
3438
do {
3539
parts.forEach(part => {
3640
if (part.attributes['pageId'].value.indexOf(pageId) !== -1 && found === 0) {
3741
found = 1;
38-
if (part.classList.contains("hidden")) {
39-
part.classList.remove("hidden");
42+
if (part.classList.contains("toc--part_hidden")) {
43+
part.classList.remove("toc--part_hidden");
4044
part.setAttribute('data-active', "");
4145
}
4246
revealParents(part)
@@ -46,25 +50,25 @@ revealNavigationForCurrentPage = () => {
4650
} while (pageId.indexOf("/") !== -1 && found === 0)
4751
};
4852
revealParents = (part) => {
49-
if (part.classList.contains("sideMenuPart")) {
50-
if (part.classList.contains("hidden"))
51-
part.classList.remove("hidden");
53+
if (part.classList.contains("toc--part")) {
54+
if (part.classList.contains("toc--part_hidden"))
55+
part.classList.remove("toc--part_hidden");
5256
revealParents(part.parentNode)
5357
}
5458
};
5559

5660
scrollNavigationToSelectedElement = () => {
57-
let selectedElement = document.querySelector('div.sideMenuPart[data-active]')
61+
let selectedElement = document.querySelector('div.toc--part[data-active]')
5862
if (selectedElement == null) { // nothing selected, probably just the main page opened
5963
return
6064
}
6165

62-
let hasIcon = selectedElement.querySelectorAll(":scope > div.overview span.nav-icon").length > 0
66+
let hasIcon = selectedElement.querySelectorAll(":scope > div.toc--row span.toc--icon").length > 0
6367

64-
// for instance enums also have children and are expandable, but are not package/module elements
68+
// for an instance enums also have children and are expandable but are not package/module elements
6569
let isPackageElement = selectedElement.children.length > 1 && !hasIcon
6670
if (isPackageElement) {
67-
// if package is selected or linked, it makes sense to align it to top
71+
// if a package is selected or linked, it makes sense to align it to top
6872
// so that you can see all the members it contains
6973
selectedElement.scrollIntoView(true)
7074
} else {
@@ -80,9 +84,9 @@ scrollNavigationToSelectedElement = () => {
8084

8185
/*
8286
This is a work-around for safari being IE of our times.
83-
It doesn't fire a DOMContentLoaded, presumabely because eventListener is added after it wants to do it
87+
It doesn't fire a DOMContentLoaded, presumably because eventListener is added after it wants to do it
8488
*/
85-
if (document.readyState == 'loading') {
89+
if (document.readyState === 'loading') {
8690
window.addEventListener('DOMContentLoaded', () => {
8791
displayNavigationFromPage()
8892
})

0 commit comments

Comments
 (0)