@rnx-kit/cli 0.9.55 → 0.10.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.
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">50.94% </span>
26
+ <span class="strong">50% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>27/53</span>
28
+ <span class='fraction'>27/54</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">53.85% </span>
33
+ <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>14/26</span>
35
+ <span class='fraction'>14/28</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">51.92% </span>
47
+ <span class="strong">50.94% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>27/52</span>
49
+ <span class='fraction'>27/53</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,17 +74,17 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file medium" data-value="metro-config.ts"><a href="metro-config.ts.html">metro-config.ts</a></td>
77
- <td data-value="50.94" class="pic medium">
77
+ <td data-value="50" class="pic medium">
78
78
  <div class="chart"><div class="cover-fill" style="width: 50%"></div><div class="cover-empty" style="width: 50%"></div></div>
79
79
  </td>
80
- <td data-value="50.94" class="pct medium">50.94%</td>
81
- <td data-value="53" class="abs medium">27/53</td>
82
- <td data-value="53.85" class="pct medium">53.85%</td>
83
- <td data-value="26" class="abs medium">14/26</td>
80
+ <td data-value="50" class="pct medium">50%</td>
81
+ <td data-value="54" class="abs medium">27/54</td>
82
+ <td data-value="50" class="pct medium">50%</td>
83
+ <td data-value="28" class="abs medium">14/28</td>
84
84
  <td data-value="20" class="pct low">20%</td>
85
85
  <td data-value="10" class="abs low">2/10</td>
86
- <td data-value="51.92" class="pct medium">51.92%</td>
87
- <td data-value="52" class="abs medium">27/52</td>
86
+ <td data-value="50.94" class="pct medium">50.94%</td>
87
+ <td data-value="53" class="abs medium">27/53</td>
88
88
  </tr>
89
89
 
90
90
  </tbody>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Tue Dec 07 2021 17:01:30 GMT+0000 (Coordinated Universal Time)
98
+ at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">50.94% </span>
26
+ <span class="strong">50% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>27/53</span>
28
+ <span class='fraction'>27/54</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">53.85% </span>
33
+ <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>14/26</span>
35
+ <span class='fraction'>14/28</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">51.92% </span>
47
+ <span class="strong">50.94% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>27/52</span>
49
+ <span class='fraction'>27/53</span>
50
50
  </div>
51
51
 
52
52
 
@@ -217,7 +217,12 @@
217
217
  <a name='L158'></a><a href='#L158'>158</a>
218
218
  <a name='L159'></a><a href='#L159'>159</a>
219
219
  <a name='L160'></a><a href='#L160'>160</a>
220
- <a name='L161'></a><a href='#L161'>161</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
220
+ <a name='L161'></a><a href='#L161'>161</a>
221
+ <a name='L162'></a><a href='#L162'>162</a>
222
+ <a name='L163'></a><a href='#L163'>163</a>
223
+ <a name='L164'></a><a href='#L164'>164</a>
224
+ <a name='L165'></a><a href='#L165'>165</a>
225
+ <a name='L166'></a><a href='#L166'>166</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
221
226
  <span class="cline-any cline-neutral">&nbsp;</span>
222
227
  <span class="cline-any cline-neutral">&nbsp;</span>
223
228
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -285,9 +290,14 @@
285
290
  <span class="cline-any cline-no">&nbsp;</span>
286
291
  <span class="cline-any cline-no">&nbsp;</span>
287
292
  <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-no">&nbsp;</span>
288
297
  <span class="cline-any cline-no">&nbsp;</span>
289
298
  <span class="cline-any cline-no">&nbsp;</span>
290
299
  <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
291
301
  <span class="cline-any cline-no">&nbsp;</span>
292
302
  <span class="cline-any cline-no">&nbsp;</span>
293
303
  <span class="cline-any cline-no">&nbsp;</span>
