decodeProps function

Map<String, dynamic> decodeProps(
  1. String encoded
)

Decodes a base64-encoded JSON string back to a Map.

Returns an empty Map if the input is empty or invalid.

Example

final props = decodeProps(prop('data'));
final name = props['name'] as String?;

Implementation

Map<String, dynamic> decodeProps(String encoded) {
  if (encoded.isEmpty) return {};

  try {
    final json = utf8.decode(base64Decode(encoded));
    final decoded = jsonDecode(json);
    if (decoded is Map<String, dynamic>) {
      return decoded;
    }
    return {};
  } catch (e) {
    // Invalid base64 or JSON
    return {};
  }
}