Guest User

Untitled

a guest
Feb 7th, 2023
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 5.25 KB | None | 0 0
  1.  
  2. plugins {
  3.     idea
  4.     kotlin("multiplatform") version kotlinVersion
  5.     kotlin("plugin.serialization") version kotlinVersion
  6. }
  7.  
  8. kotlin {
  9.     jvm("server") {
  10.         compilations.all {
  11.             kotlinOptions.jvmTarget = javaVersion
  12.         }
  13.         withJava()
  14.         testRuns["test"].executionTask.configure {
  15.             useJUnitPlatform()
  16.         }
  17.     }
  18.     js("browser") {
  19.         binaries.library()
  20.         browser()
  21.     }
  22.     sourceSets {
  23.         val commonMain by getting {
  24.             dependencies {
  25.                 // Kotlin
  26.                 implementation(kotlin("stdlib"))=
  27.                 // Coroutines
  28.                 implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
  29.                 // Routing
  30.                 implementation("io.ktor:ktor-resources:$ktorVersion")
  31.                 // Serialization
  32.                 implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
  33.                 implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$serializationVersion")
  34.             }
  35.         }
  36.         val commonTest by getting {
  37.             dependencies {
  38.                 implementation(kotlin("test"))
  39.                 implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion")
  40.             }
  41.         }
  42.         val serverMain by getting {
  43.             dependencies {
  44.  
  45.                 // Database
  46.                 implementation("org.jooq:jooq:$jooqVersion")
  47.                 implementation("org.jooq:jooq-kotlin:$jooqVersion")
  48.                 implementation("org.jooq:jooq-kotlin-coroutines:$jooqVersion")
  49.                 implementation("org.litote.kmongo:kmongo-coroutine:$kMongoVersion")
  50.  
  51.                 // Framework
  52.                 implementation("io.ktor:ktor-server-core:$ktorVersion")
  53.                 implementation("io.ktor:ktor-server-compression:$ktorVersion")
  54.                 implementation("io.ktor:ktor-server-html-builder:$ktorVersion")
  55.  
  56.                 // Dependency Injection
  57.                 implementation("io.insert-koin:koin-core:$koinVersion")
  58.                 implementation("io.insert-koin:koin-ktor:$koinVersion")
  59.  
  60.                 // Authentication
  61.                 implementation("org.mindrot:jbcrypt:$jBcryptVersion")
  62.                 implementation("io.ktor:ktor-server-auth:$ktorVersion")
  63.                 implementation("io.ktor:ktor-server-auth-jwt:$ktorVersion")
  64.  
  65.                 // Serialization
  66.                 implementation("io.ktor:ktor-server-content-negotiation:$ktorVersion")
  67.  
  68.                 // Communication
  69.                 implementation("io.ktor:ktor-server-jetty:$ktorVersion")
  70.                 implementation("io.ktor:ktor-server-resources:$ktorVersion")
  71.                 implementation("io.ktor:ktor-server-websockets:$ktorVersion")
  72.  
  73.                 // Encryption
  74.                 implementation("io.github.hakky54:sslcontext-kickstart:$sslContextVersion")
  75.                 implementation("io.github.hakky54:sslcontext-kickstart-for-pem:$sslContextVersion")
  76.  
  77.                 // Logging
  78.                 implementation("org.tinylog:tinylog-api-kotlin:$tinylogVersion")
  79.                 implementation("org.tinylog:tinylog-impl:$tinylogVersion")
  80.                 implementation("org.tinylog:slf4j-tinylog:$tinylogVersion")
  81.  
  82.                 // Misc
  83.                 compileOnly("org.jetbrains:annotations:23.0.0")
  84.             }
  85.         }
  86.         val serverTest by getting {
  87.             dependencies {
  88.                 implementation(kotlin("test-junit5"))
  89.                 implementation("io.mockk:mockk:$mockkVersion")
  90.                 implementation("io.insert-koin:koin-test:$koinVersion") {
  91.                     isTransitive = false
  92.                 }
  93.                 implementation("io.insert-koin:koin-test-junit5:$koinVersion")
  94.                 implementation("io.ktor:ktor-server-test-host:$ktorVersion")
  95.                 implementation("io.ktor:ktor-client-resources:$ktorVersion")
  96.                 implementation("io.ktor:ktor-client-auth:$ktorVersion")
  97.             }
  98.         }
  99.         val browserMain by getting {
  100.  
  101.             fun enforcedPlatform(notation: Any) =
  102.                 project.dependencies.enforcedPlatform(notation)
  103.  
  104.             fun wrapper(name: String, version: String) =
  105.                 "org.jetbrains.kotlin-wrappers:kotlin-$name:$version"
  106.  
  107.             dependencies {
  108.  
  109.                 // Dependency Injection
  110.                 implementation("io.insert-koin:koin-core:$koinVersion")
  111.  
  112.                 // Authentication
  113.                 implementation("io.ktor:ktor-client-auth:$ktorVersion")
  114.  
  115.                 // Serialization
  116.                 implementation("io.ktor:ktor-client-serialization:$ktorVersion")
  117.                 implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
  118.  
  119.                 // Communication
  120.                 implementation("io.ktor:ktor-client-js:$ktorVersion")
  121.                 implementation("io.ktor:ktor-client-resources:$ktorVersion")
  122.                 implementation("io.ktor:ktor-client-websockets:$ktorVersion")
  123.  
  124.                 // NPM Dependencies & Kotlin Wrapper
  125.                 implementation(wrapper("react", reactVersion))
  126.                 implementation(wrapper("react-dom", reactVersion))
  127.             }
  128.         }
  129.         val browserTest by getting
  130.     }
  131. }
Add Comment
Please, Sign In to add comment