Tyler Maginnis
01/10/2025, 9:53 PMpackage org.example.project
// Import the JavaScript 'Date.now()' function
@JsImport("Date.now", "Date")
external fun jsDateNow(): Double
// Top-level function that calls the imported JavaScript function
@JsExport
fun currentTimeMillis(): Long = jsDateNow().toLong()
class WebTimeProvider : ITimeProvider {
override fun getCurrentTimeMillis(): Long {
return currentTimeMillis()
}
}
TimeProviderFactory.kt:
package org.example.project
actual fun createTimeProvider(): ITimeProvider = WebTimeProvider()
ephemient
01/10/2025, 10:04 PMTyler Maginnis
01/10/2025, 10:05 PMephemient
01/10/2025, 10:07 PMTyler Maginnis
01/10/2025, 10:08 PMTyler Maginnis
01/10/2025, 10:13 PMephemient
01/10/2025, 10:16 PMkotlin {
sourceSets {
wasmJsMain {
dependencies {
implementation("org.jetbrains.kotlin-wrappers:kotlin-node:22.10.2-pre.860")
ephemient
01/10/2025, 10:17 PMnode
for you if you're targeting Compose in a browser but you can find all the libraries and versions on GitHub, or just use them as inspiration to create your own wrappersephemient
01/10/2025, 10:18 PMephemient
01/10/2025, 10:19 PMTyler Maginnis
01/10/2025, 11:01 PM