@@ -444,12 +454,17 @@ function createSerializerHook(options: TypeScriptValidationOptions) {
444
454
  // Map each file to a TypeScript project, and apply its delta operation.
445
455
  const tsprojectsToValidate: Set&lt;Project&gt; = <span class="cstat-no" title="statement not covered" >new Set();</span>
446
456
  <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>
447
- const tsproject = <span class="cstat-no" title="statement not covered" >projectCache.getProject(sourceFile, platform);</span>
448
- <span class="cstat-no" title="statement not covered" > tsproject.setFile(sourceFile);</span>
449
- <span class="cstat-no" title="statement not covered" > tsprojectsToValidate.add(tsproject);</span>
457
+ const { tsproject, tssourceFiles } = <span class="cstat-no" title="statement not covered" >projectCache.getProjectInfo(</span>
458
+ sourceFile,
459
+ platform
460
+ );
461
+ <span class="cstat-no" title="statement not covered" > if (tssourceFiles.has(sourceFile)) {</span>
462
+ <span class="cstat-no" title="statement not covered" > tsproject.setFile(sourceFile);</span>
463
+ <span class="cstat-no" title="statement not covered" > tsprojectsToValidate.add(tsproject);</span>
464
+ }
450
465
  });
451
466
  <span class="cstat-no" title="statement not covered" > deletes.forEach(<span class="fstat-no" title="function not covered" >(s</span>ourceFile) =&gt; {</span>
452
- const tsproject = <span class="cstat-no" title="statement not covered" >projectCache.getProject(sourceFile, platform);</span>
467
+ const { tsproject } = <span class="cstat-no" title="statement not covered" >projectCache.getProjectInfo(sourceFile, platform);</span>
453
468
  <span class="cstat-no" title="statement not covered" > tsproject.removeFile(sourceFile);</span>
454
469
  <span class="cstat-no" title="statement not covered" > tsprojectsToValidate.add(tsproject);</span>
455
470
  });
