@rnx-kit/cli 0.15.1 → 0.15.3

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.
@@ -1762,7 +1762,7 @@ export const rnxCopyAssetsCommand = {
1762
1762
  <div class='footer quiet pad2 space-top1 center small'>
1763
1763
  Code coverage generated by
1764
1764
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1765
- at Mon Dec 05 2022 16:15:26 GMT+0000 (Coordinated Universal Time)
1765
+ at Wed Jan 11 2023 11:08:36 GMT+0000 (Coordinated Universal Time)
1766
1766
  </div>
1767
1767
  <script src="../prettify.js"></script>
1768
1768
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">52.15% </span>
26
+ <span class="strong">59.17% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>109/209</span>
28
+ <span class='fraction'>100/169</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">46.51% </span>
33
+ <span class="strong">52.29% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>60/129</span>
35
+ <span class='fraction'>57/109</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">55.55% </span>
40
+ <span class="strong">77.77% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>15/27</span>
42
+ <span class='fraction'>14/18</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">52.17% </span>
47
+ <span class="strong">58.92% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>108/207</span>
49
+ <span class='fraction'>99/168</span>
50
50
  </div>
51
51
 
52
52
 
@@ -94,18 +94,18 @@
94
94
  </tr>
95
95
 
96
96
  <tr>
97
- <td class="file low" data-value="metro-config.ts"><a href="metro-config.ts.html">metro-config.ts</a></td>
98
- <td data-value="46.55" class="pic low">
99
- <div class="chart"><div class="cover-fill" style="width: 46%"></div><div class="cover-empty" style="width: 54%"></div></div>
97
+ <td class="file high" data-value="metro-config.ts"><a href="metro-config.ts.html">metro-config.ts</a></td>
98
+ <td data-value="100" class="pic high">
99
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
100
  </td>
101
- <td data-value="46.55" class="pct low">46.55%</td>
102
- <td data-value="58" class="abs low">27/58</td>
103
- <td data-value="46.87" class="pct low">46.87%</td>
104
- <td data-value="32" class="abs low">15/32</td>
105
- <td data-value="20" class="pct low">20%</td>
106
- <td data-value="10" class="abs low">2/10</td>
107
- <td data-value="47.36" class="pct low">47.36%</td>
108
- <td data-value="57" class="abs low">27/57</td>
101
+ <td data-value="100" class="pct high">100%</td>
102
+ <td data-value="18" class="abs high">18/18</td>
103
+ <td data-value="100" class="pct high">100%</td>
104
+ <td data-value="12" class="abs high">12/12</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="1" class="abs high">1/1</td>
107
+ <td data-value="100" class="pct high">100%</td>
108
+ <td data-value="18" class="abs high">18/18</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Mon Dec 05 2022 16:15:26 GMT+0000 (Coordinated Universal Time)
119
+ at Wed Jan 11 2023 11:08:36 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../prettify.js"></script>
122
122
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">46.55% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>27/58</span>
28
+ <span class='fraction'>18/18</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">46.87% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>15/32</span>
35
+ <span class='fraction'>12/12</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">20% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/10</span>
42
+ <span class='fraction'>1/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">47.36% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>27/57</span>
49
+ <span class='fraction'>18/18</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 low'></div>
64
+ <div class='status-line high'></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,110 +132,7 @@
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>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
135
+ <a name='L70'></a><a href='#L70'>70</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
239
136
  <span class="cline-any cline-neutral">&nbsp;</span>
240
137
  <span class="cline-any cline-neutral">&nbsp;</span>
241
138
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -266,104 +163,6 @@
266
163
  <span class="cline-any cline-neutral">&nbsp;</span>
267
164
  <span class="cline-any cline-neutral">&nbsp;</span>
268
165
  <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-neutral">&nbsp;</span>
271
- <span class="cline-any cline-yes">9x</span>
272
- <span class="cline-any cline-neutral">&nbsp;</span>
273
- <span class="cline-any cline-yes">9x</span>
274
- <span class="cline-any cline-yes">9x</span>
275
- <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-yes">9x</span>
277
- <span class="cline-any cline-no">&nbsp;</span>
278
- <span class="cline-any cline-no">&nbsp;</span>
279
- <span class="cline-any cline-no">&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-no">&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-neutral">&nbsp;</span>
288
- <span class="cline-any cline-no">&nbsp;</span>
289
- <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
294
- <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-neutral">&nbsp;</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-no">&nbsp;</span>
305
- <span class="cline-any cline-no">&nbsp;</span>
306
- <span class="cline-any cline-no">&nbsp;</span>
307
- <span class="cline-any cline-no">&nbsp;</span>
308
- <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-no">&nbsp;</span>
310
- <span class="cline-any cline-no">&nbsp;</span>
311
- <span class="cline-any cline-no">&nbsp;</span>
312
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
316
- <span class="cline-any cline-no">&nbsp;</span>
317
- <span class="cline-any cline-no">&nbsp;</span>
318
- <span class="cline-any cline-no">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-no">&nbsp;</span>
321
- <span class="cline-any cline-no">&nbsp;</span>
322
- <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
326
- <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-no">&nbsp;</span>
328
- <span class="cline-any cline-no">&nbsp;</span>
329
- <span class="cline-any cline-no">&nbsp;</span>
330
- <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
335
- <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-no">&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">9x</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-yes">2x</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
354
- <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
365
- <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-neutral">&nbsp;</span>
367
166
  <span class="cline-any cline-yes">10x</span>
368
167
  <span class="cline-any cline-neutral">&nbsp;</span>
369
168
  <span class="cline-any cline-yes">10x</span>
@@ -401,121 +200,18 @@
401
200
  <span class="cline-any cline-neutral">&nbsp;</span>
402
201
  <span class="cline-any cline-yes">10x</span>
403
202
  <span class="cline-any cline-yes">10x</span>
404
- <span class="cline-any cline-no">&nbsp;</span>
405
- <span class="cline-any cline-yes">10x</span>
406
- <span class="cline-any cline-yes">9x</span>
407
203
  <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-yes">10x</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type {
411
- BundlerPlugins,
412
- TypeScriptValidationOptions,
413
- } from "@rnx-kit/config";
204
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { BundlerPlugins } from "@rnx-kit/config";
414
205
  import { CyclicDependencies } from "@rnx-kit/metro-plugin-cyclic-dependencies-detector";
