mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2025-09-04 23:59:29 +00:00
update ktor utils
This commit is contained in:
@@ -21,3 +21,4 @@ fun buildStandardUrl(
|
||||
subpart: String,
|
||||
vararg parameters: QueryParam
|
||||
) = buildStandardUrl(basePart, subpart, parameters.toList())
|
||||
|
||||
|
@@ -1,6 +0,0 @@
|
||||
package dev.inmo.micro_utils.ktor.common
|
||||
|
||||
import kotlinx.serialization.builtins.SetSerializer
|
||||
import kotlinx.serialization.builtins.serializer
|
||||
|
||||
val setIdsSerializer = SetSerializer(String.serializer())
|
@@ -1,6 +1,6 @@
|
||||
package dev.inmo.micro_utils.ktor.common
|
||||
|
||||
private val schemaRegex = Regex("[^:]*//")
|
||||
private val schemaRegex = Regex("^[^:]*://")
|
||||
|
||||
val String.asCorrectWebSocketUrl: String
|
||||
get() = if (startsWith("ws")) {
|
||||
|
@@ -11,7 +11,7 @@ val List<QueryParam>.asUrlQuery: String
|
||||
|
||||
fun String.includeQueryParams(
|
||||
queryParams: QueryParams
|
||||
): String = "$this${if (contains("?")) "&" else "?"}${queryParams.asUrlQuery}"
|
||||
): String = "$this${if(queryParams.isNotEmpty()) "${if (contains("?")) "&" else "?"}${queryParams.asUrlQuery}" else ""}"
|
||||
|
||||
fun String.includeQueryParams(
|
||||
queryParams: List<QueryParam>
|
||||
|
@@ -1,5 +1,32 @@
|
||||
package dev.inmo.micro_utils.ktor.common
|
||||
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.cbor.Cbor
|
||||
|
||||
val standardKtorSerialFormat = Cbor
|
||||
typealias StandardKtorSerialFormat = BinaryFormat
|
||||
typealias StandardKtorSerialInputData = ByteArray
|
||||
val standardKtorSerialFormat: StandardKtorSerialFormat = Cbor { }
|
||||
|
||||
inline fun <T> StandardKtorSerialFormat.decodeDefault(
|
||||
deserializationStrategy: DeserializationStrategy<T>,
|
||||
input: StandardKtorSerialInputData
|
||||
): T = decodeFromByteArray(deserializationStrategy, input)
|
||||
|
||||
inline fun <T> StandardKtorSerialFormat.encodeDefault(
|
||||
serializationStrategy: SerializationStrategy<T>,
|
||||
data: T
|
||||
): StandardKtorSerialInputData = encodeToByteArray(serializationStrategy, data)
|
||||
|
||||
val cbor = Cbor {}
|
||||
|
||||
inline fun <T> StandardKtorSerialFormat.decodeHex(
|
||||
deserializationStrategy: DeserializationStrategy<T>,
|
||||
input: String
|
||||
): T = decodeFromHexString(deserializationStrategy, input)
|
||||
|
||||
inline fun <T> StandardKtorSerialFormat.encodeHex(
|
||||
serializationStrategy: SerializationStrategy<T>,
|
||||
data: T
|
||||
): String = encodeToHexString(serializationStrategy, data)
|
||||
|
||||
|
||||
|
@@ -1,7 +0,0 @@
|
||||
package dev.inmo.micro_utils.ktor.common
|
||||
|
||||
const val clientWebsocketHelloMessage = "Start getting of updates"
|
||||
const val serverWebsocketHelloMessage = "Accepted"
|
||||
|
||||
const val serverWebsocketNewMessageMessage = "NewMessage"
|
||||
const val websocketFinalizationMessage = "Final"
|
Reference in New Issue
Block a user