Add serialization modules and export kotlinx coroutines dep

This commit is contained in:
2026-01-17 23:31:31 +08:00
parent 546977fe86
commit e349eec63e
7 files changed
+95 -12

No files matched your search

@@ -0,0 +1,19 @@
plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
}
kotlin {
explicitApi()
js(IR) {
nodejs { binaries.executable() }
}
sourceSets {
jsMain.dependencies {
api("org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1")
api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1")
}
}
}
@@ -0,0 +1,31 @@
/*
* Copyright © 2026 RTAkland
* Author: RTAkland
* Date: 2026/1/17
*/
@file:OptIn(ExperimentalSerializationApi::class)
package cn.rtast.cfworker.serialization.json
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.Json
public val json: Json = Json {
ignoreUnknownKeys = true
explicitNulls = false
classDiscriminator = "_json_type_"
encodeDefaults = true
coerceInputValues = true
decodeEnumsCaseInsensitive = true
isLenient = true
}
public inline fun <reified T> T.toJson(): String {
return json.encodeToString(this)
}
public inline fun <reified T> String.fromJson(): T {
return json.decodeFromString<T>(this)
}