diff --git a/.idea/runConfigurations/Example_Simple__Build.xml b/.idea/runConfigurations/Example_Simple__Build.xml new file mode 100644 index 0000000..7b3f20e --- /dev/null +++ b/.idea/runConfigurations/Example_Simple__Build.xml @@ -0,0 +1,24 @@ + + + + + + + true + true + false + false + + + \ No newline at end of file diff --git a/.idea/runConfigurations/Example_Simple__Clean.xml b/.idea/runConfigurations/Example_Simple__Clean.xml new file mode 100644 index 0000000..aae025d --- /dev/null +++ b/.idea/runConfigurations/Example_Simple__Clean.xml @@ -0,0 +1,25 @@ + + + + + + + true + true + false + false + + + \ No newline at end of file diff --git a/examples/.gitignore b/examples/.gitignore new file mode 100644 index 0000000..4a10b76 --- /dev/null +++ b/examples/.gitignore @@ -0,0 +1,8 @@ +# Gradle generated files +build +gradle +gradlew +gradlew.bat + +# Yarn lock file +kotlin-js-store diff --git a/examples/simple/README.md b/examples/simple/README.md new file mode 100644 index 0000000..0c46249 --- /dev/null +++ b/examples/simple/README.md @@ -0,0 +1,3 @@ +# Simple example + +Example of a build with a single Kotlin/JS project. diff --git a/examples/simple/build.gradle.kts b/examples/simple/build.gradle.kts new file mode 100644 index 0000000..16c3c88 --- /dev/null +++ b/examples/simple/build.gradle.kts @@ -0,0 +1,17 @@ +plugins { + kotlin("multiplatform") version "1.9.10" + + // List of releases: https://gitlab.com/opensavvy/kotlin-vite/-/releases + id("opensavvy.vite.kotlin") // version "REPLACE THIS" +} + +repositories { + mavenCentral() +} + +kotlin { + js(IR) { + browser() + binaries.executable() + } +} diff --git a/examples/simple/settings.gradle.kts b/examples/simple/settings.gradle.kts new file mode 100644 index 0000000..bd9f68c --- /dev/null +++ b/examples/simple/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "example-simple" diff --git a/examples/simple/src/jsMain/kotlin/Main.kt b/examples/simple/src/jsMain/kotlin/Main.kt new file mode 100644 index 0000000..810a29d --- /dev/null +++ b/examples/simple/src/jsMain/kotlin/Main.kt @@ -0,0 +1,25 @@ +import kotlinx.browser.document +import kotlinx.browser.window +import kotlin.js.Date + +fun main() { + println("Hello world!") + ping() + window.setInterval({ + ping() + }, 5000) +} + +private fun createOrModifyDiv(content: String){ + val div = document.querySelector("div") + ?: document.createElement("div").also { document.body?.appendChild(it) } + div.innerHTML = content +} + +private fun ping() { + val startTime = Date.now() + window.fetch("https://jsonplaceholder.typicode.com").then { + val finishTime = Date.now() + createOrModifyDiv("Ping: ${finishTime - startTime} ms") + } +} diff --git a/examples/simple/src/jsMain/resources/index.html b/examples/simple/src/jsMain/resources/index.html new file mode 100644 index 0000000..0480cec --- /dev/null +++ b/examples/simple/src/jsMain/resources/index.html @@ -0,0 +1,14 @@ + + + + + Vite for Kotlin + + + + +
+ + + + diff --git a/examples/simple/src/jsMain/resources/style.css b/examples/simple/src/jsMain/resources/style.css new file mode 100644 index 0000000..e69de29