decodeProps function
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 {};
}
}