@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.
- package/CHANGELOG.md +32 -0
- package/coverage/clover.xml +75 -71
- package/coverage/coverage-final.json +2 -2
- package/coverage/lcov-report/index.html +24 -24
- package/coverage/lcov-report/src/bundle/index.html +1 -1
- 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/index.html +14 -14
- package/coverage/lcov-report/src/metro-config.ts.html +27 -12
- package/coverage/lcov-report/src/typescript/index.html +15 -15
- package/coverage/lcov-report/src/typescript/project-cache.ts.html +117 -30
- package/coverage/lcov.info +120 -112
- package/lib/metro-config.d.ts.map +1 -1
- package/lib/metro-config.js +6 -4
- package/lib/metro-config.js.map +1 -1
- package/lib/start.d.ts.map +1 -1
- package/lib/start.js +35 -17
- package/lib/start.js.map +1 -1
- package/lib/typescript/project-cache.d.ts +6 -2
- package/lib/typescript/project-cache.d.ts.map +1 -1
- package/lib/typescript/project-cache.js +28 -15
- package/lib/typescript/project-cache.js.map +1 -1
- package/package.json +6 -4
- package/src/metro-config.ts +9 -4
- package/src/start.ts +39 -21
- package/src/typescript/project-cache.ts +48 -19
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">50
|
|
26
|
+
<span class="strong">50% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>27/
|
|
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">
|
|
33
|
+
<span class="strong">50% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>14/
|
|
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">
|
|
47
|
+
<span class="strong">50.94% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>27/
|
|
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
|
|
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
|
|
81
|
-
<td data-value="
|
|
82
|
-
<td data-value="
|
|
83
|
-
<td data-value="
|
|
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="
|
|
87
|
-
<td data-value="
|
|
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
|
|
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
|
|
26
|
+
<span class="strong">50% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>27/
|
|
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">
|
|
33
|
+
<span class="strong">50% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>14/
|
|
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">
|
|
47
|
+
<span class="strong">50.94% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>27/
|
|
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
|
|
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"> </span>
|
|
221
226
|
<span class="cline-any cline-neutral"> </span>
|
|
222
227
|
<span class="cline-any cline-neutral"> </span>
|
|
223
228
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -285,9 +290,14 @@
|
|
|
285
290
|
<span class="cline-any cline-no"> </span>
|
|
286
291
|
<span class="cline-any cline-no"> </span>
|
|
287
292
|
<span class="cline-any cline-no"> </span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
296
|
+
<span class="cline-any cline-no"> </span>
|
|
288
297
|
<span class="cline-any cline-no"> </span>
|
|
289
298
|
<span class="cline-any cline-no"> </span>
|
|
290
299
|
<span class="cline-any cline-neutral"> </span>
|
|
300
|
+
<span class="cline-any cline-neutral"> </span>
|
|
291
301
|
<span class="cline-any cline-no"> </span>
|
|
292
302
|
<span class="cline-any cline-no"> </span>
|
|
293
303
|
<span class="cline-any cline-no"> </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<Project> = <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) => {</span>
|
|
447
|
-
const tsproject = <span class="cstat-no" title="statement not covered" >projectCache.
|
|
448
|
-
|
|
449
|
-
|
|
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) => {</span>
|
|
452
|
-
const tsproject = <span class="cstat-no" title="statement not covered" >projectCache.
|
|
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
|
|
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">
|
|
26
|
+
<span class="strong">8.7% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>4/
|
|
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">
|
|
40
|
+
<span class="strong">10% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>1/
|
|
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.
|
|
47
|
+
<span class="strong">9.09% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>4/
|
|
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="
|
|
78
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
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="
|
|
81
|
-
<td data-value="
|
|
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="
|
|
85
|
-
<td data-value="
|
|
86
|
-
<td data-value="9.
|
|
87
|
-
<td data-value="
|
|
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
|
|
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">
|
|
26
|
+
<span class="strong">8.7% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>4/
|
|
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">
|
|
40
|
+
<span class="strong">10% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>1/
|
|
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.
|
|
47
|
+
<span class="strong">9.09% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>4/
|
|
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
|
|
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"> </span>
|
|
243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
246
|
+
<span class="cline-any cline-neutral"> </span>
|
|
247
|
+
<span class="cline-any cline-neutral"> </span>
|
|
214
248
|
<span class="cline-any cline-neutral"> </span>
|
|
215
249
|
<span class="cline-any cline-neutral"> </span>
|
|
216
250
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -267,6 +301,9 @@
|
|
|
267
301
|
<span class="cline-any cline-yes">6x</span>
|
|
268
302
|
<span class="cline-any cline-neutral"> </span>
|
|
269
303
|
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
270
307
|
<span class="cline-any cline-yes">6x</span>
|
|
271
308
|
<span class="cline-any cline-neutral"> </span>
|
|
272
309
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -305,6 +342,21 @@
|
|
|
305
342
|
<span class="cline-any cline-neutral"> </span>
|
|
306
343
|
<span class="cline-any cline-neutral"> </span>
|
|
307
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-no"> </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-no"> </span>
|
|
308
360
|
<span class="cline-any cline-no"> </span>
|
|
309
361
|
<span class="cline-any cline-neutral"> </span>
|
|
310
362
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -331,19 +383,23 @@
|
|
|
331
383
|
<span class="cline-any cline-neutral"> </span>
|
|
332
384
|
<span class="cline-any cline-neutral"> </span>
|
|
333
385
|
<span class="cline-any cline-neutral"> </span>
|
|
334
|
-
<span class="cline-any cline-neutral"> </span>
|
|
335
386
|
<span class="cline-any cline-no"> </span>
|
|
336
387
|
<span class="cline-any cline-neutral"> </span>
|
|
337
|
-
<span class="cline-any cline-no"> </span>
|
|
338
388
|
<span class="cline-any cline-neutral"> </span>
|
|
339
389
|
<span class="cline-any cline-neutral"> </span>
|
|
340
390
|
<span class="cline-any cline-neutral"> </span>
|
|
341
|
-
<span class="cline-any cline-
|
|
391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
342
396
|
<span class="cline-any cline-no"> </span>
|
|
343
397
|
<span class="cline-any cline-no"> </span>
|
|
344
398
|
<span class="cline-any cline-neutral"> </span>
|
|
345
399
|
<span class="cline-any cline-no"> </span>
|
|
346
400
|
<span class="cline-any cline-no"> </span>
|
|
401
|
+
<span class="cline-any cline-no"> </span>
|
|
402
|
+
<span class="cline-any cline-no"> </span>
|
|
347
403
|
<span class="cline-any cline-neutral"> </span>
|
|
348
404
|
<span class="cline-any cline-no"> </span>
|
|
349
405
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -355,6 +411,8 @@
|
|
|
355
411
|
<span class="cline-any cline-no"> </span>
|
|
356
412
|
<span class="cline-any cline-no"> </span>
|
|
357
413
|
<span class="cline-any cline-neutral"> </span>
|
|
414
|
+
<span class="cline-any cline-no"> </span>
|
|
415
|
+
<span class="cline-any cline-neutral"> </span>
|
|
358
416
|
<span class="cline-any cline-neutral"> </span>
|
|
359
417
|
<span class="cline-any cline-neutral"> </span>
|
|
360
418
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -377,6 +435,11 @@ import {
|
|
|
377
435
|
import path from "path";
|
|
378
436
|
import ts from "typescript";
|
|
379
437
|
|
|
438
|
+
export type ProjectInfo = {
|
|
439
|
+
tsproject: Project;
|
|
440
|
+
tssourceFiles: Set<string>;
|
|
441
|
+
};
|
|
442
|
+
|
|
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
|
|
|
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
|
-
|
|
470
|
+
getProjectInfo(sourceFile: string, platform: AllPlatforms): ProjectInfo;
|
|
408
471
|
}
|
|
409
472
|
|
|
410
473
|
/**
|
|
@@ -420,7 +483,10 @@ export function createProjectCache(
|
|
|
420
483
|
const diagnosticWriter = createDiagnosticWriter(print);
|
|
421
484
|
|
|
422
485
|
// Collection of projects organized by root directory, then by platform.
|
|
423
|
-
const projects: Record<
|
|
486
|
+
const projects: Record<
|
|
487
|
+
string,
|
|
488
|
+
Partial<Record<AllPlatforms, ProjectInfo>>
|
|
489
|
+
> = {};
|
|
424
490
|
|
|
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
|
|
|
459
|
-
function <span class="fstat-no" title="function not covered" >
|
|
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
|
+
|
|
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
|
+
|
|
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>) => <span class="cstat-no" title="statement not covered" >f.endsWith(".d.ts"))</span>;</span>
|
|
462
543
|
|
|
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
|
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
568
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
569
|
+
tsproject,
|
|
570
|
+
tssourceFiles,
|
|
571
|
+
};
|
|
491
572
|
}
|
|
492
573
|
|
|
493
|
-
function <span class="fstat-no" title="function not covered" >
|
|
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" >
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
<span class="cstat-no" title="statement not covered" > if (!
|
|
499
|
-
<span class="cstat-no" title="statement not covered" >
|
|
579
|
+
<span class="cstat-no" title="statement not covered" > projects[root] ||= {};</span>
|
|
580
|
+
|
|
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
|
|
586
|
+
<span class="cstat-no" title="statement not covered" > return info;</span>
|
|
502
587
|
}
|
|
503
588
|
|
|
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) => {</span>
|
|
506
|
-
const
|
|
507
|
-
<span class="cstat-no" title="statement not covered" > if (
|
|
508
|
-
<span class="cstat-no" title="statement not covered" >
|
|
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
|
|
|
514
601
|
return {
|
|
515
602
|
clearPlatform,
|
|
516
|
-
|
|
603
|
+
getProjectInfo,
|
|
517
604
|
};
|
|
518
605
|
}
|
|
519
606
|
</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
|
|
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>
|