import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.jetbrainsCompose) alias(libs.plugins.compose.compiler) } kotlin { js(IR) { moduleName = "mifospay-web" browser { commonWebpackConfig { outputFileName = "mifospay-web.js" } } binaries.executable() } @OptIn(ExperimentalWasmDsl::class) wasmJs { moduleName = "mifospay-wasm" val projectPath: String = project.rootDir.path browser { commonWebpackConfig { outputFileName = "mifospay-wasm.js" devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply { static = (static ?: mutableListOf()).apply { add(projectPath) add("$projectPath/mifospay-shared/") add("$projectPath/mifospay-web/") add("$projectPath/core/designsystem") add("$projectPath/core/ui") } } } } binaries.executable() } applyDefaultHierarchyTemplate() sourceSets { val jsWasmMain by creating { dependsOn(commonMain.get()) dependencies { implementation(projects.mifospayShared) implementation(compose.runtime) implementation(compose.ui) implementation(compose.foundation) implementation(compose.material3) implementation(compose.components.resources) } } jsMain.get().dependsOn(jsWasmMain) wasmJsMain.get().dependsOn(jsWasmMain) } } compose.resources { publicResClass = true generateResClass = always }