WIP fix dynamic meta
This commit is contained in:
parent
c8bd3390cb
commit
b387b21554
@ -53,13 +53,23 @@ public class DynamicMeta(internal val obj: dynamic) : Meta {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override val items: Map<NameToken, Meta>
|
override val items: Map<NameToken, Meta>
|
||||||
get() = keys().flatMap<String, Pair<NameToken, Meta>> { key ->
|
get() = if (isPrimitive(obj)) {
|
||||||
|
emptyMap()
|
||||||
|
} else if (isArray(obj)) {
|
||||||
|
if((obj as Array<Any?>).all { isPrimitive(it) }){
|
||||||
|
emptyMap()
|
||||||
|
} else{
|
||||||
|
TODO()
|
||||||
|
}
|
||||||
|
} else keys().flatMap<String, Pair<NameToken, Meta>> { key ->
|
||||||
val value = obj[key] ?: return@flatMap emptyList()
|
val value = obj[key] ?: return@flatMap emptyList()
|
||||||
when {
|
when {
|
||||||
isArray(value) -> {
|
isArray(value) -> {
|
||||||
val array = value as Array<Any?>
|
val array = value as Array<Any?>
|
||||||
if (array.all { isPrimitive(it) }) {
|
if (array.all { isPrimitive(it) }) {
|
||||||
emptyList()
|
//primitive value
|
||||||
|
//emptyList()
|
||||||
|
listOf(NameToken(key) to DynamicMeta(value))
|
||||||
} else {
|
} else {
|
||||||
array.mapIndexedNotNull { index, it ->
|
array.mapIndexedNotNull { index, it ->
|
||||||
val item = DynamicMeta(it)
|
val item = DynamicMeta(it)
|
||||||
@ -67,9 +77,6 @@ public class DynamicMeta(internal val obj: dynamic) : Meta {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
isPrimitive(obj) -> {
|
|
||||||
emptyList()
|
|
||||||
}
|
|
||||||
else -> {
|
else -> {
|
||||||
val item = DynamicMeta(value)
|
val item = DynamicMeta(value)
|
||||||
listOf(NameToken(key) to item)
|
listOf(NameToken(key) to item)
|
||||||
|
Loading…
Reference in New Issue
Block a user