@@ -11,10 +11,18 @@ class ParsingException implements Exception {
11
11
class XmlParser extends Parser {
12
12
final XmlElement element;
13
13
14
- XmlParser (this .element);
15
-
16
- factory XmlParser .fromString (String string) =>
17
- XmlParser (XmlDocument .parse (string).rootElement);
14
+ XmlParser (this .element, {super .tsxProviders, super .templateProviders});
15
+
16
+ factory XmlParser .fromString (
17
+ String string, {
18
+ List <ParserProvider >? tsxProviders,
19
+ List <ParserProvider >? templateProviders,
20
+ }) =>
21
+ XmlParser (
22
+ XmlDocument .parse (string).rootElement,
23
+ tsxProviders: tsxProviders,
24
+ templateProviders: templateProviders,
25
+ );
18
26
19
27
@override
20
28
String ? getInnerTextOrNull () =>
@@ -30,15 +38,23 @@ class XmlParser extends Parser {
30
38
return element.children
31
39
.whereType <XmlElement >()
32
40
.where ((e) => e.name.local == name)
33
- .map (XmlParser .new )
41
+ .map ((e) => XmlParser (
42
+ e,
43
+ templateProviders: templateProviders,
44
+ tsxProviders: tsxProviders,
45
+ ))
34
46
.toList ();
35
47
}
36
48
37
49
List <Parser > getChildrenWithNames (Set <String > names) {
38
50
return element.children
39
51
.whereType <XmlElement >()
40
52
.where ((e) => names.contains (e.name.local))
41
- .map (XmlParser .new )
53
+ .map ((e) => XmlParser (
54
+ e,
55
+ tsxProviders: tsxProviders,
56
+ templateProviders: templateProviders,
57
+ ))
42
58
.toList ();
43
59
}
44
60
@@ -54,8 +70,18 @@ class XmlParser extends Parser {
54
70
class JsonParser extends Parser {
55
71
final Map <String , dynamic > json;
56
72
57
- JsonParser (this .json);
58
- factory JsonParser .fromString (String string) => JsonParser (jsonDecode (string) as Map <String , dynamic >);
73
+ JsonParser (this .json, {super .tsxProviders, super .templateProviders});
74
+
75
+ factory JsonParser .fromString (
76
+ String string, {
77
+ List <ParserProvider >? tsxProviders,
78
+ List <ParserProvider >? templateProviders,
79
+ }) =>
80
+ JsonParser (
81
+ jsonDecode (string) as Map <String , dynamic >,
82
+ tsxProviders: tsxProviders,
83
+ templateProviders: templateProviders,
84
+ );
59
85
60
86
@override
61
87
String ? getInnerTextOrNull () => null ;
@@ -71,7 +97,11 @@ class JsonParser extends Parser {
71
97
return [];
72
98
}
73
99
return (json[name] as List <dynamic >)
74
- .map ((dynamic e) => JsonParser (e as Map <String , dynamic >))
100
+ .map ((dynamic e) => JsonParser (
101
+ e as Map <String , dynamic >,
102
+ templateProviders: templateProviders,
103
+ tsxProviders: tsxProviders,
104
+ ))
75
105
.toList ();
76
106
}
77
107
@@ -89,6 +119,11 @@ class JsonParser extends Parser {
89
119
}
90
120
91
121
abstract class Parser {
122
+ final List <ParserProvider >? templateProviders;
123
+ final List <ParserProvider >? tsxProviders;
124
+
125
+ Parser ({this .tsxProviders, this .templateProviders});
126
+
92
127
String ? getInnerTextOrNull ();
93
128
94
129
String ? getStringOrNull (String name, {String ? defaults});
0 commit comments