@@ -544,7 +559,7 @@ export function customizeMetroConfig(
544
559
  <div class='footer quiet pad2 space-top1 center small'>
545
560
  Code coverage generated by
546
561
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
547
- at Tue Dec 07 2021 17:01:30 GMT+0000 (Coordinated Universal Time)
562
+ at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
548
563
  </div>
549
564
  </div>
550
565
  <script src="../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">9.52% </span>
26
+ <span class="strong">8.7% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>4/42</span>
28
+ <span class='fraction'>4/46</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">11.11% </span>
40
+ <span class="strong">10% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/9</span>
42
+ <span class='fraction'>1/10</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">9.76% </span>
47
+ <span class="strong">9.09% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>4/41</span>
49
+ <span class='fraction'>4/44</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,17 +74,17 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file low" data-value="project-cache.ts"><a href="project-cache.ts.html">project-cache.ts</a></td>
77
- <td data-value="9.52" class="pic low">
78
- <div class="chart"><div class="cover-fill" style="width: 9%"></div><div class="cover-empty" style="width: 91%"></div></div>
77
+ <td data-value="8.7" class="pic low">
78
+ <div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
79
79
  </td>
80
- <td data-value="9.52" class="pct low">9.52%</td>
81
- <td data-value="42" class="abs low">4/42</td>
80
+ <td data-value="8.7" class="pct low">8.7%</td>
81
+ <td data-value="46" class="abs low">4/46</td>
82
82
  <td data-value="0" class="pct low">0%</td>
83
83
  <td data-value="14" class="abs low">0/14</td>
84
- <td data-value="11.11" class="pct low">11.11%</td>
85
- <td data-value="9" class="abs low">1/9</td>
86
- <td data-value="9.76" class="pct low">9.76%</td>
87
- <td data-value="41" class="abs low">4/41</td>
84
+ <td data-value="10" class="pct low">10%</td>
85
+ <td data-value="10" class="abs low">1/10</td>
86
+ <td data-value="9.09" class="pct low">9.09%</td>
87
+ <td data-value="44" class="abs low">4/44</td>
88
88
  </tr>
89
89
 
90
90
  </tbody>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Tue Dec 07 2021 17:01:30 GMT+0000 (Coordinated Universal Time)
98
+ at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">9.52% </span>
26
+ <span class="strong">8.7% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>4/42</span>
28
+ <span class='fraction'>4/46</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">11.11% </span>
40
+ <span class="strong">10% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/9</span>
42
+ <span class='fraction'>1/10</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">9.76% </span>
47
+ <span class="strong">9.09% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>4/41</span>
49
+ <span class='fraction'>4/44</span>
50
50
  </div>
51
51
 
52
52
 
@@ -210,7 +210,41 @@
210
210
  <a name='L151'></a><a href='#L151'>151</a>
211
211
  <a name='L152'></a><a href='#L152'>152</a>
212
212
  <a name='L153'></a><a href='#L153'>153</a>
213
- <a name='L154'></a><a href='#L154'>154</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
213
+ <a name='L154'></a><a href='#L154'>154</a>
214
+ <a name='L155'></a><a href='#L155'>155</a>
215
+ <a name='L156'></a><a href='#L156'>156</a>
216
+ <a name='L157'></a><a href='#L157'>157</a>
217
+ <a name='L158'></a><a href='#L158'>158</a>
218
+ <a name='L159'></a><a href='#L159'>159</a>
219
+ <a name='L160'></a><a href='#L160'>160</a>
220
+ <a name='L161'></a><a href='#L161'>161</a>
221
+ <a name='L162'></a><a href='#L162'>162</a>
222
+ <a name='L163'></a><a href='#L163'>163</a>
223
+ <a name='L164'></a><a href='#L164'>164</a>
224
+ <a name='L165'></a><a href='#L165'>165</a>
225
+ <a name='L166'></a><a href='#L166'>166</a>
226
+ <a name='L167'></a><a href='#L167'>167</a>
227
+ <a name='L168'></a><a href='#L168'>168</a>
228
+ <a name='L169'></a><a href='#L169'>169</a>
229
+ <a name='L170'></a><a href='#L170'>170</a>
230
+ <a name='L171'></a><a href='#L171'>171</a>
231
+ <a name='L172'></a><a href='#L172'>172</a>
232
+ <a name='L173'></a><a href='#L173'>173</a>
233
+ <a name='L174'></a><a href='#L174'>174</a>
234
+ <a name='L175'></a><a href='#L175'>175</a>
235
+ <a name='L176'></a><a href='#L176'>176</a>
236
+ <a name='L177'></a><a href='#L177'>177</a>
237
+ <a name='L178'></a><a href='#L178'>178</a>
238
+ <a name='L179'></a><a href='#L179'>179</a>
239
+ <a name='L180'></a><a href='#L180'>180</a>
240
+ <a name='L181'></a><a href='#L181'>181</a>
241
+ <a name='L182'></a><a href='#L182'>182</a>
242
+ <a name='L183'></a><a href='#L183'>183</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-neutral">&nbsp;</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
248
  <span class="cline-any cline-neutral">&nbsp;</span>
215
249
  <span class="cline-any cline-neutral">&nbsp;</span>
216
250
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -267,6 +301,9 @@
267
301
  <span class="cline-any cline-yes">6x</span>
268
302
  <span class="cline-any cline-neutral">&nbsp;</span>
269
303
  <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
307
  <span class="cline-any cline-yes">6x</span>
271
308
  <span class="cline-any cline-neutral">&nbsp;</span>
272
309
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -305,6 +342,21 @@
305
342
  <span class="cline-any cline-neutral">&nbsp;</span>
306
343
  <span class="cline-any cline-neutral">&nbsp;</span>
307
344
  <span class="cline-any cline-neutral">&nbsp;</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-no">&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-no">&nbsp;</span>
308
360
  <span class="cline-any cline-no">&nbsp;</span>
309
361
  <span class="cline-any cline-neutral">&nbsp;</span>
310
362
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -331,19 +383,23 @@
331
383
  <span class="cline-any cline-neutral">&nbsp;</span>
332
384
  <span class="cline-any cline-neutral">&nbsp;</span>
333
385
  <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
386
  <span class="cline-any cline-no">&nbsp;</span>
336
387
  <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-no">&nbsp;</span>
338
388
  <span class="cline-any cline-neutral">&nbsp;</span>
339
389
  <span class="cline-any cline-neutral">&nbsp;</span>
340
390
  <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-no">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
396
  <span class="cline-any cline-no">&nbsp;</span>
343
397
  <span class="cline-any cline-no">&nbsp;</span>
344
398
  <span class="cline-any cline-neutral">&nbsp;</span>
345
399
  <span class="cline-any cline-no">&nbsp;</span>
346
400
  <span class="cline-any cline-no">&nbsp;</span>
401
+ <span class="cline-any cline-no">&nbsp;</span>
402
+ <span class="cline-any cline-no">&nbsp;</span>
347
403
  <span class="cline-any cline-neutral">&nbsp;</span>
348
404
  <span class="cline-any cline-no">&nbsp;</span>
349
405
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -355,6 +411,8 @@
355
411
  <span class="cline-any cline-no">&nbsp;</span>
356
412
  <span class="cline-any cline-no">&nbsp;</span>
357
413
  <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-no">&nbsp;</span>
415
+ <span class="cline-any cline-neutral">&nbsp;</span>
358
416
  <span class="cline-any cline-neutral">&nbsp;</span>
359
417
  <span class="cline-any cline-neutral">&nbsp;</span>
360
418
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -377,6 +435,11 @@ import {
377
435
  import path from "path";
378
436
  import ts from "typescript";
379
437
  &nbsp;
438
+ export type ProjectInfo = {
439
+ tsproject: Project;
440
+ tssourceFiles: Set&lt;string&gt;;
441
+ };
442
+ &nbsp;
380
443
  /**
381
444
  * Collection of TypeScript projects, separated by their target platform.
382
445
  *
@@ -397,14 +460,14 @@ export interface ProjectCache {
397
460
  clearPlatform(platform: AllPlatforms): void;
398
461
  &nbsp;
399
462
  /**
400
- * Get the project which targets a specific platform and contains a specific
463
+ * Get info on the project which targets a specific platform and contains a specific
401
464
  * source file. If the project is not cached, load it and add it to the cache.
402
465
  *
403
466
  * @param platform Target platform
404
467
  * @param sourceFile Source file
405
468
  * @returns Project targeting the given platform and containing the given source file
406
469
  */
407
- getProject(sourceFile: string, platform: AllPlatforms): Project;
470
+ getProjectInfo(sourceFile: string, platform: AllPlatforms): ProjectInfo;
408
471
  }
409
472
  &nbsp;
410
473
  /**
@@ -420,7 +483,10 @@ export function createProjectCache(
420
483
  const diagnosticWriter = createDiagnosticWriter(print);
421
484
  &nbsp;
422
485
  // Collection of projects organized by root directory, then by platform.
423
- const projects: Record&lt;string, Partial&lt;Record&lt;AllPlatforms, Project&gt;&gt;&gt; = {};
486
+ const projects: Record&lt;
487
+ string,
488
+ Partial&lt;Record&lt;AllPlatforms, ProjectInfo&gt;&gt;
489
+ &gt; = {};
424
490
  &nbsp;
425
491
  function <span class="fstat-no" title="function not covered" >findProjectRoot(</span>sourceFile: string): string {
426
492
  // Search known root directories to see if the source file is in one of them.
@@ -456,9 +522,24 @@ export function createProjectCache(
456
522
  <span class="cstat-no" title="statement not covered" > return cmdLine;</span>
457
523
  }
458
524
  &nbsp;
459
- function <span class="fstat-no" title="function not covered" >createProject(</span>root: string, platform: AllPlatforms): Project {
525
+ function <span class="fstat-no" title="function not covered" >createProjectInfo(</span>
526
+ root: string,
527
+ platform: AllPlatforms
528
+ ): ProjectInfo {
460
529
  // Load the TypeScript configuration file for this project.
461
530
  const cmdLine = <span class="cstat-no" title="statement not covered" >readTSConfig(root);</span>
531
+ &nbsp;
532
+ // Trim down the list of source files found by TypeScript. This ensures
533
+ // that only explicitly added files are loaded and parsed by TypeScript.
534
+ // This is a perf optimization. We don't want to spend cycles on files
535
+ // that won't be used, such as *.android.ts when bundling for ios.
536
+ //
537
+ // The exception to this rule are .d.ts files. They hold global types,
538
+ // modules and namespaces, and having them in the project is the only
539
+ // way they can be loaded.
540
+ &nbsp;
541
+ const tssourceFiles = <span class="cstat-no" title="statement not covered" >new Set(cmdLine.fileNames);</span>
542
+ <span class="cstat-no" title="statement not covered" > cmdLine.fileNames = cmdLine.fileNames.filter(<span class="fstat-no" title="function not covered" >(f</span>) =&gt; <span class="cstat-no" title="statement not covered" >f.endsWith(".d.ts"))</span>;</span>
462
543
  &nbsp;
463
544
  // Create a TypeScript project using the configuration file. Enhance the
464
545
  // underlying TS language service with our react-native module resolver.
@@ -484,28 +565,34 @@ export function createProjectCache(
484
565
  enhanceLanguageServiceHost
485
566
  );
486
567
  &nbsp;
487
- // Start with an empty project, ignoring the file graph from tsconfig.json.
488
- <span class="cstat-no" title="statement not covered" > tsproject.removeAllFiles();</span>
489
- &nbsp;
490
- <span class="cstat-no" title="statement not covered" > return tsproject;</span>
568
+ <span class="cstat-no" title="statement not covered" > return {</span>
569
+ tsproject,
570
+ tssourceFiles,
571
+ };
491
572
  }
492
573
  &nbsp;
493
- function <span class="fstat-no" title="function not covered" >getProject(</span>sourceFile: string, platform: AllPlatforms): Project {
574
+ function <span class="fstat-no" title="function not covered" >getProjectInfo(</span>
575
+ sourceFile: string,
576
+ platform: AllPlatforms
577
+ ): ProjectInfo {
494
578
  const root = <span class="cstat-no" title="statement not covered" >findProjectRoot(sourceFile);</span>
495
- <span class="cstat-no" title="statement not covered" > if (!projects[root]) {</span>
496
- <span class="cstat-no" title="statement not covered" > projects[root] = {};</span>
497
- }
498
- <span class="cstat-no" title="statement not covered" > if (!projects[root][platform]) {</span>
499
- <span class="cstat-no" title="statement not covered" > projects[root][platform] = createProject(root, platform);</span>
579
+ <span class="cstat-no" title="statement not covered" > projects[root] ||= {};</span>
580
+ &nbsp;
581
+ let info = <span class="cstat-no" title="statement not covered" >projects[root][platform];</span>
582
+ <span class="cstat-no" title="statement not covered" > if (!info) {</span>
583
+ <span class="cstat-no" title="statement not covered" > info = createProjectInfo(root, platform);</span>
584
+ <span class="cstat-no" title="statement not covered" > projects[root][platform] = info;</span>
500
585
  }
501
- <span class="cstat-no" title="statement not covered" > return projects[root][platform]!;</span>
586
+ <span class="cstat-no" title="statement not covered" > return info;</span>
502
587
  }
503
588
  &nbsp;
504
589
  function <span class="fstat-no" title="function not covered" >clearPlatform(</span>platform: AllPlatforms): void {
505
590
  <span class="cstat-no" title="statement not covered" > Object.values(projects).forEach(<span class="fstat-no" title="function not covered" >(p</span>rojectsByPlatform) =&gt; {</span>
506
- const project = <span class="cstat-no" title="statement not covered" >projectsByPlatform[platform];</span>
507
- <span class="cstat-no" title="statement not covered" > if (project) {</span>
508
- <span class="cstat-no" title="statement not covered" > project.dispose();</span>
591
+ const info = <span class="cstat-no" title="statement not covered" >projectsByPlatform[platform];</span>
592
+ <span class="cstat-no" title="statement not covered" > if (info) {</span>
593
+ <span class="cstat-no" title="statement not covered" > if (info.tsproject) {</span>
594
+ <span class="cstat-no" title="statement not covered" > info.tsproject.dispose();</span>
595
+ }
509
596
  <span class="cstat-no" title="statement not covered" > delete projectsByPlatform[platform];</span>
510
597
  }
511
598
  });
@@ -513,7 +600,7 @@ export function createProjectCache(
513
600
  &nbsp;
514
601
  return {
515
602
  clearPlatform,
516
- getProject,
603
+ getProjectInfo,
517
604
  };
518
605
  }
519
606
  &nbsp;</pre></td></tr></table></pre>
@@ -523,7 +610,7 @@ export function createProjectCache(
523
610
  <div class='footer quiet pad2 space-top1 center small'>
524
611
  Code coverage generated by
525
612
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
526
- at Tue Dec 07 2021 17:01:30 GMT+0000 (Coordinated Universal Time)
613
+ at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
527
614
  </div>
528
615
  </div>
529
616
  <script src="../../prettify.js"></script>