@@ -49,6 +49,37 @@ class NullableDateTimeConverter extends JsonConverter<DateTime?, int?> {
4949 }
5050}
5151
52+ /// Top level converter for serializing Nodes map to and from JSON.
53+ class CanvasesMapConverter extends JsonConverter <
54+ Map <String , Map <String , BaseNode >>, Map <String , dynamic >> {
55+ /// Creates a new instance of [CanvasesMapConverter] .
56+ const CanvasesMapConverter ();
57+
58+ @override
59+ Map <String , Map <String , BaseNode >> fromJson (Map <String , dynamic > json) =>
60+ deserialize (json);
61+
62+ @override
63+ Map <String , dynamic > toJson (Map <String , Map <String , BaseNode >> object) =>
64+ serialize (object);
65+
66+ /// Top level function to deserialize a JSON Map into a map of node ID to node.
67+ static Map <String , Map <String , BaseNode >> deserialize (
68+ Map <String , dynamic > value) =>
69+ {
70+ for (final MapEntry (key: key, value: value) in value.entries)
71+ key: NodesMapConverter .deserialize (value),
72+ };
73+
74+ /// Top level function to serialize a map of node ID to node into a JSON map.
75+ static Map <String , dynamic > serialize (
76+ Map <String , Map <String , BaseNode >> canvases) =>
77+ {
78+ for (final MapEntry (key: key, value: value) in canvases.entries)
79+ key: NodesMapConverter .serialize (value),
80+ };
81+ }
82+
5283/// Top level converter for serializing Nodes map to and from JSON.
5384class NodesMapConverter
5485 extends JsonConverter <Map <String , BaseNode >, Map <String , dynamic >> {
0 commit comments