Skip to content

Commit 066e478

Browse files
committed
fixing breaking changes from kotlin-serialization 0.20.0
1 parent 6779a89 commit 066e478

File tree

17 files changed

+47
-37
lines changed

17 files changed

+47
-37
lines changed

firebase-app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ repositories {
1111
google()
1212
}
1313

14-
version = "0.1.0-dev"
14+
version = "0.1.0-beta"
1515

1616
android {
1717
compileSdkVersion(property("targetSdkVersion") as Int)

firebase-app/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@teamhubapp/firebase-app",
3-
"version": "0.1.0-dev12",
3+
"version": "0.1.0-beta",
44
"description": "Wrapper around firebase for usage in Kotlin Multiplatform projects",
55
"main": "firebase-app.js",
66
"scripts": {
@@ -23,7 +23,7 @@
2323
},
2424
"homepage": "https://github.com/TeamHubApp/firebase-kotlin-multiplatform-sdk",
2525
"dependencies": {
26-
"@teamhubapp/firebase-common": "0.1.0-dev12",
26+
"@teamhubapp/firebase-common": "0.1.0-beta",
2727
"firebase": "6.2.3",
2828
"kotlin": "1.3.70",
2929
"kotlinx-coroutines-core": "1.3.4"

firebase-auth/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77
`maven-publish`
88
}
99

10-
version = "0.1.0-dev"
10+
version = "0.1.0-beta"
1111

1212
android {
1313
compileSdkVersion(property("targetSdkVersion") as Int)

firebase-auth/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@teamhubapp/firebase-auth",
3-
"version": "0.1.0-dev12",
3+
"version": "0.1.0-beta",
44
"description": "Wrapper around firebase for usage in Kotlin Multiplatform projects",
55
"main": "firebase-auth.js",
66
"scripts": {
@@ -23,7 +23,7 @@
2323
},
2424
"homepage": "https://github.com/TeamHubApp/firebase-kotlin-multiplatform-sdk",
2525
"dependencies": {
26-
"@teamhubapp/firebase-app": "0.1.0-dev12",
26+
"@teamhubapp/firebase-app": "0.1.0-beta",
2727
"firebase": "6.2.3",
2828
"kotlin": "1.3.70",
2929
"kotlinx-coroutines-core": "1.3.4"

firebase-common/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ repositories {
1111
mavenCentral()
1212
google()
1313
}
14-
version = "0.1.0-dev"
14+
version = "0.1.0-beta"
1515

1616
android {
1717
compileSdkVersion(property("targetSdkVersion") as Int)

firebase-common/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@teamhubapp/firebase-common",
3-
"version": "0.1.0-dev14",
3+
"version": "0.1.0-beta14",
44
"description": "Wrapper around firebase for usage in Kotlin Multiplatform projects",
55
"main": "firebase-common.js",
66
"scripts": {

firebase-common/src/androidMain/kotlin/dev/teamhub/firebase/_decoders.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import kotlinx.serialization.SerialDescriptor
66
import kotlinx.serialization.StructureKind
77

88
actual fun FirebaseDecoder.structureDecoder(desc: SerialDescriptor, vararg typeParams: KSerializer<*>): CompositeDecoder = when(desc.kind as StructureKind) {
9-
StructureKind.CLASS -> (value as Map<*, *>).let { map ->
9+
StructureKind.CLASS, StructureKind.OBJECT -> (value as Map<*, *>).let { map ->
1010
FirebaseClassDecoder(map.size, { map.containsKey(it) }) { desc, index -> map[desc.getElementName(index)] }
1111
}
1212
StructureKind.LIST -> (value as List<*>).let {

firebase-common/src/androidMain/kotlin/dev/teamhub/firebase/_encoders.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ actual fun FirebaseEncoder.structureEncoder(desc: SerialDescriptor, vararg typeP
1010
StructureKind.LIST -> mutableListOf<Any?>()
1111
.also { value = it }
1212
.let { FirebaseCompositeEncoder(positiveInfinity) { _, index, value -> it.add(index, value) } }
13-
StructureKind.MAP, StructureKind.CLASS -> mutableMapOf<Any?, Any?>()
13+
StructureKind.MAP, StructureKind.CLASS, StructureKind.OBJECT -> mutableMapOf<Any?, Any?>()
1414
.also { value = it }
1515
.let { FirebaseCompositeEncoder(positiveInfinity) { _, index, value -> it[desc.getElementName(index)] = value } }
1616
}

firebase-common/src/commonMain/kotlin/dev/teamhub/firebase/decoders.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package dev.teamhub.firebase
33
import kotlinx.serialization.*
44
import kotlinx.serialization.CompositeDecoder.Companion.READ_ALL
55
import kotlinx.serialization.CompositeDecoder.Companion.READ_DONE
6+
import kotlinx.serialization.builtins.nullable
67
import kotlinx.serialization.internal.UnitDescriptor
7-
import kotlinx.serialization.internal.nullable
88
import kotlinx.serialization.modules.EmptyModule
99
import kotlinx.serialization.modules.SerialModule
1010
import kotlinx.serialization.modules.getContextualOrDefault
@@ -118,6 +118,8 @@ open class FirebaseCompositeDecoder constructor(
118118

119119
override fun decodeUnitElement(desc: SerialDescriptor, index: Int) = decodeUnit(get(desc, index))
120120

121+
override fun endStructure(descriptor: SerialDescriptor) {
122+
}
121123
}
122124

123125
private fun decodeString(value: Any?) = value.toString()

firebase-common/src/commonMain/kotlin/dev/teamhub/firebase/encoders.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package dev.teamhub.firebase
22

33
import kotlinx.serialization.*
4-
import kotlinx.serialization.internal.ListLikeSerializer
5-
import kotlinx.serialization.internal.MapLikeSerializer
64
import kotlinx.serialization.modules.EmptyModule
75

86
fun <T> encode(strategy: SerializationStrategy<T> , value: T, positiveInfinity: Any = Double.POSITIVE_INFINITY): Any? =
@@ -91,12 +89,15 @@ open class FirebaseCompositeEncoder constructor(
9189

9290
override val context = EmptyModule
9391

94-
private fun <T> SerializationStrategy<T>.toFirebase(): SerializationStrategy<T> = when(this) {
95-
is MapLikeSerializer<*, *, *, *> -> FirebaseMapSerializer() as SerializationStrategy<T>
96-
is ListLikeSerializer<*, *, *> -> FirebaseListSerializer() as SerializationStrategy<T>
92+
private fun <T> SerializationStrategy<T>.toFirebase(): SerializationStrategy<T> = when(this.descriptor.kind) {
93+
StructureKind.MAP -> FirebaseMapSerializer() as SerializationStrategy<T>
94+
StructureKind.LIST -> FirebaseListSerializer() as SerializationStrategy<T>
9795
else -> this
9896
}
9997

98+
override fun endStructure(descriptor: SerialDescriptor) {
99+
}
100+
100101
override fun <T : Any> encodeNullableSerializableElement(desc: SerialDescriptor, index: Int, serializer: SerializationStrategy<T>, value: T?) =
101102
set(desc, index, value?.let { FirebaseEncoder(positiveInfinity).apply { encode(serializer.toFirebase(), value) }.value })
102103

0 commit comments

Comments
 (0)