deserializeValue method
Deserialize a database value to Dart type.
Implementation
dynamic deserializeValue(dynamic value, ColumnType type) {
if (value == null) return null;
switch (type) {
case ColumnType.dateTime:
if (value is String) {
return DateTime.parse(value);
}
return value;
case ColumnType.date:
if (value is String) {
return DateTime.parse(value);
}
return value;
case ColumnType.json:
// JSON values are returned as parsed objects by PostgreSQL but as
// strings by MySQL/SQLite. Try to parse strings as JSON.
if (value is String) {
try {
return jsonDecode(value);
} catch (_) {
return value;
}
}
return value;
case ColumnType.boolean:
if (value is int) {
return value != 0;
}
return value;
default:
return value;
}
}