View test reports →

Coverage Summary for Class: JsonUtilKt (dev.skymansandy.wiretap.helper.util)

Class Class, % Method, % Branch, % Line, % Instruction, %
JsonUtilKt 100% (1/1) 100% (2/2) 90.9% (20/22) 81% (17/21) 87.8% (101/115)


 /*
  * Copyright (c) 2026 skymansandy. All rights reserved.
  */
 
 package dev.skymansandy.wiretap.helper.util
 
 internal fun looksLikeJson(text: String): Boolean {
     val t = text.trim()
     return (t.startsWith("{") && t.endsWith("}")) || (t.startsWith("[") && t.endsWith("]"))
 }
 
 /**
  * Strips structural whitespace from a JSON document, leaving string literals untouched.
  * Non-JSON text is returned unchanged so other payload types are never corrupted.
  */
 internal fun minifyJson(text: String): String {
     if (!looksLikeJson(text)) return text
     val out = StringBuilder(text.length)
     var inString = false
     var escaped = false
     for (ch in text) {
         when {
             escaped -> {
                 out.append(ch)
                 escaped = false
             }
             inString && ch == '\\' -> {
                 out.append(ch)
                 escaped = true
             }
             ch == '"' -> {
                 out.append(ch)
                 inString = !inString
             }
             inString -> out.append(ch)
             ch.isWhitespace() -> Unit
             else -> out.append(ch)
         }
     }
     return out.toString()
 }