@openwebf/webf 0.22.1 → 0.22.4

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.
Files changed (57) hide show
  1. package/bin/webf.js +1 -0
  2. package/dist/IDLBlob.js +17 -0
  3. package/dist/analyzer.js +578 -0
  4. package/dist/analyzer_original.js +467 -0
  5. package/dist/commands.js +704 -0
  6. package/dist/dart.js +300 -0
  7. package/dist/declaration.js +63 -0
  8. package/dist/generator.js +466 -0
  9. package/dist/logger.js +103 -0
  10. package/dist/react.js +283 -0
  11. package/dist/utils.js +127 -0
  12. package/dist/vue.js +159 -0
  13. package/package.json +8 -1
  14. package/src/IDLBlob.ts +2 -2
  15. package/src/analyzer.ts +19 -1
  16. package/src/commands.ts +201 -22
  17. package/src/dart.ts +172 -11
  18. package/src/declaration.ts +5 -0
  19. package/src/generator.ts +82 -14
  20. package/src/react.ts +197 -62
  21. package/templates/class.dart.tpl +10 -4
  22. package/templates/gitignore.tpl +8 -1
  23. package/templates/react.component.tsx.tpl +78 -26
  24. package/templates/react.index.ts.tpl +0 -1
  25. package/templates/react.package.json.tpl +3 -0
  26. package/test/commands.test.ts +0 -5
  27. package/test/generator.test.ts +29 -8
  28. package/test/packageName.test.ts +231 -0
  29. package/test/react.test.ts +94 -9
  30. package/CLAUDE.md +0 -206
  31. package/README-zhCN.md +0 -256
  32. package/coverage/clover.xml +0 -1295
  33. package/coverage/coverage-final.json +0 -12
  34. package/coverage/lcov-report/IDLBlob.ts.html +0 -142
  35. package/coverage/lcov-report/analyzer.ts.html +0 -2158
  36. package/coverage/lcov-report/analyzer_original.ts.html +0 -1450
  37. package/coverage/lcov-report/base.css +0 -224
  38. package/coverage/lcov-report/block-navigation.js +0 -87
  39. package/coverage/lcov-report/commands.ts.html +0 -700
  40. package/coverage/lcov-report/dart.ts.html +0 -490
  41. package/coverage/lcov-report/declaration.ts.html +0 -337
  42. package/coverage/lcov-report/favicon.png +0 -0
  43. package/coverage/lcov-report/generator.ts.html +0 -1171
  44. package/coverage/lcov-report/index.html +0 -266
  45. package/coverage/lcov-report/logger.ts.html +0 -424
  46. package/coverage/lcov-report/prettify.css +0 -1
  47. package/coverage/lcov-report/prettify.js +0 -2
  48. package/coverage/lcov-report/react.ts.html +0 -619
  49. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  50. package/coverage/lcov-report/sorter.js +0 -196
  51. package/coverage/lcov-report/utils.ts.html +0 -466
  52. package/coverage/lcov-report/vue.ts.html +0 -613
  53. package/coverage/lcov.info +0 -2149
  54. package/global.d.ts +0 -2
  55. package/jest.config.js +0 -24
  56. package/templates/react.createComponent.tpl +0 -286
  57. package/tsconfig.json +0 -30
