@rnx-kit/cli 0.12.3 → 0.12.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/coverage/clover.xml +206 -194
  3. package/coverage/coverage-final.json +3 -3
  4. package/coverage/lcov-report/index.html +26 -26
  5. package/coverage/lcov-report/src/bundle/index.html +1 -1
  6. package/coverage/lcov-report/src/bundle/kit-config.ts.html +1 -1
  7. package/coverage/lcov-report/src/bundle/metro.ts.html +1 -1
  8. package/coverage/lcov-report/src/bundle/overrides.ts.html +1 -1
  9. package/coverage/lcov-report/src/copy-assets.ts.html +36 -12
  10. package/coverage/lcov-report/src/index.html +27 -27
  11. package/coverage/lcov-report/src/metro-config.ts.html +40 -22
  12. package/coverage/lcov-report/src/typescript/index.html +13 -13
  13. package/coverage/lcov-report/src/typescript/project-cache.ts.html +97 -16
  14. package/coverage/lcov.info +368 -342
  15. package/lib/copy-assets.d.ts.map +1 -1
  16. package/lib/copy-assets.js +8 -2
  17. package/lib/copy-assets.js.map +1 -1
  18. package/lib/metro-config.d.ts.map +1 -1
  19. package/lib/metro-config.js +17 -8
  20. package/lib/metro-config.js.map +1 -1
  21. package/lib/start.d.ts.map +1 -1
  22. package/lib/start.js +27 -8
  23. package/lib/start.js.map +1 -1
  24. package/lib/typescript/project-cache.d.ts +1 -1
  25. package/lib/typescript/project-cache.d.ts.map +1 -1
  26. package/lib/typescript/project-cache.js +26 -4
  27. package/lib/typescript/project-cache.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/copy-assets.ts +10 -2
  30. package/src/metro-config.ts +17 -11
  31. package/src/start.ts +48 -8
  32. package/src/typescript/project-cache.ts +35 -8
  33. package/test/__mocks__/child_process.js +1 -1
  34. package/test/copy-assets/assembleAarBundle.test.ts +6 -6
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">8.69% </span>
26
+ <span class="strong">7.84% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>4/46</span>
28
+ <span class='fraction'>4/51</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/14</span>
35
+ <span class='fraction'>0/18</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">9.09% </span>
47
+ <span class="strong">8.16% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>4/44</span>
49
+ <span class='fraction'>4/49</span>
50
50
  </div>
51
51
 
52
52
 
@@ -245,7 +245,38 @@
245
245
  <a name='L180'></a><a href='#L180'>180</a>
246
246
  <a name='L181'></a><a href='#L181'>181</a>
247
247
  <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
249
280
  <span class="cline-any cline-neutral">&nbsp;</span>
250
281
  <span class="cline-any cline-neutral">&nbsp;</span>
251
282
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -333,6 +364,17 @@
333
364
  <span class="cline-any cline-neutral">&nbsp;</span>
334
365
  <span class="cline-any cline-neutral">&nbsp;</span>
335
366
  <span class="cline-any cline-no">&nbsp;</span>
367
+ <span class="cline-any cline-no">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-no">&nbsp;</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
378
  <span class="cline-any cline-neutral">&nbsp;</span>
337
379
  <span class="cline-any cline-no">&nbsp;</span>
338
380
  <span class="cline-any cline-no">&nbsp;</span>
@@ -352,6 +394,10 @@
352
394
  <span class="cline-any cline-neutral">&nbsp;</span>
353
395
  <span class="cline-any cline-neutral">&nbsp;</span>
354
396
  <span class="cline-any cline-no">&nbsp;</span>
397
+ <span class="cline-any cline-no">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-no">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
401
  <span class="cline-any cline-neutral">&nbsp;</span>
356
402
  <span class="cline-any cline-neutral">&nbsp;</span>
357
403
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -403,11 +449,19 @@
403
449
  <span class="cline-any cline-no">&nbsp;</span>
404
450
  <span class="cline-any cline-neutral">&nbsp;</span>
405
451
  <span class="cline-any cline-no">&nbsp;</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
455
  <span class="cline-any cline-no">&nbsp;</span>
407
456
  <span class="cline-any cline-no">&nbsp;</span>
408
- <span class="cline-any cline-no">&nbsp;</span>
457
+ <span class="cline-any cline-neutral">&nbsp;</span>
458
+ <span class="cline-any cline-neutral">&nbsp;</span>
459
+ <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
461
  <span class="cline-any cline-neutral">&nbsp;</span>
410
462
  <span class="cline-any cline-no">&nbsp;</span>
463
+ <span class="cline-any cline-no">&nbsp;</span>
464
+ <span class="cline-any cline-no">&nbsp;</span>
411
465
  <span class="cline-any cline-neutral">&nbsp;</span>
412
466
  <span class="cline-any cline-neutral">&nbsp;</span>
413
467
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -438,6 +492,7 @@ import {
438
492
  Project,
439
493
  readConfigFile,
440
494
  } from "@rnx-kit/typescript-service";
495
+ import fs from "fs";
441
496
  import path from "path";
442
497
  import ts from "typescript";
443
498
  &nbsp;
