@rnx-kit/cli 0.15.4 → 0.16.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/CHANGELOG.md +15 -0
- package/README.md +32 -20
- package/coverage/clover.xml +75 -26
- package/coverage/coverage-final.json +2 -2
- package/coverage/lcov-report/index.html +21 -21
- package/coverage/lcov-report/src/bundle/defaultPlugins.ts.html +31 -13
- package/coverage/lcov-report/src/bundle/index.html +5 -5
- package/coverage/lcov-report/src/bundle/kit-config.ts.html +1 -1
- package/coverage/lcov-report/src/bundle/metro.ts.html +1 -1
- package/coverage/lcov-report/src/bundle/overrides.ts.html +1 -1
- package/coverage/lcov-report/src/copy-assets.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +20 -20
- package/coverage/lcov-report/src/metro-config.ts.html +426 -42
- package/coverage/lcov.info +127 -42
- package/lib/bundle/defaultPlugins.d.ts +4 -2
- package/lib/bundle/defaultPlugins.d.ts.map +1 -1
- package/lib/bundle/defaultPlugins.js +9 -6
- package/lib/bundle/defaultPlugins.js.map +1 -1
- package/lib/bundle/types.d.ts +1 -1
- package/lib/bundle/types.d.ts.map +1 -1
- package/lib/metro-config.d.ts +5 -3
- package/lib/metro-config.d.ts.map +1 -1
- package/lib/metro-config.js +122 -21
- package/lib/metro-config.js.map +1 -1
- package/lib/serve/kit-config.d.ts +7 -3
- package/lib/serve/kit-config.d.ts.map +1 -1
- package/lib/serve/kit-config.js +1 -1
- package/lib/serve/kit-config.js.map +1 -1
- package/package.json +6 -10
- package/src/bundle/defaultPlugins.ts +14 -8
- package/src/bundle/types.ts +1 -3
- package/src/metro-config.ts +154 -26
- package/src/serve/kit-config.ts +8 -5
- package/src/start.ts +1 -1
- package/test/bundle/kit-config.test.ts +25 -15
- package/test/bundle/metro.test.ts +10 -11
- package/test/bundle/overrides.test.ts +5 -4
- package/test/metro-config.test.ts +71 -32
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">54.54% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>36/66</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">50% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>19/38</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">66.66% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/6</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">54.54% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>36/66</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -132,7 +132,135 @@
|
|
|
132
132
|
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
133
|
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
134
|
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
136
264
|
<span class="cline-any cline-neutral"> </span>
|
|
137
265
|
<span class="cline-any cline-neutral"> </span>
|
|
138
266
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -156,29 +284,144 @@
|
|
|
156
284
|
<span class="cline-any cline-neutral"> </span>
|
|
157
285
|
<span class="cline-any cline-neutral"> </span>
|
|
158
286
|
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-yes">21x</span>
|
|
288
|
+
<span class="cline-any cline-yes">21x</span>
|
|
159
289
|
<span class="cline-any cline-neutral"> </span>
|
|
290
|
+
<span class="cline-any cline-no"> </span>
|
|
160
291
|
<span class="cline-any cline-neutral"> </span>
|
|
161
292
|
<span class="cline-any cline-neutral"> </span>
|
|
162
293
|
<span class="cline-any cline-neutral"> </span>
|
|
163
294
|
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-yes">21x</span>
|
|
296
|
+
<span class="cline-any cline-yes">21x</span>
|
|
164
297
|
<span class="cline-any cline-neutral"> </span>
|
|
165
298
|
<span class="cline-any cline-neutral"> </span>
|
|
299
|
+
<span class="cline-any cline-neutral"> </span>
|
|
300
|
+
<span class="cline-any cline-neutral"> </span>
|
|
301
|
+
<span class="cline-any cline-neutral"> </span>
|
|
302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-yes">10x</span>
|
|
305
|
+
<span class="cline-any cline-yes">10x</span>
|
|
306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
166
307
|
<span class="cline-any cline-yes">10x</span>
|
|
308
|
+
<span class="cline-any cline-no"> </span>
|
|
309
|
+
<span class="cline-any cline-no"> </span>
|
|
310
|
+
<span class="cline-any cline-neutral"> </span>
|
|
167
311
|
<span class="cline-any cline-neutral"> </span>
|
|
168
312
|
<span class="cline-any cline-yes">10x</span>
|
|
313
|
+
<span class="cline-any cline-no"> </span>
|
|
314
|
+
<span class="cline-any cline-no"> </span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
169
317
|
<span class="cline-any cline-yes">10x</span>
|
|
170
|
-
<span class="cline-any cline-
|
|
171
|
-
<span class="cline-any cline-
|
|
172
|
-
<span class="cline-any cline-
|
|
318
|
+
<span class="cline-any cline-no"> </span>
|
|
319
|
+
<span class="cline-any cline-no"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
173
322
|
<span class="cline-any cline-neutral"> </span>
|
|
174
323
|
<span class="cline-any cline-yes">10x</span>
|
|
175
|
-
<span class="cline-any cline-yes">
|
|
324
|
+
<span class="cline-any cline-yes">10x</span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-no"> </span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
334
|
+
<span class="cline-any cline-no"> </span>
|
|
335
|
+
<span class="cline-any cline-no"> </span>
|
|
336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
338
|
+
<span class="cline-any cline-no"> </span>
|
|
339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
340
|
+
<span class="cline-any cline-no"> </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-yes">10x</span>
|
|
367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
368
|
+
<span class="cline-any cline-yes">10x</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-yes">10x</span>
|
|
373
|
+
<span class="cline-any cline-neutral"> </span>
|
|
374
|
+
<span class="cline-any cline-yes">10x</span>
|
|
375
|
+
<span class="cline-any cline-yes">10x</span>
|
|
376
|
+
<span class="cline-any cline-no"> </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-no"> </span>
|
|
383
|
+
<span class="cline-any cline-neutral"> </span>
|
|
384
|
+
<span class="cline-any cline-no"> </span>
|
|
385
|
+
<span class="cline-any cline-no"> </span>
|
|
386
|
+
<span class="cline-any cline-no"> </span>
|
|
387
|
+
<span class="cline-any cline-no"> </span>
|
|
388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
389
|
+
<span class="cline-any cline-neutral"> </span>
|
|
390
|
+
<span class="cline-any cline-no"> </span>
|
|
391
|
+
<span class="cline-any cline-no"> </span>
|
|
392
|
+
<span class="cline-any cline-no"> </span>
|
|
393
|
+
<span class="cline-any cline-no"> </span>
|
|
394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
396
|
+
<span class="cline-any cline-no"> </span>
|
|
397
|
+
<span class="cline-any cline-no"> </span>
|
|
398
|
+
<span class="cline-any cline-no"> </span>
|
|
399
|
+
<span class="cline-any cline-neutral"> </span>
|
|
400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
401
|
+
<span class="cline-any cline-yes">10x</span>
|
|
402
|
+
<span class="cline-any cline-yes">10x</span>
|
|
403
|
+
<span class="cline-any cline-yes">21x</span>
|
|
404
|
+
<span class="cline-any cline-neutral"> </span>
|
|
405
|
+
<span class="cline-any cline-neutral"> </span>
|
|
406
|
+
<span class="cline-any cline-yes">21x</span>
|
|
407
|
+
<span class="cline-any cline-yes">21x</span>
|
|
408
|
+
<span class="cline-any cline-neutral"> </span>
|
|
409
|
+
<span class="cline-any cline-yes">12x</span>
|
|
410
|
+
<span class="cline-any cline-yes">12x</span>
|
|
411
|
+
<span class="cline-any cline-neutral"> </span>
|
|
412
|
+
<span class="cline-any cline-neutral"> </span>
|
|
176
413
|
<span class="cline-any cline-yes">9x</span>
|
|
177
|
-
<span class="cline-any cline-yes">
|
|
414
|
+
<span class="cline-any cline-yes">9x</span>
|
|
415
|
+
<span class="cline-any cline-neutral"> </span>
|
|
416
|
+
<span class="cline-any cline-neutral"> </span>
|
|
417
|
+
<span class="cline-any cline-no"> </span>
|
|
418
|
+
<span class="cline-any cline-neutral"> </span>
|
|
419
|
+
<span class="cline-any cline-neutral"> </span>
|
|
178
420
|
<span class="cline-any cline-neutral"> </span>
|
|
179
421
|
<span class="cline-any cline-neutral"> </span>
|
|
180
422
|
<span class="cline-any cline-yes">10x</span>
|
|
181
423
|
<span class="cline-any cline-yes">1x</span>
|
|
424
|
+
<span class="cline-any cline-neutral"> </span>
|
|
182
425
|
<span class="cline-any cline-yes">1x</span>
|
|
183
426
|
<span class="cline-any cline-yes">9x</span>
|
|
184
427
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -201,7 +444,21 @@
|
|
|
201
444
|
<span class="cline-any cline-yes">10x</span>
|
|
202
445
|
<span class="cline-any cline-yes">10x</span>
|
|
203
446
|
<span class="cline-any cline-neutral"> </span>
|
|
204
|
-
<span class="cline-any cline-
|
|
447
|
+
<span class="cline-any cline-yes">1x</span>
|
|
448
|
+
<span class="cline-any cline-neutral"> </span>
|
|
449
|
+
<span class="cline-any cline-yes">9x</span>
|
|
450
|
+
<span class="cline-any cline-yes">9x</span>
|
|
451
|
+
<span class="cline-any cline-neutral"> </span>
|
|
452
|
+
<span class="cline-any cline-no"> </span>
|
|
453
|
+
<span class="cline-any cline-no"> </span>
|
|
454
|
+
<span class="cline-any cline-no"> </span>
|
|
455
|
+
<span class="cline-any cline-neutral"> </span>
|
|
456
|
+
<span class="cline-any cline-neutral"> </span>
|
|
457
|
+
<span class="cline-any cline-no"> </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></td><td class="text"><pre class="prettyprint lang-js">import type { BundleParameters } from "@rnx-kit/config";
|
|
461
|
+
import { warn } from "@rnx-kit/console";
|
|
205
462
|
import { CyclicDependencies } from "@rnx-kit/metro-plugin-cyclic-dependencies-detector";
|
|
206
463
|
import { DuplicateDependencies } from "@rnx-kit/metro-plugin-duplicates-checker";
|
|
207
464
|
import { TypeScriptPlugin } from "@rnx-kit/metro-plugin-typescript";
|
|
@@ -212,44 +469,158 @@ import {
|
|
|
212
469
|
MetroSerializer as MetroSerializerEsbuild,
|
|
213
470
|
} from "@rnx-kit/metro-serializer-esbuild";
|
|
214
471
|
import type { InputConfigT, SerializerConfigT } from "metro-config";
|
|
472
|
+
import { getDefaultBundlerPlugins } from "./bundle/defaultPlugins";
|
|
473
|
+
|
|
474
|
+
type MetroExtraParams = Pick<
|
|
475
|
+
BundleParameters,
|
|
476
|
+
| "detectCyclicDependencies"
|
|
477
|
+
| "detectDuplicateDependencies"
|
|
478
|
+
| "typescriptValidation"
|
|
479
|
+
| "plugins"
|
|
480
|
+
| "treeShake"
|
|
481
|
+
>;
|
|
482
|
+
|
|
483
|
+
function resolvePlugin(name: string): string {
|
|
484
|
+
try {
|
|
485
|
+
return require.resolve(name);
|
|
486
|
+
} catch (_) {
|
|
487
|
+
<span class="cstat-no" title="statement not covered" > return require.resolve(name, { paths: [process.cwd()] });</span>
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
function importPlugin(name: string) {
|
|
492
|
+
const plugin = require(resolvePlugin(name));
|
|
493
|
+
return plugin.default || plugin;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
function readLegacyOptions({
|
|
497
|
+
detectCyclicDependencies,
|
|
498
|
+
detectDuplicateDependencies,
|
|
499
|
+
typescriptValidation,
|
|
500
|
+
}: MetroExtraParams): string | undefined {
|
|
501
|
+
const oldOptions = [];
|
|
502
|
+
const deprecatedOptions: Record<string, Record<string, unknown> | true> = {};
|
|
503
|
+
|
|
504
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (detectCyclicDependencies) {
|
|
505
|
+
<span class="cstat-no" title="statement not covered" > oldOptions.push("detectCyclicDependencies");</span>
|
|
506
|
+
<span class="cstat-no" title="statement not covered" > deprecatedOptions["@rnx-kit/metro-plugin-cyclic-dependencies-detector"] =</span>
|
|
507
|
+
detectCyclicDependencies;
|
|
508
|
+
}
|
|
509
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (detectDuplicateDependencies) {
|
|
510
|
+
<span class="cstat-no" title="statement not covered" > oldOptions.push("detectDuplicateDependencies");</span>
|
|
511
|
+
<span class="cstat-no" title="statement not covered" > deprecatedOptions["@rnx-kit/metro-plugin-duplicates-checker"] =</span>
|
|
512
|
+
detectDuplicateDependencies;
|
|
513
|
+
}
|
|
514
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (typescriptValidation) {
|
|
515
|
+
<span class="cstat-no" title="statement not covered" > oldOptions.push("typescriptValidation");</span>
|
|
516
|
+
<span class="cstat-no" title="statement not covered" > deprecatedOptions["@rnx-kit/metro-plugin-typescript"] =</span>
|
|
517
|
+
typescriptValidation;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
if (oldOptions.length === 0) {
|
|
521
|
+
return undefined;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
<span class="cstat-no" title="statement not covered" > return (</span>
|
|
525
|
+
`'${oldOptions.join("', '")}' have been replaced by a new 'plugins' ` +
|
|
526
|
+
"option. Below is an equivalent config:\n" +
|
|
527
|
+
"\n" +
|
|
528
|
+
' "plugins": [\n' +
|
|
529
|
+
Object.entries(deprecatedOptions)
|
|
530
|
+
.map(<span class="fstat-no" title="function not covered" >([</span>name, options]) => {
|
|
531
|
+
<span class="cstat-no" title="statement not covered" > if (typeof options === "object") {</span>
|
|
532
|
+
const json = <span class="cstat-no" title="statement not covered" >JSON.stringify(options, null, 2)</span>
|
|
533
|
+
.split("\n")
|
|
534
|
+
.join("\n ");
|
|
535
|
+
<span class="cstat-no" title="statement not covered" > return ` ["${name}", ${json}]`;</span>
|
|
536
|
+
} else {
|
|
537
|
+
<span class="cstat-no" title="statement not covered" > return ` "${name}"`;</span>
|
|
538
|
+
}
|
|
539
|
+
})
|
|
540
|
+
.join(",\n") +
|
|
541
|
+
"\n" +
|
|
542
|
+
" ]\n" +
|
|
543
|
+
"\n" +
|
|
544
|
+
"For more details, see " +
|
|
545
|
+
"https://github.com/microsoft/rnx-kit/tree/main/packages/cli#readme"
|
|
546
|
+
);
|
|
547
|
+
}
|
|
215
548
|
|
|
216
549
|
/**
|
|
217
550
|
* Customize the Metro configuration.
|
|
218
551
|
*
|
|
219
552
|
* @param metroConfigReadonly Metro configuration
|
|
220
|
-
* @param
|
|
553
|
+
* @param extraParams Parameters used to further customize Metro configuration
|
|
221
554
|
* @param print Optional function to use when printing status messages to the Metro console
|
|
222
555
|
*/
|
|
223
556
|
export function customizeMetroConfig(
|
|
224
557
|
metroConfigReadonly: InputConfigT,
|
|
225
|
-
|
|
226
|
-
detectCyclicDependencies,
|
|
227
|
-
detectDuplicateDependencies,
|
|
228
|
-
treeShake,
|
|
229
|
-
typescriptValidation,
|
|
230
|
-
}: BundlerPlugins,
|
|
558
|
+
extraParams: MetroExtraParams,
|
|
231
559
|
print?: (message: string) => void
|
|
232
560
|
): void {
|
|
233
|
-
//
|
|
234
|
-
//
|
|
561
|
+
// We will be making changes to the Metro configuration. Coerce from a type
|
|
562
|
+
// with readonly props to a type where the props are writeable.
|
|
235
563
|
const metroConfig = metroConfigReadonly as InputConfigT;
|
|
236
564
|
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
565
|
+
const metroPlugins: MetroPlugin[] = [];
|
|
566
|
+
const serializerHooks: Record<
|
|
567
|
+
string,
|
|
568
|
+
SerializerConfigT["experimentalSerializerHook"]
|
|
569
|
+
> = {};
|
|
570
|
+
|
|
571
|
+
const legacyWarning = readLegacyOptions(extraParams);
|
|
572
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (legacyWarning) {
|
|
573
|
+
<span class="cstat-no" title="statement not covered" > warn(legacyWarning);</span>
|
|
574
|
+
|
|
575
|
+
const {
|
|
576
|
+
detectCyclicDependencies,
|
|
577
|
+
detectDuplicateDependencies,
|
|
578
|
+
typescriptValidation,
|
|
579
|
+
} = <span class="cstat-no" title="statement not covered" >extraParams;</span>
|
|
580
|
+
|
|
581
|
+
<span class="cstat-no" title="statement not covered" > if (typeof detectDuplicateDependencies === "object") {</span>
|
|
582
|
+
<span class="cstat-no" title="statement not covered" > metroPlugins.push(DuplicateDependencies(detectDuplicateDependencies));</span>
|
|
583
|
+
} else <span class="cstat-no" title="statement not covered" >if (detectDuplicateDependencies !== false) {</span>
|
|
584
|
+
<span class="cstat-no" title="statement not covered" > metroPlugins.push(DuplicateDependencies());</span>
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
<span class="cstat-no" title="statement not covered" > if (typeof detectCyclicDependencies === "object") {</span>
|
|
588
|
+
<span class="cstat-no" title="statement not covered" > metroPlugins.push(CyclicDependencies(detectCyclicDependencies));</span>
|
|
589
|
+
} else <span class="cstat-no" title="statement not covered" >if (detectCyclicDependencies !== false) {</span>
|
|
590
|
+
<span class="cstat-no" title="statement not covered" > metroPlugins.push(CyclicDependencies());</span>
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
<span class="cstat-no" title="statement not covered" > if (typescriptValidation !== false) {</span>
|
|
594
|
+
const plugin = <span class="cstat-no" title="statement not covered" >TypeScriptPlugin(typescriptValidation, print);</span>
|
|
595
|
+
<span class="cstat-no" title="statement not covered" > serializerHooks["@rnx-kit/metro-plugin-typescript"] = plugin;</span>
|
|
596
|
+
}
|
|
597
|
+
} else {
|
|
598
|
+
const plugins = extraParams.plugins || getDefaultBundlerPlugins().plugins;
|
|
599
|
+
for (const entry of plugins) {
|
|
600
|
+
const [module, options] = Array.isArray(entry)
|
|
601
|
+
? entry
|
|
602
|
+
: [entry, undefined];
|
|
603
|
+
const plugin = importPlugin(module);
|
|
604
|
+
switch (plugin.type) {
|
|
605
|
+
case "serializer":
|
|
606
|
+
metroPlugins.push(plugin(options));
|
|
607
|
+
break;
|
|
608
|
+
|
|
609
|
+
case "serializerHook":
|
|
610
|
+
serializerHooks[module] = plugin(options, print);
|
|
611
|
+
break;
|
|
612
|
+
|
|
613
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > default:</span>
|
|
614
|
+
<span class="cstat-no" title="statement not covered" > throw new Error(`${module}: unknown plugin type: ${plugin.type}`);</span>
|
|
615
|
+
}
|
|
616
|
+
}
|
|
247
617
|
}
|
|
248
618
|
|
|
249
|
-
if (treeShake) {
|
|
250
|
-
metroConfig.serializer.customSerializer =
|
|
619
|
+
if (extraParams.treeShake) {
|
|
620
|
+
metroConfig.serializer.customSerializer =
|
|
621
|
+
MetroSerializerEsbuild(metroPlugins);
|
|
251
622
|
Object.assign(metroConfig.transformer, esbuildTransformerConfig);
|
|
252
|
-
} else if (
|
|
623
|
+
} else if (metroPlugins.length > 0) {
|
|
253
624
|
// MetroSerializer acts as a CustomSerializer, and it works with both
|
|
254
625
|
// older and newer versions of Metro. Older versions expect a return
|
|
255
626
|
// value, while newer versions expect a promise.
|
|
@@ -261,14 +632,27 @@ export function customizeMetroConfig(
|
|
|
261
632
|
// Since it can handle either scenario, just coerce it to whatever
|
|
262
633
|
// the current version of Metro expects.
|
|
263
634
|
metroConfig.serializer.customSerializer = MetroSerializer(
|
|
264
|
-
|
|
635
|
+
metroPlugins
|
|
265
636
|
) as SerializerConfigT["customSerializer"];
|
|
266
637
|
} else {
|
|
267
638
|
delete metroConfig.serializer.customSerializer;
|
|
268
639
|
}
|
|
269
640
|
|
|
270
|
-
const
|
|
271
|
-
|
|
641
|
+
const hooks = Object.values(serializerHooks);
|
|
642
|
+
switch (hooks.length) {
|
|
643
|
+
case 0:
|
|
644
|
+
break;
|
|
645
|
+
case 1:
|
|
646
|
+
metroConfig.serializer.experimentalSerializerHook = hooks[0];
|
|
647
|
+
break;
|
|
648
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > default:</span>
|
|
649
|
+
<span class="cstat-no" title="statement not covered" > metroConfig.serializer.experimentalSerializerHook = <span class="fstat-no" title="function not covered" >(g</span>raph, delta) => {</span>
|
|
650
|
+
<span class="cstat-no" title="statement not covered" > for (const hook of hooks) {</span>
|
|
651
|
+
<span class="cstat-no" title="statement not covered" > hook(graph, delta);</span>
|
|
652
|
+
}
|
|
653
|
+
};
|
|
654
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
655
|
+
}
|
|
272
656
|
}
|
|
273
657
|
</pre></td></tr></table></pre>
|
|
274
658
|
|
|
@@ -277,7 +661,7 @@ export function customizeMetroConfig(
|
|
|
277
661
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
278
662
|
Code coverage generated by
|
|
279
663
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
280
|
-
at
|
|
664
|
+
at Tue Jan 17 2023 17:14:20 GMT+0000 (Coordinated Universal Time)
|
|
281
665
|
</div>
|
|
282
666
|
<script src="../prettify.js"></script>
|
|
283
667
|
<script>
|