415
206
  import { DuplicateDependencies } from "@rnx-kit/metro-plugin-duplicates-checker";
207
+ import { TypeScriptPlugin } from "@rnx-kit/metro-plugin-typescript";
416
208
  import type { MetroPlugin } from "@rnx-kit/metro-serializer";
417
209
  import { MetroSerializer } from "@rnx-kit/metro-serializer";
418
210
  import {
419
211
  esbuildTransformerConfig,
420
212
  MetroSerializer as MetroSerializerEsbuild,
421
213
  } from "@rnx-kit/metro-serializer-esbuild";
422
- import type { AllPlatforms } from "@rnx-kit/tools-react-native/platform";
423
- import type { Project } from "@rnx-kit/typescript-service";
424
- import type { DeltaResult, Graph } from "metro";
425
214
  import type { InputConfigT, SerializerConfigT } from "metro-config";
426
- import { createProjectCache } from "./typescript/project-cache";
427
- &nbsp;
428
- /**
429
- * Create a hook function to be registered with Metro during serialization.
430
- * Each serialization pass runs the hook which type-checks each added/updated
431
- * source file.
432
- *
433
- * Source file in node_modules (external packages) are ignored.
434
- *
435
- * @param options TypeScript validation options
436
- * @param print Optional function to use when printing status messages to the Metro console
437
- * @returns Hook function
438
- */
439
- function createSerializerHook(
440
- options: TypeScriptValidationOptions,
441
- print?: (message: string) =&gt; void
442
- ) {
443
- const projectCache = createProjectCache(print);
444
- &nbsp;
445
- const patternNodeModules = /[/\\]node_modules[/\\]/;
446
- const excludeNodeModules = <span class="fstat-no" title="function not covered" >(p</span>: string) =&gt; <span class="cstat-no" title="statement not covered" >!patternNodeModules.test(p);</span>
447
- &nbsp;
448
- const hook = <span class="fstat-no" title="function not covered" >(g</span>raph: Graph, delta: DeltaResult): void =&gt; {
449
- const platform = <span class="cstat-no" title="statement not covered" >graph.transformOptions.platform as AllPlatforms;</span>
450
- <span class="cstat-no" title="statement not covered" > if (platform) {</span>
451
- <span class="cstat-no" title="statement not covered" > if (delta.reset) {</span>
452
- // Metro is signaling that all cached data for this Graph should be
453
- // thrown out. Each Graph is scoped to one platform, so discard all
454
- // of that platform's projects.
455
- <span class="cstat-no" title="statement not covered" > projectCache.clearPlatform(platform);</span>
456
- }
457
- &nbsp;
458
- // Filter adds, updates, and deletes coming from Metro. Do not look at
459
- // anything in an external package (e.g. under node_modules).
460
- const adds = <span class="cstat-no" title="statement not covered" >Array.from(</span>
461
- delta.added.values(),
462
- <span class="fstat-no" title="function not covered" > (m</span>odule) =&gt; <span class="cstat-no" title="statement not covered" >module.path</span>
463
- ).filter(excludeNodeModules);
464
- &nbsp;
465
- const updates = <span class="cstat-no" title="statement not covered" >Array.from(</span>
466
- delta.modified.values(),
467
- <span class="fstat-no" title="function not covered" > (m</span>odule) =&gt; <span class="cstat-no" title="statement not covered" >module.path</span>
468
- ).filter(excludeNodeModules);
469
- &nbsp;
470
- const deletes = <span class="cstat-no" title="statement not covered" >Array.from(delta.deleted.values()).filter(</span>
471
- excludeNodeModules
472
- );
473
- &nbsp;
474
- // Try to map each file to a TypeScript project, and apply its delta operation.
475
- // Some projects may not actually be TypeScript projects (ignore those).
476
- const tsprojectsToValidate: Set&lt;Project&gt; = <span class="cstat-no" title="statement not covered" >new Set();</span>
477
- <span class="cstat-no" title="statement not covered" > adds.concat(updates).forEach(<span class="fstat-no" title="function not covered" >(s</span>ourceFile) =&gt; {</span>
478
- const projectInfo = <span class="cstat-no" title="statement not covered" >projectCache.getProjectInfo(sourceFile, platform);</span>
479
- <span class="cstat-no" title="statement not covered" > if (projectInfo) {</span>
480
- // This is a TypeScript project. Validate it.
481
- const { tsproject, tssourceFiles } = <span class="cstat-no" title="statement not covered" >projectInfo;</span>
482
- <span class="cstat-no" title="statement not covered" > if (tssourceFiles.has(sourceFile)) {</span>
483
- <span class="cstat-no" title="statement not covered" > tsproject.setFile(sourceFile);</span>
484
- <span class="cstat-no" title="statement not covered" > tsprojectsToValidate.add(tsproject);</span>
485
- }
486
- }
487
- });
488
- <span class="cstat-no" title="statement not covered" > deletes.forEach(<span class="fstat-no" title="function not covered" >(s</span>ourceFile) =&gt; {</span>
489
- const projectInfo = <span class="cstat-no" title="statement not covered" >projectCache.getProjectInfo(sourceFile, platform);</span>
490
- <span class="cstat-no" title="statement not covered" > if (projectInfo) {</span>
491
- // This is a TypeScript project. Validate it.
492
- const { tsproject } = <span class="cstat-no" title="statement not covered" >projectInfo;</span>
493
- <span class="cstat-no" title="statement not covered" > tsproject.removeFile(sourceFile);</span>
494
- <span class="cstat-no" title="statement not covered" > tsprojectsToValidate.add(tsproject);</span>
495
- }
496
- });
497
- &nbsp;
498
- // Validate all projects which changed, printing all type errors.
499
- let isValid = <span class="cstat-no" title="statement not covered" >true;</span>
500
- <span class="cstat-no" title="statement not covered" > tsprojectsToValidate.forEach(<span class="fstat-no" title="function not covered" >(p</span>) =&gt; {</span>
501
- <span class="cstat-no" title="statement not covered" > if (!p.validate()) {</span>
502
- <span class="cstat-no" title="statement not covered" > isValid = false;</span>
503
- }
504
- });
505
- &nbsp;
506
- <span class="cstat-no" title="statement not covered" > if (!isValid &amp;&amp; options.throwOnError) {</span>
507
- // Type-checking failed. Fail the Metro operation (bundling or serving).
508
- <span class="cstat-no" title="statement not covered" > throw new Error("Type validation failed");</span>
509
- }
510
- }
511
- };
512
- &nbsp;
513
- return hook;
514
- }
515
- &nbsp;
516
- const emptySerializerHook = <span class="fstat-no" title="function not covered" >(_</span>graph: Graph, _delta: DeltaResult): void =&gt; {
517
- // nop
518
- };
519
215
  &nbsp;