@@ -473,7 +528,10 @@ export interface ProjectCache {
473
528
  * @param sourceFile Source file
474
529
  * @returns Project targeting the given platform and containing the given source file
475
530
  */
476
- getProjectInfo(sourceFile: string, platform: AllPlatforms): ProjectInfo;
531
+ getProjectInfo(
532
+ sourceFile: string,
533
+ platform: AllPlatforms
534
+ ): ProjectInfo | undefined;
477
535
  }
478
536
  &nbsp;
479
537
  /**
@@ -513,8 +571,19 @@ export function createProjectCache(
513
571
  <span class="cstat-no" title="statement not covered" > return root;</span>
514
572
  }
515
573
  &nbsp;
516
- function <span class="fstat-no" title="function not covered" >readTSConfig(</span>root: string): ts.ParsedCommandLine {
574
+ function <span class="fstat-no" title="function not covered" >readTSConfig(</span>root: string): ts.ParsedCommandLine | undefined {
517
575
  const configFileName = <span class="cstat-no" title="statement not covered" >path.join(root, "tsconfig.json");</span>
576
+ <span class="cstat-no" title="statement not covered" > if (!fs.existsSync(configFileName)) {</span>
577
+ // Allow for packages that aren't TypeScript.
578
+ //
579
+ // Example: Users who enable bundling with all the config defaults will
580
+ // have type validation enabled automatically. They may not actually be
581
+ // using TypeScript.
582
+ //
583
+ // We shouldn't break them. We should use TS validation only for TS packages.
584
+ //
585
+ <span class="cstat-no" title="statement not covered" > return undefined;</span>
586
+ }
518
587
  &nbsp;
519
588
  const cmdLine = <span class="cstat-no" title="statement not covered" >readConfigFile(configFileName);</span>
520
589
  <span class="cstat-no" title="statement not covered" > if (!cmdLine) {</span>
@@ -531,9 +600,13 @@ export function createProjectCache(
531
600
  function <span class="fstat-no" title="function not covered" >createProjectInfo(</span>
532
601
  root: string,
533
602
  platform: AllPlatforms
534
- ): ProjectInfo {
603
+ ): ProjectInfo | undefined {
535
604
  // Load the TypeScript configuration file for this project.
536
605
  const cmdLine = <span class="cstat-no" title="statement not covered" >readTSConfig(root);</span>
606
+ <span class="cstat-no" title="statement not covered" > if (!cmdLine) {</span>
607
+ // Not a TypeScript project
608
+ <span class="cstat-no" title="statement not covered" > return undefined;</span>
609
+ }
537
610
  &nbsp;
538
611
  // Trim down the list of source files found by TypeScript. This ensures
539
612
  // that only explicitly added files are loaded and parsed by TypeScript.
@@ -580,15 +653,23 @@ export function createProjectCache(
580
653
  function <span class="fstat-no" title="function not covered" >getProjectInfo(</span>
581
654
  sourceFile: string,
582
655
  platform: AllPlatforms
583
- ): ProjectInfo {
656
+ ): ProjectInfo | undefined {
584
657
  const root = <span class="cstat-no" title="statement not covered" >findProjectRoot(sourceFile);</span>
585
658
  <span class="cstat-no" title="statement not covered" > projects[root] ||= {};</span>
586
659
  &nbsp;
587
- let info = <span class="cstat-no" title="statement not covered" >projects[root][platform];</span>
588
- <span class="cstat-no" title="statement not covered" > if (!info) {</span>
589
- <span class="cstat-no" title="statement not covered" > info = createProjectInfo(root, platform);</span>
590
- <span class="cstat-no" title="statement not covered" > projects[root][platform] = info;</span>
660
+ const platforms = <span class="cstat-no" title="statement not covered" >projects[root];</span>
661
+ &nbsp;
662
+ // Have we seen the project/platform for this source file before,
663
+ // even if what we saw is 'undefined' (e.g. not a TS project)?
664
+ <span class="cstat-no" title="statement not covered" > if (Object.prototype.hasOwnProperty.call(platforms, platform)) {</span>
665
+ <span class="cstat-no" title="statement not covered" > return platforms[platform];</span>
591
666
  }
667
+ &nbsp;
668
+ // We haven't seen this project/platform before. Try to load it,
669
+ // even if it isn't a TS project. Cache the result so we don't
670
+ // do this again.
671
+ const info = <span class="cstat-no" title="statement not covered" >createProjectInfo(root, platform);</span>
672
+ <span class="cstat-no" title="statement not covered" > platforms[platform] = info;</span>
592
673
  <span class="cstat-no" title="statement not covered" > return info;</span>
593
674
  }
594
675
  &nbsp;
@@ -616,7 +697,7 @@ export function createProjectCache(
616
697
  <div class='footer quiet pad2 space-top1 center small'>
617
698
  Code coverage generated by
618
699
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
619
- at Tue May 10 2022 07:45:57 GMT+0000 (Coordinated Universal Time)
700
+ at Fri May 13 2022 10:52:50 GMT+0000 (Coordinated Universal Time)
620
701
  </div>
621
702
  <script src="../../prettify.js"></script>
622
703
  <script>