serialize static method
Serializes data to a JSON-compatible format.
Implementation
static dynamic serialize(dynamic data, String type) {
if (data == null) {
return null;
}
if (_primitives.contains(type.toLowerCase())) {
return data;
}
if (type.startsWith('Array<')) {
final subType = type.substring(6, type.length - 1);
return (data as List<dynamic>)
.map((value) => serialize(value, subType))
.toList();
}
if (type == 'Date') {
if (data is DateTime) {
return data.toUtc().toIso8601String();
}
return data;
}
if (type == 'SaleToAcquirerData') {
if (data is String) {
return data;
}
final dataString = jsonEncode(
data is Serializable ? data.toSerializable() : data,
);
return base64Encode(utf8.encode(dataString));
}
if (data is Serializable) {
return data.toSerializable();
}
return data;
}