520
216
  /**
521
217
  * Customize the Metro configuration.
@@ -571,12 +267,7 @@ export function customizeMetroConfig(
571
267
  delete metroConfig.serializer.customSerializer;
572
268
  }
573
269
  &nbsp;
574
- let hook = emptySerializerHook;
575
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof typescriptValidation === "object") {
576
- <span class="cstat-no" title="statement not covered" > hook = createSerializerHook(typescriptValidation, print);</span>
577
- } else if (typescriptValidation !== false) {
578
- hook = createSerializerHook({}, print);
579
- }
270
+ const hook = TypeScriptPlugin(typescriptValidation, print);
580
271
  metroConfig.serializer.experimentalSerializerHook = hook;
581
272
  }
582
273
  &nbsp;</pre></td></tr></table></pre>
@@ -586,7 +277,7 @@ export function customizeMetroConfig(
586
277
  <div class='footer quiet pad2 space-top1 center small'>
587
278
  Code coverage generated by
588
279
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
589
- at Mon Dec 05 2022 16:15:26 GMT+0000 (Coordinated Universal Time)
280
+ at Wed Jan 11 2023 11:08:36 GMT+0000 (Coordinated Universal Time)
590
281
  </div>
591
282
  <script src="../prettify.js"></script>
592
283
  <script>