feat: typedef Map<String, Object> to Attributes

This commit is contained in:
Lucas.Xu 2022-07-11 21:05:43 +08:00
parent 59d92a8ced
commit d2e62f882b
3 changed files with 10 additions and 9 deletions

View File

@ -40,7 +40,6 @@
"attributes": {
"url": "x.mp4"
}
}
]
}

View File

@ -1,11 +1,13 @@
import 'dart:collection';
import 'package:flowy_editor/document/path.dart';
typedef Attributes = Map<String, Object>;
class Node extends LinkedListEntry<Node> {
Node? parent;
final String type;
final LinkedList<Node> children;
final Map<String, Object> attributes;
final Attributes attributes;
Node({
required this.type,
@ -20,15 +22,15 @@ class Node extends LinkedListEntry<Node> {
final jType = json['type'] as String;
final jChildren = json['children'] as List?;
final jAttributes = json['attributes'] != null
? Map<String, Object>.from(json['attributes'] as Map)
: <String, Object>{};
? Attributes.from(json['attributes'] as Map)
: Attributes.from({});
final LinkedList<Node> children = LinkedList();
if (jChildren != null) {
children.addAll(
jChildren.map(
(jnode) => Node.fromJson(
Map<String, Object>.from(jnode),
(jChild) => Node.fromJson(
Map<String, Object>.from(jChild),
),
),
);
@ -47,7 +49,7 @@ class Node extends LinkedListEntry<Node> {
return node;
}
void updateAttributes(Map<String, Object> attributes) {
void updateAttributes(Attributes attributes) {
for (final attribute in attributes.entries) {
this.attributes[attribute.key] = attribute.value;
}

View File

@ -6,7 +6,7 @@ class StateTree {
StateTree({required this.root});
factory StateTree.fromJson(Map<String, Object> json) {
factory StateTree.fromJson(Attributes json) {
assert(json['document'] is Map);
final document = Map<String, Object>.from(json['document'] as Map);
@ -41,7 +41,7 @@ class StateTree {
return deletedNode;
}
Map<String, Object>? update(Path path, Map<String, Object> attributes) {
Attributes? update(Path path, Attributes attributes) {
if (path.isEmpty) {
return null;
}