Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- plugins {
- idea
- kotlin("multiplatform") version kotlinVersion
- kotlin("plugin.serialization") version kotlinVersion
- }
- kotlin {
- jvm("server") {
- compilations.all {
- kotlinOptions.jvmTarget = javaVersion
- }
- withJava()
- testRuns["test"].executionTask.configure {
- useJUnitPlatform()
- }
- }
- js("browser") {
- binaries.library()
- browser()
- }
- sourceSets {
- val commonMain by getting {
- dependencies {
- // Kotlin
- implementation(kotlin("stdlib"))=
- // Coroutines
- implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
- // Routing
- implementation("io.ktor:ktor-resources:$ktorVersion")
- // Serialization
- implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
- implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$serializationVersion")
- }
- }
- val commonTest by getting {
- dependencies {
- implementation(kotlin("test"))
- implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion")
- }
- }
- val serverMain by getting {
- dependencies {
- // Database
- implementation("org.jooq:jooq:$jooqVersion")
- implementation("org.jooq:jooq-kotlin:$jooqVersion")
- implementation("org.jooq:jooq-kotlin-coroutines:$jooqVersion")
- implementation("org.litote.kmongo:kmongo-coroutine:$kMongoVersion")
- // Framework
- implementation("io.ktor:ktor-server-core:$ktorVersion")
- implementation("io.ktor:ktor-server-compression:$ktorVersion")
- implementation("io.ktor:ktor-server-html-builder:$ktorVersion")
- // Dependency Injection
- implementation("io.insert-koin:koin-core:$koinVersion")
- implementation("io.insert-koin:koin-ktor:$koinVersion")
- // Authentication
- implementation("org.mindrot:jbcrypt:$jBcryptVersion")
- implementation("io.ktor:ktor-server-auth:$ktorVersion")
- implementation("io.ktor:ktor-server-auth-jwt:$ktorVersion")
- // Serialization
- implementation("io.ktor:ktor-server-content-negotiation:$ktorVersion")
- // Communication
- implementation("io.ktor:ktor-server-jetty:$ktorVersion")
- implementation("io.ktor:ktor-server-resources:$ktorVersion")
- implementation("io.ktor:ktor-server-websockets:$ktorVersion")
- // Encryption
- implementation("io.github.hakky54:sslcontext-kickstart:$sslContextVersion")
- implementation("io.github.hakky54:sslcontext-kickstart-for-pem:$sslContextVersion")
- // Logging
- implementation("org.tinylog:tinylog-api-kotlin:$tinylogVersion")
- implementation("org.tinylog:tinylog-impl:$tinylogVersion")
- implementation("org.tinylog:slf4j-tinylog:$tinylogVersion")
- // Misc
- compileOnly("org.jetbrains:annotations:23.0.0")
- }
- }
- val serverTest by getting {
- dependencies {
- implementation(kotlin("test-junit5"))
- implementation("io.mockk:mockk:$mockkVersion")
- implementation("io.insert-koin:koin-test:$koinVersion") {
- isTransitive = false
- }
- implementation("io.insert-koin:koin-test-junit5:$koinVersion")
- implementation("io.ktor:ktor-server-test-host:$ktorVersion")
- implementation("io.ktor:ktor-client-resources:$ktorVersion")
- implementation("io.ktor:ktor-client-auth:$ktorVersion")
- }
- }
- val browserMain by getting {
- fun enforcedPlatform(notation: Any) =
- project.dependencies.enforcedPlatform(notation)
- fun wrapper(name: String, version: String) =
- "org.jetbrains.kotlin-wrappers:kotlin-$name:$version"
- dependencies {
- // Dependency Injection
- implementation("io.insert-koin:koin-core:$koinVersion")
- // Authentication
- implementation("io.ktor:ktor-client-auth:$ktorVersion")
- // Serialization
- implementation("io.ktor:ktor-client-serialization:$ktorVersion")
- implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
- // Communication
- implementation("io.ktor:ktor-client-js:$ktorVersion")
- implementation("io.ktor:ktor-client-resources:$ktorVersion")
- implementation("io.ktor:ktor-client-websockets:$ktorVersion")
- // NPM Dependencies & Kotlin Wrapper
- implementation(wrapper("react", reactVersion))
- implementation(wrapper("react-dom", reactVersion))
- }
- }
- val browserTest by getting
- }
- }
Add Comment
Please, Sign In to add comment