Skip to content

Commit edb997a

Browse files
committed
fixes js decoders
1 parent 2811137 commit edb997a

File tree

1 file changed

+7
-2
lines changed
  • firebase-common/src/jsMain/kotlin/dev/gitlive/firebase

1 file changed

+7
-2
lines changed

firebase-common/src/jsMain/kotlin/dev/gitlive/firebase/_decoders.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,13 @@ import kotlin.js.Json
1313
@Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE")
1414
actual fun FirebaseDecoder.structureDecoder(descriptor: SerialDescriptor): CompositeDecoder = when(descriptor.kind) {
1515
StructureKind.CLASS, StructureKind.OBJECT, PolymorphicKind.SEALED -> (value as Json).let { json ->
16-
FirebaseClassDecoder(js("Object").keys(value).length as Int, { json[it] != undefined }) {
17-
desc, index -> json[desc.getElementName(index)]
16+
FirebaseClassDecoder(js("Object").keys(value).length as Int, { json[it] != undefined }) { desc, index ->
17+
val elementName = desc.getElementName(index)
18+
if (desc.kind is PolymorphicKind && elementName == "value") {
19+
json
20+
} else {
21+
json[desc.getElementName(index)]
22+
}
1823
}
1924
}
2025
StructureKind.LIST -> (value as Array<*>).let {

0 commit comments

Comments
 (0)