deserializeAndSave method
Implementation
Future<DeserializedData<T>> deserializeAndSave(Object? data,
{String? key, bool notify = true, bool ignoreReturn = false}) async {
final record = await runInIsolate<
(
List<DataModelMixin>,
List<DataModelMixin>,
List<String>
)>((adapter) async {
final emptyDm = <DataModelMixin>[];
final r = adapter._deserialize(adapter, data, key: key);
final models = [...r.$1, ...r.$2];
if (models.isEmpty) return (emptyDm, emptyDm, <String>[]);
final savedKeys = await adapter.saveManyLocal(models, async: false);
return ignoreReturn
? (emptyDm, emptyDm, savedKeys!)
: (r.$1, r.$2, savedKeys!);
});
final (models, included, savedKeys) = record;
if (notify && savedKeys.isNotEmpty) {
core._notify(savedKeys, type: DataGraphEventType.updateNode);
}
return DeserializedData<T>(models.cast<T>(), included: included);
}