Files
stream-chat-flutter/packages/stream_chat_persistence/lib/src/converter/map_converter.dart
T
2021-04-20 14:56:56 +05:30

24 lines
535 B
Dart

import 'dart:convert';
import 'package:moor/moor.dart';
/// Maps a [Map] of type [String], [T] into a [String] understood
/// by the sqlite backend.
class MapConverter<T> extends TypeConverter<Map<String, T>, String> {
@override
Map<String, T>? mapToDart(String? fromDb) {
if (fromDb == null) {
return null;
}
return Map<String, T>.from(jsonDecode(fromDb) ?? {});
}
@override
String? mapToSql(Map<String, T>? value) {
if (value == null) {
return null;
}
return jsonEncode(value);
}
}