aboutsummaryrefslogtreecommitdiff
path: root/dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/internal/kotlinxSerializationUtils.kt
blob: d4f9800403ce00d4c27e9864e86560fa34101b1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package org.jetbrains.dokka.dokkatoo.internal

import java.io.File
import kotlinx.serialization.json.JsonArrayBuilder
import kotlinx.serialization.json.JsonObjectBuilder
import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.add


@JvmName("addAllFiles")
internal fun JsonArrayBuilder.addAll(files: Iterable<File>) {
  files
    .map { it.canonicalFile.invariantSeparatorsPath }
    .forEach { path -> add(path) }
}

@JvmName("addAllStrings")
internal fun JsonArrayBuilder.addAll(values: Iterable<String>) {
  values.forEach { add(it) }
}

internal fun JsonArrayBuilder.addAllIfNotNull(values: Iterable<String>?) {
  if (values != null) addAll(values)
}

internal fun JsonObjectBuilder.putIfNotNull(key: String, value: Boolean?) {
  if (value != null) put(key, JsonPrimitive(value))
}

internal fun JsonObjectBuilder.putIfNotNull(key: String, value: String?) {
  if (value != null) put(key, JsonPrimitive(value))
}

internal fun JsonObjectBuilder.putIfNotNull(key: String, value: File?) {
  if (value != null) put(key, JsonPrimitive(value.canonicalFile.invariantSeparatorsPath))
}