package com.checkoutreactnativecomponents.utils import com.facebook.react.bridge.* public object ReadableMapUtils { public fun readableMapToHashMap(readableMap: ReadableMap?): HashMap { val result = HashMap() if (readableMap == null) { return result } val iterator = readableMap.keySetIterator() while (iterator.hasNextKey()) { val key = iterator.nextKey() when (val type = readableMap.getType(key)) { ReadableType.Null -> { /* Skip null values since HashMap doesn't support nulls */ } ReadableType.Boolean -> result[key] = readableMap.getBoolean(key) ReadableType.Number -> result[key] = readableMap.getDouble(key) ReadableType.String -> result[key] = readableMap.getString(key) ?: "" ReadableType.Map -> readableMap.getMap(key)?.let { result[key] = readableMapToHashMap(it) } ReadableType.Array -> readableMap.getArray(key)?.let { result[key] = readableArrayToList(it) } } } return result } public fun readableArrayToList(readableArray: ReadableArray): List { val result = mutableListOf() for (i in 0 until readableArray.size()) { when (val type = readableArray.getType(i)) { ReadableType.Null -> result.add(null) ReadableType.Boolean -> result.add(readableArray.getBoolean(i)) ReadableType.Number -> result.add(readableArray.getDouble(i)) ReadableType.String -> result.add(readableArray.getString(i)) ReadableType.Map -> { readableArray.getMap(i)?.let { result.add(readableMapToHashMap(it)) } } ReadableType.Array -> { readableArray.getArray(i)?.let { result.add(readableArrayToList(it)) } } } } return result } }