diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d1c32d3c6e..f656e7402d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## 0.9.24 +* `Ktor`: + * `Common`: + * New extension fun `MPPFile#input` + ## 0.9.23 * `Repos`: diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c31524d819f..e269769e4c8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -39,6 +39,7 @@ kt-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", vers kt-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kt-coroutines" } +ktor-io = { module = "io.ktor:ktor-io", version.ref = "ktor" } ktor-client = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } ktor-client-java = { module = "io.ktor:ktor-client-java", version.ref = "ktor" } ktor-server = { module = "io.ktor:ktor-server", version.ref = "ktor" } diff --git a/ktor/common/build.gradle b/ktor/common/build.gradle index 7446daad0c7..6b1c636a8a9 100644 --- a/ktor/common/build.gradle +++ b/ktor/common/build.gradle @@ -14,6 +14,7 @@ kotlin { api libs.kt.serialization.cbor api libs.klock api libs.uuid + api libs.ktor.io } } } diff --git a/ktor/common/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/common/MPPFileInput.kt b/ktor/common/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/common/MPPFileInput.kt new file mode 100644 index 00000000000..3d1c742fb73 --- /dev/null +++ b/ktor/common/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/common/MPPFileInput.kt @@ -0,0 +1,6 @@ +package dev.inmo.micro_utils.ktor.common + +import dev.inmo.micro_utils.common.MPPFile +import io.ktor.utils.io.core.Input + +expect fun MPPFile.input(): Input diff --git a/ktor/common/src/jsMain/kotlin/dev/inmo/micro_utils/ktor/common/ActualMPPInput.kt b/ktor/common/src/jsMain/kotlin/dev/inmo/micro_utils/ktor/common/ActualMPPInput.kt new file mode 100644 index 00000000000..72433cf64d0 --- /dev/null +++ b/ktor/common/src/jsMain/kotlin/dev/inmo/micro_utils/ktor/common/ActualMPPInput.kt @@ -0,0 +1,7 @@ +package dev.inmo.micro_utils.ktor.common + +import dev.inmo.micro_utils.common.* +import io.ktor.utils.io.core.ByteReadPacket +import io.ktor.utils.io.core.Input + +actual fun MPPFile.input(): Input = ByteReadPacket(bytesSync()) diff --git a/ktor/common/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/common/ActualMPPFileInput.kt b/ktor/common/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/common/ActualMPPFileInput.kt new file mode 100644 index 00000000000..10865adc6cc --- /dev/null +++ b/ktor/common/src/jvmMain/kotlin/dev/inmo/micro_utils/ktor/common/ActualMPPFileInput.kt @@ -0,0 +1,7 @@ +package dev.inmo.micro_utils.ktor.common + +import dev.inmo.micro_utils.common.MPPFile +import io.ktor.utils.io.core.Input +import io.ktor.utils.io.streams.asInput + +actual fun MPPFile.input(): Input = inputStream().asInput()