Files
FlClash/lib/database/converter.dart
T
chen08209 bee8f24269 fix(backup,database): stage restores and enforce foreign keys
Changelog: Restores never apply halfway
2026-10-02 02:51:32 +08:00

58 lines
1.3 KiB
Dart

part of 'database.dart';
class StringMapConverter extends TypeConverter<Map<String, String>, String> {
const StringMapConverter();
@override
Map<String, String> fromSql(String fromDb) {
return Map<String, String>.from(json.decode(fromDb));
}
@override
String toSql(Map<String, String> value) {
return json.encode(value);
}
}
class StringListConverter extends TypeConverter<List<String>, String> {
const StringListConverter();
@override
List<String> fromSql(String fromDb) {
return List<String>.from(json.decode(fromDb));
}
@override
String toSql(List<String> value) {
return json.encode(value.toList());
}
}
class StringSetConverter extends TypeConverter<Set<String>, String> {
const StringSetConverter();
@override
Set<String> fromSql(String fromDb) {
return Set<String>.from(json.decode(fromDb));
}
@override
String toSql(Set<String> value) {
return json.encode(value.toList());
}
}
class JsonMapConverter extends TypeConverter<Map<String, dynamic>, String> {
const JsonMapConverter();
@override
Map<String, dynamic> fromSql(String fromDb) {
return Map<String, dynamic>.from(json.decode(fromDb));
}
@override
String toSql(Map<String, dynamic> value) {
return json.encode(value);
}
}