Fix indexed meta to json transformation
This commit is contained in:
parent
bc9cd3b5a8
commit
9d3c7149b7
@ -5,14 +5,16 @@
|
|||||||
- Experimental `listOfSpec` delegate.
|
- Experimental `listOfSpec` delegate.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- **API breaking** Descriptor no has a member property `defaultValue` instead of `defaultItem()` extension. It cahces default value state on the first call. It is done because computing default on each call is too expensive.
|
- **API breaking** Descriptor no has a member property `defaultValue` instead of `defaultItem()` extension. It caches default value state on the first call. It is done because computing default on each call is too expensive.
|
||||||
- Kotlin 1.5.10
|
- Kotlin 1.5.10
|
||||||
|
- Build tools 0.10.0
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
- Proper json array index treatment
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
## [0.4.0]
|
## [0.4.0]
|
||||||
|
@ -4,7 +4,7 @@ plugins {
|
|||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
group = "space.kscience"
|
group = "space.kscience"
|
||||||
version = "0.4.2"
|
version = "0.4.3"
|
||||||
}
|
}
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
|
@ -55,7 +55,16 @@ private fun Meta.toJsonWithIndex(descriptor: NodeDescriptor?, indexValue: String
|
|||||||
//do nothing
|
//do nothing
|
||||||
}
|
}
|
||||||
1 -> {
|
1 -> {
|
||||||
elementMap[jsonKey] = items.values.first().toJsonElement(itemDescriptor, null)
|
val (index, item) = items.entries.first()
|
||||||
|
val element = item.toJsonElement(itemDescriptor, null)
|
||||||
|
if (index == null) {
|
||||||
|
elementMap[jsonKey] = element
|
||||||
|
} else {
|
||||||
|
//treat arrays with single element
|
||||||
|
elementMap[jsonKey] = buildJsonArray {
|
||||||
|
add(element)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
val array = buildJsonArray {
|
val array = buildJsonArray {
|
||||||
|
@ -53,7 +53,7 @@ public fun MutableItemProvider.setIndexedItems(
|
|||||||
val tokens = name.tokens.toMutableList()
|
val tokens = name.tokens.toMutableList()
|
||||||
val last = tokens.last()
|
val last = tokens.last()
|
||||||
items.forEachIndexed { index, meta ->
|
items.forEachIndexed { index, meta ->
|
||||||
val indexedToken = NameToken(last.body, last.index + indexFactory(meta, index))
|
val indexedToken = NameToken(last.body, (last.index ?: "") + indexFactory(meta, index))
|
||||||
tokens[tokens.lastIndex] = indexedToken
|
tokens[tokens.lastIndex] = indexedToken
|
||||||
set(Name(tokens), meta)
|
set(Name(tokens), meta)
|
||||||
}
|
}
|
||||||
@ -97,7 +97,6 @@ public fun MutableItemProvider.getChild(childName: Name): MutableItemProvider {
|
|||||||
public fun MutableItemProvider.getChild(childName: String): MutableItemProvider = getChild(childName.toName())
|
public fun MutableItemProvider.getChild(childName: String): MutableItemProvider = getChild(childName.toName())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update existing mutable node with another node. The rules are following:
|
* Update existing mutable node with another node. The rules are following:
|
||||||
* * value replaces anything
|
* * value replaces anything
|
||||||
|
@ -5,16 +5,13 @@ pluginManagement {
|
|||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
}
|
}
|
||||||
|
|
||||||
val toolsVersion = "0.9.10"
|
val toolsVersion = "0.10.0"
|
||||||
val kotlinVersion = "1.5.10"
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("ru.mipt.npm.gradle.project") version toolsVersion
|
id("ru.mipt.npm.gradle.project") version toolsVersion
|
||||||
id("ru.mipt.npm.gradle.mpp") version toolsVersion
|
id("ru.mipt.npm.gradle.mpp") version toolsVersion
|
||||||
id("ru.mipt.npm.gradle.jvm") version toolsVersion
|
id("ru.mipt.npm.gradle.jvm") version toolsVersion
|
||||||
id("ru.mipt.npm.gradle.js") version toolsVersion
|
id("ru.mipt.npm.gradle.js") version toolsVersion
|
||||||
kotlin("jvm") version kotlinVersion
|
|
||||||
kotlin("js") version kotlinVersion
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user