@udt/parser-utils 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -15
- package/dist/extractProperties.d.ts +4 -4
- package/dist/extractProperties.js +3 -3
- package/dist/index.js +2 -0
- package/dist/parseData.d.ts +34 -23
- package/dist/parseData.js +39 -12
- package/package.json +14 -3
- package/CHANGELOG.md +0 -13
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/clover.xml +0 -123
- package/coverage/coverage-final.json +0 -5
- package/coverage/extractProperties.ts.html +0 -277
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -161
- package/coverage/index.ts.html +0 -94
- package/coverage/isJsonObject.ts.html +0 -142
- package/coverage/parseData.ts.html +0 -898
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -196
- package/src/extractProperties.test.ts +0 -33
- package/src/extractProperties.ts +0 -64
- package/src/index.ts +0 -3
- package/src/isJsonObject.test.ts +0 -32
- package/src/isJsonObject.ts +0 -19
- package/src/parseData.test.ts +0 -438
- package/src/parseData.ts +0 -271
- package/tsconfig.build.json +0 -11
- package/tsconfig.json +0 -6
|
@@ -1,898 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for parseData.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="index.html">All files</a> parseData.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">100% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>68/68</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">100% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>15/15</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">100% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>4/4</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">100% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>68/68</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line high'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
-
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
-
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
-
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
-
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
-
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
-
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
-
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
-
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
-
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
-
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
-
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
-
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
-
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
-
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
-
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
-
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
-
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
-
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
-
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
-
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
-
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
-
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
-
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
-
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
-
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
-
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
-
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
-
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
-
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
-
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
-
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
-
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
-
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
-
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
-
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
-
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
-
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
-
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
-
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
-
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
-
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
-
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
-
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
-
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
-
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
-
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
-
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
-
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
-
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
-
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
-
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
-
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
-
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
-
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
-
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
-
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
-
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
-
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
-
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
-
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
-
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
-
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
-
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
-
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
-
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
-
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
-
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
-
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
-
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
-
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
-
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
-
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
-
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
-
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
-
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
-
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
-
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
-
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
-
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
-
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
-
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
-
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
-
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
-
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
-
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
-
<a name='L272'></a><a href='#L272'>272</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
338
|
-
<span class="cline-any cline-neutral"> </span>
|
|
339
|
-
<span class="cline-any cline-neutral"> </span>
|
|
340
|
-
<span class="cline-any cline-neutral"> </span>
|
|
341
|
-
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-neutral"> </span>
|
|
343
|
-
<span class="cline-any cline-neutral"> </span>
|
|
344
|
-
<span class="cline-any cline-neutral"> </span>
|
|
345
|
-
<span class="cline-any cline-neutral"> </span>
|
|
346
|
-
<span class="cline-any cline-neutral"> </span>
|
|
347
|
-
<span class="cline-any cline-neutral"> </span>
|
|
348
|
-
<span class="cline-any cline-neutral"> </span>
|
|
349
|
-
<span class="cline-any cline-neutral"> </span>
|
|
350
|
-
<span class="cline-any cline-neutral"> </span>
|
|
351
|
-
<span class="cline-any cline-neutral"> </span>
|
|
352
|
-
<span class="cline-any cline-neutral"> </span>
|
|
353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
354
|
-
<span class="cline-any cline-neutral"> </span>
|
|
355
|
-
<span class="cline-any cline-neutral"> </span>
|
|
356
|
-
<span class="cline-any cline-neutral"> </span>
|
|
357
|
-
<span class="cline-any cline-neutral"> </span>
|
|
358
|
-
<span class="cline-any cline-neutral"> </span>
|
|
359
|
-
<span class="cline-any cline-neutral"> </span>
|
|
360
|
-
<span class="cline-any cline-neutral"> </span>
|
|
361
|
-
<span class="cline-any cline-neutral"> </span>
|
|
362
|
-
<span class="cline-any cline-neutral"> </span>
|
|
363
|
-
<span class="cline-any cline-neutral"> </span>
|
|
364
|
-
<span class="cline-any cline-neutral"> </span>
|
|
365
|
-
<span class="cline-any cline-neutral"> </span>
|
|
366
|
-
<span class="cline-any cline-neutral"> </span>
|
|
367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
368
|
-
<span class="cline-any cline-neutral"> </span>
|
|
369
|
-
<span class="cline-any cline-neutral"> </span>
|
|
370
|
-
<span class="cline-any cline-neutral"> </span>
|
|
371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-neutral"> </span>
|
|
375
|
-
<span class="cline-any cline-neutral"> </span>
|
|
376
|
-
<span class="cline-any cline-neutral"> </span>
|
|
377
|
-
<span class="cline-any cline-neutral"> </span>
|
|
378
|
-
<span class="cline-any cline-neutral"> </span>
|
|
379
|
-
<span class="cline-any cline-neutral"> </span>
|
|
380
|
-
<span class="cline-any cline-neutral"> </span>
|
|
381
|
-
<span class="cline-any cline-neutral"> </span>
|
|
382
|
-
<span class="cline-any cline-neutral"> </span>
|
|
383
|
-
<span class="cline-any cline-neutral"> </span>
|
|
384
|
-
<span class="cline-any cline-neutral"> </span>
|
|
385
|
-
<span class="cline-any cline-neutral"> </span>
|
|
386
|
-
<span class="cline-any cline-neutral"> </span>
|
|
387
|
-
<span class="cline-any cline-neutral"> </span>
|
|
388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
390
|
-
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-neutral"> </span>
|
|
392
|
-
<span class="cline-any cline-neutral"> </span>
|
|
393
|
-
<span class="cline-any cline-neutral"> </span>
|
|
394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
395
|
-
<span class="cline-any cline-neutral"> </span>
|
|
396
|
-
<span class="cline-any cline-neutral"> </span>
|
|
397
|
-
<span class="cline-any cline-neutral"> </span>
|
|
398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
399
|
-
<span class="cline-any cline-neutral"> </span>
|
|
400
|
-
<span class="cline-any cline-neutral"> </span>
|
|
401
|
-
<span class="cline-any cline-neutral"> </span>
|
|
402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
404
|
-
<span class="cline-any cline-neutral"> </span>
|
|
405
|
-
<span class="cline-any cline-neutral"> </span>
|
|
406
|
-
<span class="cline-any cline-neutral"> </span>
|
|
407
|
-
<span class="cline-any cline-neutral"> </span>
|
|
408
|
-
<span class="cline-any cline-neutral"> </span>
|
|
409
|
-
<span class="cline-any cline-neutral"> </span>
|
|
410
|
-
<span class="cline-any cline-neutral"> </span>
|
|
411
|
-
<span class="cline-any cline-neutral"> </span>
|
|
412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
413
|
-
<span class="cline-any cline-neutral"> </span>
|
|
414
|
-
<span class="cline-any cline-neutral"> </span>
|
|
415
|
-
<span class="cline-any cline-neutral"> </span>
|
|
416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-neutral"> </span>
|
|
421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
423
|
-
<span class="cline-any cline-neutral"> </span>
|
|
424
|
-
<span class="cline-any cline-neutral"> </span>
|
|
425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
426
|
-
<span class="cline-any cline-neutral"> </span>
|
|
427
|
-
<span class="cline-any cline-neutral"> </span>
|
|
428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
431
|
-
<span class="cline-any cline-neutral"> </span>
|
|
432
|
-
<span class="cline-any cline-neutral"> </span>
|
|
433
|
-
<span class="cline-any cline-neutral"> </span>
|
|
434
|
-
<span class="cline-any cline-neutral"> </span>
|
|
435
|
-
<span class="cline-any cline-neutral"> </span>
|
|
436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
438
|
-
<span class="cline-any cline-neutral"> </span>
|
|
439
|
-
<span class="cline-any cline-neutral"> </span>
|
|
440
|
-
<span class="cline-any cline-neutral"> </span>
|
|
441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-neutral"> </span>
|
|
443
|
-
<span class="cline-any cline-neutral"> </span>
|
|
444
|
-
<span class="cline-any cline-neutral"> </span>
|
|
445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
447
|
-
<span class="cline-any cline-neutral"> </span>
|
|
448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
449
|
-
<span class="cline-any cline-neutral"> </span>
|
|
450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
451
|
-
<span class="cline-any cline-neutral"> </span>
|
|
452
|
-
<span class="cline-any cline-neutral"> </span>
|
|
453
|
-
<span class="cline-any cline-neutral"> </span>
|
|
454
|
-
<span class="cline-any cline-neutral"> </span>
|
|
455
|
-
<span class="cline-any cline-neutral"> </span>
|
|
456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
458
|
-
<span class="cline-any cline-neutral"> </span>
|
|
459
|
-
<span class="cline-any cline-neutral"> </span>
|
|
460
|
-
<span class="cline-any cline-neutral"> </span>
|
|
461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
465
|
-
<span class="cline-any cline-neutral"> </span>
|
|
466
|
-
<span class="cline-any cline-neutral"> </span>
|
|
467
|
-
<span class="cline-any cline-neutral"> </span>
|
|
468
|
-
<span class="cline-any cline-neutral"> </span>
|
|
469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
470
|
-
<span class="cline-any cline-neutral"> </span>
|
|
471
|
-
<span class="cline-any cline-neutral"> </span>
|
|
472
|
-
<span class="cline-any cline-neutral"> </span>
|
|
473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
475
|
-
<span class="cline-any cline-neutral"> </span>
|
|
476
|
-
<span class="cline-any cline-neutral"> </span>
|
|
477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-neutral"> </span>
|
|
479
|
-
<span class="cline-any cline-neutral"> </span>
|
|
480
|
-
<span class="cline-any cline-neutral"> </span>
|
|
481
|
-
<span class="cline-any cline-neutral"> </span>
|
|
482
|
-
<span class="cline-any cline-neutral"> </span>
|
|
483
|
-
<span class="cline-any cline-neutral"> </span>
|
|
484
|
-
<span class="cline-any cline-neutral"> </span>
|
|
485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
486
|
-
<span class="cline-any cline-neutral"> </span>
|
|
487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
488
|
-
<span class="cline-any cline-yes">1x</span>
|
|
489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
490
|
-
<span class="cline-any cline-neutral"> </span>
|
|
491
|
-
<span class="cline-any cline-neutral"> </span>
|
|
492
|
-
<span class="cline-any cline-yes">3x</span>
|
|
493
|
-
<span class="cline-any cline-neutral"> </span>
|
|
494
|
-
<span class="cline-any cline-neutral"> </span>
|
|
495
|
-
<span class="cline-any cline-neutral"> </span>
|
|
496
|
-
<span class="cline-any cline-neutral"> </span>
|
|
497
|
-
<span class="cline-any cline-yes">3x</span>
|
|
498
|
-
<span class="cline-any cline-neutral"> </span>
|
|
499
|
-
<span class="cline-any cline-yes">3x</span>
|
|
500
|
-
<span class="cline-any cline-yes">3x</span>
|
|
501
|
-
<span class="cline-any cline-yes">3x</span>
|
|
502
|
-
<span class="cline-any cline-yes">3x</span>
|
|
503
|
-
<span class="cline-any cline-yes">3x</span>
|
|
504
|
-
<span class="cline-any cline-yes">3x</span>
|
|
505
|
-
<span class="cline-any cline-yes">3x</span>
|
|
506
|
-
<span class="cline-any cline-yes">3x</span>
|
|
507
|
-
<span class="cline-any cline-yes">3x</span>
|
|
508
|
-
<span class="cline-any cline-yes">3x</span>
|
|
509
|
-
<span class="cline-any cline-yes">3x</span>
|
|
510
|
-
<span class="cline-any cline-neutral"> </span>
|
|
511
|
-
<span class="cline-any cline-neutral"> </span>
|
|
512
|
-
<span class="cline-any cline-neutral"> </span>
|
|
513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
514
|
-
<span class="cline-any cline-neutral"> </span>
|
|
515
|
-
<span class="cline-any cline-neutral"> </span>
|
|
516
|
-
<span class="cline-any cline-neutral"> </span>
|
|
517
|
-
<span class="cline-any cline-neutral"> </span>
|
|
518
|
-
<span class="cline-any cline-neutral"> </span>
|
|
519
|
-
<span class="cline-any cline-neutral"> </span>
|
|
520
|
-
<span class="cline-any cline-neutral"> </span>
|
|
521
|
-
<span class="cline-any cline-neutral"> </span>
|
|
522
|
-
<span class="cline-any cline-neutral"> </span>
|
|
523
|
-
<span class="cline-any cline-neutral"> </span>
|
|
524
|
-
<span class="cline-any cline-neutral"> </span>
|
|
525
|
-
<span class="cline-any cline-neutral"> </span>
|
|
526
|
-
<span class="cline-any cline-yes">72x</span>
|
|
527
|
-
<span class="cline-any cline-yes">72x</span>
|
|
528
|
-
<span class="cline-any cline-yes">72x</span>
|
|
529
|
-
<span class="cline-any cline-yes">72x</span>
|
|
530
|
-
<span class="cline-any cline-yes">72x</span>
|
|
531
|
-
<span class="cline-any cline-yes">72x</span>
|
|
532
|
-
<span class="cline-any cline-yes">72x</span>
|
|
533
|
-
<span class="cline-any cline-yes">72x</span>
|
|
534
|
-
<span class="cline-any cline-yes">3x</span>
|
|
535
|
-
<span class="cline-any cline-yes">3x</span>
|
|
536
|
-
<span class="cline-any cline-neutral"> </span>
|
|
537
|
-
<span class="cline-any cline-yes">69x</span>
|
|
538
|
-
<span class="cline-any cline-yes">69x</span>
|
|
539
|
-
<span class="cline-any cline-yes">69x</span>
|
|
540
|
-
<span class="cline-any cline-yes">69x</span>
|
|
541
|
-
<span class="cline-any cline-yes">69x</span>
|
|
542
|
-
<span class="cline-any cline-yes">69x</span>
|
|
543
|
-
<span class="cline-any cline-neutral"> </span>
|
|
544
|
-
<span class="cline-any cline-yes">69x</span>
|
|
545
|
-
<span class="cline-any cline-yes">72x</span>
|
|
546
|
-
<span class="cline-any cline-neutral"> </span>
|
|
547
|
-
<span class="cline-any cline-yes">35x</span>
|
|
548
|
-
<span class="cline-any cline-yes">35x</span>
|
|
549
|
-
<span class="cline-any cline-yes">8x</span>
|
|
550
|
-
<span class="cline-any cline-yes">8x</span>
|
|
551
|
-
<span class="cline-any cline-yes">72x</span>
|
|
552
|
-
<span class="cline-any cline-neutral"> </span>
|
|
553
|
-
<span class="cline-any cline-yes">34x</span>
|
|
554
|
-
<span class="cline-any cline-yes">34x</span>
|
|
555
|
-
<span class="cline-any cline-yes">34x</span>
|
|
556
|
-
<span class="cline-any cline-yes">34x</span>
|
|
557
|
-
<span class="cline-any cline-yes">34x</span>
|
|
558
|
-
<span class="cline-any cline-yes">34x</span>
|
|
559
|
-
<span class="cline-any cline-yes">34x</span>
|
|
560
|
-
<span class="cline-any cline-neutral"> </span>
|
|
561
|
-
<span class="cline-any cline-yes">34x</span>
|
|
562
|
-
<span class="cline-any cline-neutral"> </span>
|
|
563
|
-
<span class="cline-any cline-yes">34x</span>
|
|
564
|
-
<span class="cline-any cline-yes">2x</span>
|
|
565
|
-
<span class="cline-any cline-yes">2x</span>
|
|
566
|
-
<span class="cline-any cline-neutral"> </span>
|
|
567
|
-
<span class="cline-any cline-yes">34x</span>
|
|
568
|
-
<span class="cline-any cline-yes">50x</span>
|
|
569
|
-
<span class="cline-any cline-yes">50x</span>
|
|
570
|
-
<span class="cline-any cline-yes">50x</span>
|
|
571
|
-
<span class="cline-any cline-yes">50x</span>
|
|
572
|
-
<span class="cline-any cline-yes">50x</span>
|
|
573
|
-
<span class="cline-any cline-yes">50x</span>
|
|
574
|
-
<span class="cline-any cline-yes">50x</span>
|
|
575
|
-
<span class="cline-any cline-yes">50x</span>
|
|
576
|
-
<span class="cline-any cline-yes">32x</span>
|
|
577
|
-
<span class="cline-any cline-neutral"> </span>
|
|
578
|
-
<span class="cline-any cline-yes">67x</span>
|
|
579
|
-
<span class="cline-any cline-yes">67x</span>
|
|
580
|
-
<span class="cline-any cline-neutral"> </span>
|
|
581
|
-
<span class="cline-any cline-neutral"> </span>
|
|
582
|
-
<span class="cline-any cline-neutral"> </span>
|
|
583
|
-
<span class="cline-any cline-neutral"> </span>
|
|
584
|
-
<span class="cline-any cline-neutral"> </span>
|
|
585
|
-
<span class="cline-any cline-neutral"> </span>
|
|
586
|
-
<span class="cline-any cline-neutral"> </span>
|
|
587
|
-
<span class="cline-any cline-neutral"> </span>
|
|
588
|
-
<span class="cline-any cline-neutral"> </span>
|
|
589
|
-
<span class="cline-any cline-neutral"> </span>
|
|
590
|
-
<span class="cline-any cline-neutral"> </span>
|
|
591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
593
|
-
<span class="cline-any cline-neutral"> </span>
|
|
594
|
-
<span class="cline-any cline-neutral"> </span>
|
|
595
|
-
<span class="cline-any cline-neutral"> </span>
|
|
596
|
-
<span class="cline-any cline-neutral"> </span>
|
|
597
|
-
<span class="cline-any cline-neutral"> </span>
|
|
598
|
-
<span class="cline-any cline-neutral"> </span>
|
|
599
|
-
<span class="cline-any cline-neutral"> </span>
|
|
600
|
-
<span class="cline-any cline-neutral"> </span>
|
|
601
|
-
<span class="cline-any cline-yes">1x</span>
|
|
602
|
-
<span class="cline-any cline-yes">22x</span>
|
|
603
|
-
<span class="cline-any cline-yes">22x</span>
|
|
604
|
-
<span class="cline-any cline-yes">22x</span>
|
|
605
|
-
<span class="cline-any cline-yes">22x</span>
|
|
606
|
-
<span class="cline-any cline-yes">22x</span>
|
|
607
|
-
<span class="cline-any cline-yes">22x</span>
|
|
608
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { isPlainObject, type PlainObject } from "./isJsonObject.js";
|
|
609
|
-
import { extractProperties } from "./extractProperties.js";
|
|
610
|
-
|
|
611
|
-
/**
|
|
612
|
-
* A function that checks whether an object is a design token
|
|
613
|
-
* or not (if not, it is assumed to be a group).
|
|
614
|
-
*
|
|
615
|
-
* E.g. for DTCG data, this could check for the presence of a
|
|
616
|
-
* `$value` property.
|
|
617
|
-
*
|
|
618
|
-
* @param data A plain object (guaranteed not to `null` or an
|
|
619
|
-
* array)
|
|
620
|
-
*
|
|
621
|
-
* @returns `true` if `data` is design token data, `false` if
|
|
622
|
-
* it is group data.
|
|
623
|
-
*/
|
|
624
|
-
export type IsDesignTokenDataFn = (data: PlainObject) => boolean;
|
|
625
|
-
|
|
626
|
-
/**
|
|
627
|
-
* A function that parses design token data.
|
|
628
|
-
*
|
|
629
|
-
* @param data A plain object containing design token data
|
|
630
|
-
* (guaranteed not to be `null` or an array)
|
|
631
|
-
* @param path The path to the design token data.
|
|
632
|
-
* @param contextFromParent Context data (if any) that was
|
|
633
|
-
* returned by the `parseGroupData()` call that
|
|
634
|
-
* parsed the group containing this design token.
|
|
635
|
-
*
|
|
636
|
-
* @returns The parsed representation of the design token.
|
|
637
|
-
* May be `undefined` if there is no useful result
|
|
638
|
-
* to return from `parseData()` - e.g. if just
|
|
639
|
-
* logging design token info or something like that.
|
|
640
|
-
*/
|
|
641
|
-
export type ParseDesignTokenDataFn<ParsedDesignToken, T> = (
|
|
642
|
-
data: PlainObject,
|
|
643
|
-
path: string[],
|
|
644
|
-
contextFromParent?: T
|
|
645
|
-
) => ParsedDesignToken;
|
|
646
|
-
|
|
647
|
-
/**
|
|
648
|
-
* A function that adds a parsed group or design token
|
|
649
|
-
* as a child of a parsed group.
|
|
650
|
-
*
|
|
651
|
-
* @param name The name of the child group or design token
|
|
652
|
-
* @param child The group or desing token to add
|
|
653
|
-
*/
|
|
654
|
-
export type AddChildFn<ParsedGroup, ParsedDesignToken> = (
|
|
655
|
-
name: string,
|
|
656
|
-
child: ParsedGroup | ParsedDesignToken
|
|
657
|
-
) => void;
|
|
658
|
-
|
|
659
|
-
/**
|
|
660
|
-
* The return value of a `ParseGroupDataFn`.
|
|
661
|
-
*/
|
|
662
|
-
export interface ParseGroupResult<ParsedGroup, ParsedDesignToken, T> {
|
|
663
|
-
/**
|
|
664
|
-
* The parsed representation of the group.
|
|
665
|
-
*
|
|
666
|
-
* May be `undefined` if there is no useful result
|
|
667
|
-
* to return from `parseData()` - e.g. if just
|
|
668
|
-
* logging group info or something like that.
|
|
669
|
-
*/
|
|
670
|
-
group: ParsedGroup;
|
|
671
|
-
|
|
672
|
-
/**
|
|
673
|
-
* Optional function that will add other parsed groups
|
|
674
|
-
* or design tokens as children of this parsed group.
|
|
675
|
-
*
|
|
676
|
-
* Intended for cases where the parsed representation
|
|
677
|
-
* of a group needs to contain its children. If not
|
|
678
|
-
* needed, this property can be omitted.
|
|
679
|
-
*/
|
|
680
|
-
addChild?: AddChildFn<ParsedGroup, ParsedDesignToken>;
|
|
681
|
-
|
|
682
|
-
/**
|
|
683
|
-
* Optional context data to be passed into the
|
|
684
|
-
* `parseGroupData()` and `parseDesignTokenData()` calls
|
|
685
|
-
* for any nested group or design token data.
|
|
686
|
-
*
|
|
687
|
-
* Useful if those functions need access to some data from
|
|
688
|
-
* higher up in the original data structure. For example, if
|
|
689
|
-
* parsing DTCG data, this could be used to pass inherited
|
|
690
|
-
* properties like `$type` down.
|
|
691
|
-
*/
|
|
692
|
-
contextForChildren?: T;
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
/**
|
|
696
|
-
* A function that parses group data.
|
|
697
|
-
*
|
|
698
|
-
* @param data A plain object containing group data
|
|
699
|
-
* (guaranteed not to be `null` or an array)
|
|
700
|
-
* @param path The path to the group data.
|
|
701
|
-
* @param contextFromParent Context data (if any) that was
|
|
702
|
-
* returned by the `parseGroupData()` call that
|
|
703
|
-
* parsed the group containing this group.
|
|
704
|
-
*
|
|
705
|
-
* @returns The parsed representation of the group and,
|
|
706
|
-
* optionally, a function to add child groups or
|
|
707
|
-
* design tokens to it and some context data to
|
|
708
|
-
* pass down when child data is parsed.
|
|
709
|
-
*/
|
|
710
|
-
export type ParseGroupDataFn<ParsedGroup, ParsedDesignToken, T> = (
|
|
711
|
-
data: PlainObject,
|
|
712
|
-
path: string[],
|
|
713
|
-
contextFromParent?: T
|
|
714
|
-
) => ParseGroupResult<ParsedGroup, ParsedDesignToken, T>;
|
|
715
|
-
|
|
716
|
-
export interface ParserConfig<ParsedDesignToken, ParsedGroup, T> {
|
|
717
|
-
/**
|
|
718
|
-
* A function that determines whether an object in the input
|
|
719
|
-
* data is a design token or a group.
|
|
720
|
-
*/
|
|
721
|
-
isDesignTokenData: IsDesignTokenDataFn;
|
|
722
|
-
|
|
723
|
-
/**
|
|
724
|
-
* Array of strings and/or RegExp which match
|
|
725
|
-
* properties of group objects that are NOT
|
|
726
|
-
* names of child design tokens or groups.
|
|
727
|
-
*
|
|
728
|
-
* E.g. for DTCG data, this could be a RegEx
|
|
729
|
-
* like /^$/ which would match all $-prefixed
|
|
730
|
-
* format properties
|
|
731
|
-
*/
|
|
732
|
-
groupPropsToExtract: (string | RegExp)[];
|
|
733
|
-
|
|
734
|
-
/**
|
|
735
|
-
* Function which is called for each group data object
|
|
736
|
-
* that is encountered.
|
|
737
|
-
*
|
|
738
|
-
* Is given the extracted properties of that group and its
|
|
739
|
-
* path, and should parse that data into whatever structure
|
|
740
|
-
* is desired.
|
|
741
|
-
*/
|
|
742
|
-
parseGroupData: ParseGroupDataFn<ParsedGroup, ParsedDesignToken, T>;
|
|
743
|
-
|
|
744
|
-
/**
|
|
745
|
-
* Function which is called for each design token
|
|
746
|
-
*data object that is encountered.
|
|
747
|
-
*
|
|
748
|
-
* Is given the design token data and its path, and
|
|
749
|
-
* should parse that data into whatever structure is
|
|
750
|
-
* desired.
|
|
751
|
-
*/
|
|
752
|
-
parseDesignTokenData: ParseDesignTokenDataFn<ParsedDesignToken, T>;
|
|
753
|
-
}
|
|
754
|
-
|
|
755
|
-
/**
|
|
756
|
-
* Thrown when `parseData()` encounters group or design token
|
|
757
|
-
* data that is not a plain object.
|
|
758
|
-
*/
|
|
759
|
-
export class InvalidDataError extends Error {
|
|
760
|
-
/**
|
|
761
|
-
* Path to the value that is not a plain object
|
|
762
|
-
*/
|
|
763
|
-
public path: string[];
|
|
764
|
-
|
|
765
|
-
/**
|
|
766
|
-
* The offending value.
|
|
767
|
-
*/
|
|
768
|
-
public data: unknown;
|
|
769
|
-
|
|
770
|
-
constructor(path: string[], data: unknown) {
|
|
771
|
-
super(
|
|
772
|
-
`Expected object at path "${path.join(
|
|
773
|
-
"."
|
|
774
|
-
)}", but got ${typeof data} instead`
|
|
775
|
-
);
|
|
776
|
-
this.name = "InvalidDataError";
|
|
777
|
-
this.path = path;
|
|
778
|
-
this.data = data;
|
|
779
|
-
}
|
|
780
|
-
}
|
|
781
|
-
|
|
782
|
-
/**
|
|
783
|
-
* The internal data parsing implementation.
|
|
784
|
-
*
|
|
785
|
-
* Recursively calls itself for nested group and
|
|
786
|
-
* design token data.
|
|
787
|
-
*
|
|
788
|
-
* @param data The input data to traverse and parse
|
|
789
|
-
* @param config Parser config
|
|
790
|
-
* @param contextFromParent Context data passed in from
|
|
791
|
-
* parent calls to this function.
|
|
792
|
-
* @param path The path to the input data
|
|
793
|
-
* @param addToParent A function to add the parsed data
|
|
794
|
-
* to the parent group.
|
|
795
|
-
* @returns The parsed design token or group.
|
|
796
|
-
*/
|
|
797
|
-
function parseDataImpl<ParsedDesignToken, ParsedGroup, T>(
|
|
798
|
-
data: unknown,
|
|
799
|
-
config: ParserConfig<ParsedDesignToken, ParsedGroup, T>,
|
|
800
|
-
contextFromParent?: T,
|
|
801
|
-
path: string[] = [],
|
|
802
|
-
addToParent?: AddChildFn<ParsedGroup, ParsedDesignToken>
|
|
803
|
-
): ParsedDesignToken | ParsedGroup {
|
|
804
|
-
if (!isPlainObject(data)) {
|
|
805
|
-
throw new InvalidDataError(path, data);
|
|
806
|
-
}
|
|
807
|
-
|
|
808
|
-
const {
|
|
809
|
-
isDesignTokenData,
|
|
810
|
-
groupPropsToExtract,
|
|
811
|
-
parseGroupData,
|
|
812
|
-
parseDesignTokenData,
|
|
813
|
-
} = config;
|
|
814
|
-
|
|
815
|
-
let groupOrToken: ParsedGroup | ParsedDesignToken;
|
|
816
|
-
if (isDesignTokenData(data)) {
|
|
817
|
-
// looks like a token
|
|
818
|
-
groupOrToken = parseDesignTokenData(data, path, contextFromParent);
|
|
819
|
-
if (addToParent && path.length > 0) {
|
|
820
|
-
addToParent(path[path.length - 1], groupOrToken);
|
|
821
|
-
}
|
|
822
|
-
} else {
|
|
823
|
-
// must be a group
|
|
824
|
-
const { extracted: groupData, remainingProps: childNames } =
|
|
825
|
-
extractProperties(data, groupPropsToExtract);
|
|
826
|
-
const { group, addChild, contextForChildren } = parseGroupData(
|
|
827
|
-
groupData,
|
|
828
|
-
path,
|
|
829
|
-
contextFromParent
|
|
830
|
-
);
|
|
831
|
-
|
|
832
|
-
groupOrToken = group;
|
|
833
|
-
|
|
834
|
-
if (addToParent && path.length > 0) {
|
|
835
|
-
addToParent(path[path.length - 1], groupOrToken);
|
|
836
|
-
}
|
|
837
|
-
|
|
838
|
-
for (const childName of childNames) {
|
|
839
|
-
parseDataImpl(
|
|
840
|
-
data[childName],
|
|
841
|
-
config,
|
|
842
|
-
contextForChildren,
|
|
843
|
-
[...path, childName],
|
|
844
|
-
addChild
|
|
845
|
-
);
|
|
846
|
-
}
|
|
847
|
-
}
|
|
848
|
-
|
|
849
|
-
return groupOrToken;
|
|
850
|
-
}
|
|
851
|
-
|
|
852
|
-
/**
|
|
853
|
-
* Parses a nested object structure representing groups
|
|
854
|
-
* and design tokens, such as the data obtained by reading
|
|
855
|
-
* and JSON-parsing a DTCG file.
|
|
856
|
-
*
|
|
857
|
-
* It will recursively traverse the input data (depth first)
|
|
858
|
-
* and, using the functions provided in the config:
|
|
859
|
-
*
|
|
860
|
-
* 1. Check if the object is design token or group data
|
|
861
|
-
* 2. Pass that data to the parsed or processed by the
|
|
862
|
-
* relevant function
|
|
863
|
-
* 3. Return the outermost parsed group or design token
|
|
864
|
-
*
|
|
865
|
-
* @param data The input data to traverse and parse
|
|
866
|
-
* @param config Configuration for this parser
|
|
867
|
-
* @param contextFromParent Optional context data to
|
|
868
|
-
* pass into the top-most design token
|
|
869
|
-
* or group parser function call.
|
|
870
|
-
* @returns The outermost parsed group or design token
|
|
871
|
-
*/
|
|
872
|
-
export function parseData<ParsedDesignToken, ParsedGroup, T>(
|
|
873
|
-
data: unknown,
|
|
874
|
-
config: ParserConfig<ParsedDesignToken, ParsedGroup, T>,
|
|
875
|
-
contextFromParent?: T
|
|
876
|
-
): ParsedDesignToken | ParsedGroup {
|
|
877
|
-
return parseDataImpl(data, config, contextFromParent);
|
|
878
|
-
}
|
|
879
|
-
</pre></td></tr></table></pre>
|
|
880
|
-
|
|
881
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
882
|
-
</div><!-- /wrapper -->
|
|
883
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
884
|
-
Code coverage generated by
|
|
885
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
886
|
-
at 2024-11-22T01:43:01.579Z
|
|
887
|
-
</div>
|
|
888
|
-
<script src="prettify.js"></script>
|
|
889
|
-
<script>
|
|
890
|
-
window.onload = function () {
|
|
891
|
-
prettyPrint();
|
|
892
|
-
};
|
|
893
|
-
</script>
|
|
894
|
-
<script src="sorter.js"></script>
|
|
895
|
-
<script src="block-navigation.js"></script>
|
|
896
|
-
</body>
|
|
897
|
-
</html>
|
|
898
|
-
|