encodeKeyValuePair function

void encodeKeyValuePair(
  1. String key,
  2. Object? value,
  3. LineWriter writer,
  4. int depth,
  5. ResolvedEncodeOptions options,
)

Encodes a key-value pair

Implementation

void encodeKeyValuePair(String key, Object? value, LineWriter writer, int depth,
    ResolvedEncodeOptions options) {
  final encodedKey = encodeKey(key);

  if (isJsonPrimitive(value)) {
    writer.push(
        depth, '$encodedKey: ${encodePrimitive(value, options.delimiter)}');
  } else if (isJsonArray(value)) {
    encodeArray(key, value as List<Object?>, writer, depth, options);
  } else if (isJsonObject(value)) {
    final nestedKeys = (value as Map<String, Object?>).keys;
    if (nestedKeys.isEmpty) {
      // Empty object
      writer.push(depth, '$encodedKey:');
    } else {
      writer.push(depth, '$encodedKey:');
      encodeObject(value, writer, depth + 1, options);
    }
  }
}