@@ -1,700 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for commands.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> commands.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'>84/84</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">92.85% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>13/14</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'>82/82</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
272
- <span class="cline-any cline-yes">1x</span>
273
- <span class="cline-any cline-yes">1x</span>
274
- <span class="cline-any cline-yes">1x</span>
275
- <span class="cline-any cline-yes">1x</span>
276
- <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-neutral">&nbsp;</span>
281
- <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-neutral">&nbsp;</span>
283
- <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-neutral">&nbsp;</span>
286
- <span class="cline-any cline-neutral">&nbsp;</span>
287
- <span class="cline-any cline-yes">1x</span>
288
- <span class="cline-any cline-yes">1x</span>
289
- <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">1x</span>
291
- <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-yes">1x</span>
296
- <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-neutral">&nbsp;</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-yes">1x</span>
301
- <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-neutral">&nbsp;</span>
303
- <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">1x</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-yes">1x</span>
311
- <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-yes">1x</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-yes">1x</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-yes">1x</span>
326
- <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-yes">1x</span>
331
- <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-yes">1x</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-yes">2x</span>
342
- <span class="cline-any cline-yes">2x</span>
343
- <span class="cline-any cline-yes">2x</span>
344
- <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-yes">2x</span>
346
- <span class="cline-any cline-yes">2x</span>
347
- <span class="cline-any cline-yes">2x</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-yes">2x</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-yes">7x</span>
354
- <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">7x</span>
356
- <span class="cline-any cline-yes">7x</span>
357
- <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-yes">7x</span>
360
- <span class="cline-any cline-yes">4x</span>
361
- <span class="cline-any cline-yes">4x</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-yes">4x</span>
365
- <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-yes">4x</span>
367
- <span class="cline-any cline-yes">4x</span>
368
- <span class="cline-any cline-yes">4x</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-yes">4x</span>
371
- <span class="cline-any cline-yes">4x</span>
372
- <span class="cline-any cline-yes">4x</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-yes">4x</span>
375
- <span class="cline-any cline-yes">4x</span>
376
- <span class="cline-any cline-yes">4x</span>
377
- <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-yes">4x</span>
379
- <span class="cline-any cline-yes">4x</span>
380
- <span class="cline-any cline-yes">4x</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-yes">4x</span>
384
- <span class="cline-any cline-yes">4x</span>
385
- <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-yes">4x</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-yes">4x</span>
390
- <span class="cline-any cline-yes">4x</span>
391
- <span class="cline-any cline-yes">4x</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-yes">4x</span>
395
- <span class="cline-any cline-yes">4x</span>
396
- <span class="cline-any cline-yes">4x</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-yes">4x</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-yes">3x</span>
404
- <span class="cline-any cline-yes">3x</span>
405
- <span class="cline-any cline-yes">3x</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-yes">3x</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-yes">3x</span>
411
- <span class="cline-any cline-yes">3x</span>
412
- <span class="cline-any cline-yes">3x</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">3x</span>
415
- <span class="cline-any cline-yes">3x</span>
416
- <span class="cline-any cline-yes">3x</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-yes">3x</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-yes">3x</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-yes">7x</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-yes">4x</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-yes">4x</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-yes">4x</span>
442
- <span class="cline-any cline-yes">3x</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-yes">3x</span>
445
- <span class="cline-any cline-yes">2x</span>
446
- <span class="cline-any cline-yes">2x</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-yes">1x</span>
450
- <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-yes">1x</span>
456
- <span class="cline-any cline-yes">1x</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-yes">33x</span>
466
- <span class="cline-any cline-yes">5x</span>
467
- <span class="cline-any cline-yes">5x</span>
468
- <span class="cline-any cline-yes">1x</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-yes">32x</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-yes">1x</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { spawnSync } from 'child_process';
477
- import fs from 'fs';
478
- import path from 'path';
479
- import { dartGen, reactGen, vueGen } from './generator';
480
- import _ from 'lodash';
481
- &nbsp;
482
- interface CreateOptions {
483
- framework: string;
484
- packageName: string;
485
- }
486
- &nbsp;
487
- interface GenerateOptions {
488
- flutterPackageSrc: string;
489
- framework: string;
490
- }
491
- &nbsp;
492
- const platform = process.platform;
493
- const NPM = platform == 'win32' ? <span class="branch-0 cbranch-no" title="branch not covered" >'npm.cmd' </span>: 'npm';
494
- &nbsp;
495
- const gloabalDts = fs.readFileSync(
496
- path.resolve(__dirname, '../global.d.ts'),
497
- 'utf-8'
498
- );
499
- &nbsp;
500
- const tsConfig = fs.readFileSync(
501
- path.resolve(__dirname, '../templates/tsconfig.json.tpl'),
502
- 'utf-8'
503
- );
504
- &nbsp;
505
- const gitignore = fs.readFileSync(
506
- path.resolve(__dirname, '../templates/gitignore.tpl'),
507
- 'utf-8'
508
- );
509
- &nbsp;
510
- const reactPackageJson = fs.readFileSync(
511
- path.resolve(__dirname, '../templates/react.package.json.tpl'),
512
- 'utf-8'
513
- );
514
- &nbsp;
515
- const reactTsConfig = fs.readFileSync(
516
- path.resolve(__dirname, '../templates/react.tsconfig.json.tpl'),
517
- 'utf-8'
518
- );
519
- &nbsp;
520
- const reactTsUpConfig = fs.readFileSync(
521
- path.resolve(__dirname, '../templates/react.tsup.config.ts.tpl'),
522
- 'utf-8'
523
- );
524
- &nbsp;
525
- const createComponentTpl = fs.readFileSync(
526
- path.resolve(__dirname, '../templates/react.createComponent.tpl'),
527
- 'utf-8'
528
- );
529
- &nbsp;
530
- const reactIndexTpl = fs.readFileSync(
531
- path.resolve(__dirname, '../templates/react.index.ts.tpl'),
532
- 'utf-8'
533
- );
534
- &nbsp;
535
- const vuePackageJson = fs.readFileSync(
536
- path.resolve(__dirname, '../templates/vue.package.json.tpl'),
537
- 'utf-8'
538
- );
539
- &nbsp;
540
- const vueTsConfig = fs.readFileSync(
541
- path.resolve(__dirname, '../templates/vue.tsconfig.json.tpl'),
542
- 'utf-8'
543
- );
544
- &nbsp;
545
- function initCommand(target: string): void {
546
- const typingsPath = path.resolve(target);
547
- const globalDtsPath = path.join(typingsPath, 'global.d.ts');
548
- const tsConfigPath = path.join(typingsPath, 'tsconfig.json');
549
- &nbsp;
550
- fs.mkdirSync(typingsPath, { recursive: true });
551
- fs.writeFileSync(globalDtsPath, gloabalDts, 'utf-8');
552
- fs.writeFileSync(tsConfigPath, tsConfig, 'utf-8');
553
- &nbsp;
554
- console.log(`WebF typings initialized: ${typingsPath}`);
555
- }
556
- &nbsp;
557
- function createCommand(target: string, options: CreateOptions): void {
558
- const { framework, packageName } = options;
559
- &nbsp;
560
- if (!fs.existsSync(target)) {
561
- fs.mkdirSync(target, { recursive: true });
562
- }
563
- &nbsp;
564
- if (framework === 'react') {
565
- const packageJsonPath = path.join(target, 'package.json');
566
- const packageJsonContent = _.template(reactPackageJson)({
567
- packageName,
568
- });
569
- writeFileIfChanged(packageJsonPath, packageJsonContent);
570
- &nbsp;
571
- const tsConfigPath = path.join(target, 'tsconfig.json');
572
- const tsConfigContent = _.template(reactTsConfig)({});
573
- writeFileIfChanged(tsConfigPath, tsConfigContent);
574
- &nbsp;
575
- const tsupConfigPath = path.join(target, 'tsup.config.ts');
576
- const tsupConfigContent = _.template(reactTsUpConfig)({});
577
- writeFileIfChanged(tsupConfigPath, tsupConfigContent);
578
- &nbsp;
579
- const gitignorePath = path.join(target, '.gitignore');
580
- const gitignoreContent = _.template(gitignore)({});
581
- writeFileIfChanged(gitignorePath, gitignoreContent);
582
- &nbsp;
583
- const srcDir = path.join(target, 'src');
584
- if (!fs.existsSync(srcDir)) {
585
- fs.mkdirSync(srcDir, { recursive: true });
586
- }
587
- &nbsp;
588
- const indexFilePath = path.join(srcDir, 'index.ts');
589
- const indexContent = _.template(reactIndexTpl)({
590
- components: [],
591
- });
592
- writeFileIfChanged(indexFilePath, indexContent);
593
- &nbsp;
594
- const utilsDir = path.join(srcDir, 'utils');
595
- if (!fs.existsSync(utilsDir)) {
596
- fs.mkdirSync(utilsDir, { recursive: true });
597
- }
598
- &nbsp;
599
- const createComponentPath = path.join(utilsDir, 'createComponent.ts');
600
- const createComponentContent = _.template(createComponentTpl)({});
601
- writeFileIfChanged(createComponentPath, createComponentContent);
602
- &nbsp;
603
- spawnSync(NPM, ['install', '--omit=peer'], {
604
- cwd: target,
605
- stdio: 'inherit'
606
- });
607
- &nbsp;
608
- } else if (framework === 'vue') {
609
- const packageJsonPath = path.join(target, 'package.json');
610
- const packageJsonContent = _.template(vuePackageJson)({
611
- packageName,
612
- });
613
- writeFileIfChanged(packageJsonPath, packageJsonContent);
614
- &nbsp;
615
- const tsConfigPath = path.join(target, 'tsconfig.json');
616
- const tsConfigContent = _.template(vueTsConfig)({});
617
- writeFileIfChanged(tsConfigPath, tsConfigContent);
618
- &nbsp;
619
- const gitignorePath = path.join(target, '.gitignore');
620
- const gitignoreContent = _.template(gitignore)({});
621
- writeFileIfChanged(gitignorePath, gitignoreContent);
622
- &nbsp;
623
- spawnSync(NPM, ['install', '@openwebf/webf-enterprise-typings'], {
624
- cwd: target,
625
- stdio: 'inherit'
626
- });
627
- &nbsp;
628
- spawnSync(NPM, ['install', '@types/vue', '-D'], {
629
- cwd: target,
630
- stdio: 'inherit'
631
- });
632
- }
633
- &nbsp;
634
- console.log(`WebF ${framework} package created at: ${target}`);
635
- }
636
- &nbsp;
637
- async function generateCommand(distPath: string, options: GenerateOptions): Promise&lt;void&gt; {
638
- const command = `webf codegen generate --flutter-package-src=${options.flutterPackageSrc} --framework=&lt;framework&gt; &lt;distPath&gt;`;
639
- &nbsp;
640
- await dartGen({
641
- source: options.flutterPackageSrc,
642
- target: options.flutterPackageSrc,
643
- command,
644
- });
645
- &nbsp;
646
- if (options.framework === 'react') {
647
- const packageJsonPath = path.join(distPath, 'package.json');
648
- &nbsp;
649
- if (!fs.existsSync(packageJsonPath)) {
650
- console.error(`Error: package.json not found in ${distPath}, please run 'webf create' first.`);
651
- return;
652
- }
653
- &nbsp;
654
- await reactGen({
655
- source: options.flutterPackageSrc,
656
- target: distPath,
657
- command,
658
- });
659
- }
660
- else if (options.framework === 'vue') {
661
- await vueGen({
662
- source: options.flutterPackageSrc,
663
- target: distPath,
664
- command,
665
- });
666
- }
667
- }
668
- &nbsp;
669
- function writeFileIfChanged(filePath: string, content: string) {
670
- if (fs.existsSync(filePath)) {
671
- const oldContent = fs.readFileSync(filePath, 'utf-8')
672
- if (oldContent === content) {
673
- return;
674
- }
675
- }
676
- &nbsp;
677
- fs.writeFileSync(filePath, content, 'utf-8');
678
- }
679
- &nbsp;
680
- export { initCommand, createCommand, generateCommand };
681
- &nbsp;</pre></td></tr></table></pre>
682
-
683
- <div class='push'></div><!-- for sticky footer -->
684
- </div><!-- /wrapper -->
685
- <div class='footer quiet pad2 space-top1 center small'>
686
- Code coverage generated by
687
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
688
- at 2025-06-15T19:54:25.468Z
689
- </div>
690
- <script src="prettify.js"></script>
691
- <script>
692
- window.onload = function () {
693
- prettyPrint();
694
- };
695
- </script>
696
- <script src="sorter.js"></script>
697
- <script src="block-navigation.js"></script>
698
- </body>
699
- </html>
700
-