Soren Valle
08/01/2019, 9:43 PMpackage index.store.state
import index.model.User
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonConfiguration
@Serializable
data class State(val users: Array<User> = emptyArray())
fun state(): State {
val json = Json(JsonConfiguration.Stable)
return JSON.parse(
json.stringify(
State.serializer(),
State()
)
)
}
It feels cleanish, but it seems like there might/should(?) be a native function I can't find that converts a data class to a kotlin.js.Json object.turansky
08/01/2019, 10:36 PMDynamicObjectParser
if you need plain JS objectSoren Valle
08/01/2019, 10:50 PMimport kotlin.js.json
fun state(): State {
return json("users" to emptyArray<User>()).unsafeCast<State>()
}
interface State {
val users: Array<User>
}
Which is probably the better option in some ways, but I don't like that typing between the State and its Interface is something I have to maintain.turansky
08/01/2019, 11:42 PMturansky
08/01/2019, 11:43 PM@Experimental
annotation foundSoren Valle
08/01/2019, 11:44 PMSoren Valle
08/01/2019, 11:44 PMSoren Valle
08/01/2019, 11:47 PMturansky
08/01/2019, 11:48 PMserializer
(second parameter) to avoid this errorSoren Valle
08/01/2019, 11:48 PMturansky
08/01/2019, 11:51 PMparse
realization
fun <T> parse(obj: dynamic, deserializer: DeserializationStrategy<T>): T
Soren Valle
08/01/2019, 11:53 PMturansky
08/02/2019, 12:16 AMDynamicObjectParser
can only read JS object 😞Soren Valle
08/02/2019, 12:17 AMSoren Valle
08/02/2019, 12:17 AM