@rnx-kit/cli 0.12.4 → 0.12.5
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 +6 -0
- package/coverage/clover.xml +82 -73
- package/coverage/coverage-final.json +2 -2
- package/coverage/lcov-report/index.html +22 -22
- 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/copy-assets.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +16 -16
- package/coverage/lcov-report/src/metro-config.ts.html +40 -22
- package/coverage/lcov-report/src/typescript/index.html +13 -13
- package/coverage/lcov-report/src/typescript/project-cache.ts.html +97 -16
- package/coverage/lcov.info +133 -116
- package/lib/metro-config.d.ts.map +1 -1
- package/lib/metro-config.js +17 -8
- package/lib/metro-config.js.map +1 -1
- package/lib/typescript/project-cache.d.ts +1 -1
- package/lib/typescript/project-cache.d.ts.map +1 -1
- package/lib/typescript/project-cache.js +26 -4
- package/lib/typescript/project-cache.js.map +1 -1
- package/package.json +1 -1
- package/src/metro-config.ts +17 -11
- package/src/typescript/project-cache.ts +35 -8
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">7.84% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>4/
|
|
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/
|
|
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">
|
|
47
|
+
<span class="strong">8.16% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>4/
|
|
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
|
|
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"> </span>
|
|
276
|
+
<span class="cline-any cline-neutral"> </span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
279
|
+
<span class="cline-any cline-neutral"> </span>
|
|
249
280
|
<span class="cline-any cline-neutral"> </span>
|
|
250
281
|
<span class="cline-any cline-neutral"> </span>
|
|
251
282
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -333,6 +364,17 @@
|
|
|
333
364
|
<span class="cline-any cline-neutral"> </span>
|
|
334
365
|
<span class="cline-any cline-neutral"> </span>
|
|
335
366
|
<span class="cline-any cline-no"> </span>
|
|
367
|
+
<span class="cline-any cline-no"> </span>
|
|
368
|
+
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
373
|
+
<span class="cline-any cline-neutral"> </span>
|
|
374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
375
|
+
<span class="cline-any cline-neutral"> </span>
|
|
376
|
+
<span class="cline-any cline-no"> </span>
|
|
377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
378
|
<span class="cline-any cline-neutral"> </span>
|
|
337
379
|
<span class="cline-any cline-no"> </span>
|
|
338
380
|
<span class="cline-any cline-no"> </span>
|
|
@@ -352,6 +394,10 @@
|
|
|
352
394
|
<span class="cline-any cline-neutral"> </span>
|
|
353
395
|
<span class="cline-any cline-neutral"> </span>
|
|
354
396
|
<span class="cline-any cline-no"> </span>
|
|
397
|
+
<span class="cline-any cline-no"> </span>
|
|
398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
399
|
+
<span class="cline-any cline-no"> </span>
|
|
400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
355
401
|
<span class="cline-any cline-neutral"> </span>
|
|
356
402
|
<span class="cline-any cline-neutral"> </span>
|
|
357
403
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -403,11 +449,19 @@
|
|
|
403
449
|
<span class="cline-any cline-no"> </span>
|
|
404
450
|
<span class="cline-any cline-neutral"> </span>
|
|
405
451
|
<span class="cline-any cline-no"> </span>
|
|
452
|
+
<span class="cline-any cline-neutral"> </span>
|
|
453
|
+
<span class="cline-any cline-neutral"> </span>
|
|
454
|
+
<span class="cline-any cline-neutral"> </span>
|
|
406
455
|
<span class="cline-any cline-no"> </span>
|
|
407
456
|
<span class="cline-any cline-no"> </span>
|
|
408
|
-
<span class="cline-any cline-
|
|
457
|
+
<span class="cline-any cline-neutral"> </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>
|
|
409
461
|
<span class="cline-any cline-neutral"> </span>
|
|
410
462
|
<span class="cline-any cline-no"> </span>
|
|
463
|
+
<span class="cline-any cline-no"> </span>
|
|
464
|
+
<span class="cline-any cline-no"> </span>
|
|
411
465
|
<span class="cline-any cline-neutral"> </span>
|
|
412
466
|
<span class="cline-any cline-neutral"> </span>
|
|
413
467
|
<span class="cline-any cline-neutral"> </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
|
|
|
@@ -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(
|
|
531
|
+
getProjectInfo(
|
|
532
|
+
sourceFile: string,
|
|
533
|
+
platform: AllPlatforms
|
|
534
|
+
): ProjectInfo | undefined;
|
|
477
535
|
}
|
|
478
536
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
660
|
+
const platforms = <span class="cstat-no" title="statement not covered" >projects[root];</span>
|
|
661
|
+
|
|
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
|
+
|
|
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
|
|
|
@@ -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 Thu May 12 2022
|
|
700
|
+
at Thu May 12 2022 19:21:06 GMT+0000 (Coordinated Universal Time)
|
|
620
701
|
</div>
|
|
621
702
|
<script src="../../prettify.js"></script>
|
|
622
703
|
<script>
|
package/coverage/lcov.info
CHANGED
|
@@ -291,11 +291,11 @@ FN:37,(anonymous_1)
|
|
|
291
291
|
FN:39,(anonymous_2)
|
|
292
292
|
FN:53,(anonymous_3)
|
|
293
293
|
FN:58,(anonymous_4)
|
|
294
|
-
FN:
|
|
295
|
-
FN:
|
|
296
|
-
FN:
|
|
297
|
-
FN:
|
|
298
|
-
FN:
|
|
294
|
+
FN:68,(anonymous_5)
|
|
295
|
+
FN:79,(anonymous_6)
|
|
296
|
+
FN:91,(anonymous_7)
|
|
297
|
+
FN:107,(anonymous_8)
|
|
298
|
+
FN:120,customizeMetroConfig
|
|
299
299
|
FNF:10
|
|
300
300
|
FNH:2
|
|
301
301
|
FNDA:6,createSerializerHook
|
|
@@ -321,77 +321,85 @@ DA:53,0
|
|
|
321
321
|
DA:56,0
|
|
322
322
|
DA:58,0
|
|
323
323
|
DA:61,0
|
|
324
|
-
DA:66,0
|
|
325
324
|
DA:67,0
|
|
326
325
|
DA:68,0
|
|
326
|
+
DA:69,0
|
|
327
|
+
DA:70,0
|
|
327
328
|
DA:72,0
|
|
328
329
|
DA:73,0
|
|
329
330
|
DA:74,0
|
|
330
|
-
DA:
|
|
331
|
-
DA:78,0
|
|
331
|
+
DA:75,0
|
|
332
332
|
DA:79,0
|
|
333
333
|
DA:80,0
|
|
334
|
+
DA:81,0
|
|
335
|
+
DA:83,0
|
|
334
336
|
DA:84,0
|
|
335
337
|
DA:85,0
|
|
336
|
-
DA:
|
|
337
|
-
DA:87,0
|
|
338
|
+
DA:90,0
|
|
338
339
|
DA:91,0
|
|
340
|
+
DA:92,0
|
|
339
341
|
DA:93,0
|
|
340
|
-
DA:
|
|
341
|
-
DA:
|
|
342
|
-
DA:
|
|
343
|
-
DA:
|
|
344
|
-
DA:
|
|
345
|
-
DA:127,1
|
|
346
|
-
DA:128,5
|
|
347
|
-
DA:129,2
|
|
342
|
+
DA:97,0
|
|
343
|
+
DA:99,0
|
|
344
|
+
DA:104,6
|
|
345
|
+
DA:107,2
|
|
346
|
+
DA:129,6
|
|
348
347
|
DA:131,6
|
|
349
|
-
DA:132,
|
|
350
|
-
DA:133,
|
|
351
|
-
DA:134,
|
|
348
|
+
DA:132,6
|
|
349
|
+
DA:133,1
|
|
350
|
+
DA:134,5
|
|
351
|
+
DA:135,2
|
|
352
352
|
DA:137,6
|
|
353
353
|
DA:138,1
|
|
354
|
-
DA:139,
|
|
355
|
-
DA:140,
|
|
356
|
-
DA:
|
|
357
|
-
DA:
|
|
358
|
-
DA:
|
|
359
|
-
DA:
|
|
360
|
-
DA:
|
|
361
|
-
DA:161,
|
|
362
|
-
DA:162,6
|
|
354
|
+
DA:139,5
|
|
355
|
+
DA:140,2
|
|
356
|
+
DA:143,6
|
|
357
|
+
DA:144,1
|
|
358
|
+
DA:145,1
|
|
359
|
+
DA:146,5
|
|
360
|
+
DA:157,4
|
|
361
|
+
DA:161,1
|
|
363
362
|
DA:164,6
|
|
364
|
-
|
|
363
|
+
DA:165,6
|
|
364
|
+
DA:166,0
|
|
365
|
+
DA:167,6
|
|
366
|
+
DA:168,6
|
|
367
|
+
DA:170,6
|
|
368
|
+
LF:57
|
|
365
369
|
LH:27
|
|
366
370
|
BRDA:41,0,0,0
|
|
367
371
|
BRDA:41,0,1,0
|
|
368
372
|
BRDA:42,1,0,0
|
|
369
373
|
BRDA:42,1,1,0
|
|
370
|
-
BRDA:
|
|
371
|
-
BRDA:
|
|
372
|
-
BRDA:
|
|
373
|
-
BRDA:
|
|
374
|
-
BRDA:
|
|
375
|
-
BRDA:
|
|
376
|
-
BRDA:
|
|
377
|
-
BRDA:
|
|
378
|
-
BRDA:
|
|
379
|
-
BRDA:
|
|
380
|
-
BRDA:
|
|
381
|
-
BRDA:
|
|
382
|
-
BRDA:
|
|
383
|
-
BRDA:
|
|
384
|
-
BRDA:
|
|
385
|
-
BRDA:
|
|
374
|
+
BRDA:70,2,0,0
|
|
375
|
+
BRDA:70,2,1,0
|
|
376
|
+
BRDA:73,3,0,0
|
|
377
|
+
BRDA:73,3,1,0
|
|
378
|
+
BRDA:81,4,0,0
|
|
379
|
+
BRDA:81,4,1,0
|
|
380
|
+
BRDA:92,5,0,0
|
|
381
|
+
BRDA:92,5,1,0
|
|
382
|
+
BRDA:97,6,0,0
|
|
383
|
+
BRDA:97,6,1,0
|
|
384
|
+
BRDA:97,7,0,0
|
|
385
|
+
BRDA:97,7,1,0
|
|
386
|
+
BRDA:132,8,0,1
|
|
387
|
+
BRDA:132,8,1,5
|
|
388
|
+
BRDA:134,9,0,2
|
|
389
|
+
BRDA:134,9,1,3
|
|
386
390
|
BRDA:137,10,0,1
|
|
387
391
|
BRDA:137,10,1,5
|
|
388
|
-
BRDA:
|
|
389
|
-
BRDA:
|
|
390
|
-
BRDA:
|
|
391
|
-
BRDA:
|
|
392
|
-
BRDA:
|
|
393
|
-
BRDA:
|
|
394
|
-
|
|
392
|
+
BRDA:139,11,0,2
|
|
393
|
+
BRDA:139,11,1,3
|
|
394
|
+
BRDA:143,12,0,1
|
|
395
|
+
BRDA:143,12,1,5
|
|
396
|
+
BRDA:146,13,0,4
|
|
397
|
+
BRDA:146,13,1,1
|
|
398
|
+
BRDA:165,14,0,0
|
|
399
|
+
BRDA:165,14,1,6
|
|
400
|
+
BRDA:167,15,0,6
|
|
401
|
+
BRDA:167,15,1,0
|
|
402
|
+
BRF:32
|
|
395
403
|
BRH:14
|
|
396
404
|
end_of_record
|
|
397
405
|
TN:
|
|
@@ -512,16 +520,16 @@ BRH:2
|
|
|
512
520
|
end_of_record
|
|
513
521
|
TN:
|
|
514
522
|
SF:src/typescript/project-cache.ts
|
|
515
|
-
FN:
|
|
516
|
-
FN:
|
|
517
|
-
FN:
|
|
518
|
-
FN:
|
|
519
|
-
FN:
|
|
520
|
-
FN:
|
|
521
|
-
FN:
|
|
522
|
-
FN:
|
|
523
|
-
FN:
|
|
524
|
-
FN:
|
|
523
|
+
FN:60,createProjectCache
|
|
524
|
+
FN:72,findProjectRoot
|
|
525
|
+
FN:91,readTSConfig
|
|
526
|
+
FN:110,(anonymous_3)
|
|
527
|
+
FN:117,createProjectInfo
|
|
528
|
+
FN:138,(anonymous_5)
|
|
529
|
+
FN:142,(anonymous_6)
|
|
530
|
+
FN:170,getProjectInfo
|
|
531
|
+
FN:193,clearPlatform
|
|
532
|
+
FN:194,(anonymous_9)
|
|
525
533
|
FNF:10
|
|
526
534
|
FNH:1
|
|
527
535
|
FNDA:6,createProjectCache
|
|
@@ -534,66 +542,75 @@ FNDA:0,(anonymous_6)
|
|
|
534
542
|
FNDA:0,getProjectInfo
|
|
535
543
|
FNDA:0,clearPlatform
|
|
536
544
|
FNDA:0,(anonymous_9)
|
|
537
|
-
DA:
|
|
538
|
-
DA:
|
|
539
|
-
DA:
|
|
540
|
-
DA:
|
|
541
|
-
DA:
|
|
542
|
-
DA:
|
|
543
|
-
DA:
|
|
544
|
-
DA:
|
|
545
|
-
DA:
|
|
546
|
-
DA:84,0
|
|
545
|
+
DA:63,6
|
|
546
|
+
DA:64,6
|
|
547
|
+
DA:70,6
|
|
548
|
+
DA:74,0
|
|
549
|
+
DA:75,0
|
|
550
|
+
DA:76,0
|
|
551
|
+
DA:81,0
|
|
552
|
+
DA:82,0
|
|
553
|
+
DA:83,0
|
|
547
554
|
DA:88,0
|
|
548
|
-
DA:90,0
|
|
549
|
-
DA:91,0
|
|
550
555
|
DA:92,0
|
|
551
556
|
DA:93,0
|
|
552
|
-
DA:
|
|
553
|
-
DA:
|
|
554
|
-
DA:
|
|
555
|
-
DA:99,0
|
|
557
|
+
DA:102,0
|
|
558
|
+
DA:105,0
|
|
559
|
+
DA:106,0
|
|
556
560
|
DA:107,0
|
|
557
|
-
DA:
|
|
558
|
-
DA:
|
|
561
|
+
DA:108,0
|
|
562
|
+
DA:109,0
|
|
563
|
+
DA:110,0
|
|
564
|
+
DA:111,0
|
|
565
|
+
DA:114,0
|
|
566
|
+
DA:122,0
|
|
559
567
|
DA:123,0
|
|
560
|
-
DA:124,0
|
|
561
568
|
DA:125,0
|
|
562
|
-
DA:
|
|
563
|
-
DA:127,0
|
|
564
|
-
DA:128,0
|
|
569
|
+
DA:137,0
|
|
565
570
|
DA:138,0
|
|
571
|
+
DA:142,0
|
|
572
|
+
DA:143,0
|
|
573
|
+
DA:144,0
|
|
566
574
|
DA:145,0
|
|
567
|
-
DA:
|
|
568
|
-
DA:
|
|
569
|
-
DA:
|
|
570
|
-
DA:
|
|
571
|
-
DA:
|
|
572
|
-
DA:
|
|
573
|
-
DA:
|
|
574
|
-
DA:
|
|
575
|
-
DA:
|
|
576
|
-
DA:
|
|
577
|
-
DA:
|
|
578
|
-
DA:
|
|
579
|
-
DA:
|
|
580
|
-
DA:
|
|
581
|
-
|
|
575
|
+
DA:146,0
|
|
576
|
+
DA:147,0
|
|
577
|
+
DA:157,0
|
|
578
|
+
DA:164,0
|
|
579
|
+
DA:174,0
|
|
580
|
+
DA:175,0
|
|
581
|
+
DA:177,0
|
|
582
|
+
DA:181,0
|
|
583
|
+
DA:182,0
|
|
584
|
+
DA:188,0
|
|
585
|
+
DA:189,0
|
|
586
|
+
DA:190,0
|
|
587
|
+
DA:194,0
|
|
588
|
+
DA:195,0
|
|
589
|
+
DA:196,0
|
|
590
|
+
DA:197,0
|
|
591
|
+
DA:198,0
|
|
592
|
+
DA:200,0
|
|
593
|
+
DA:205,6
|
|
594
|
+
LF:49
|
|
582
595
|
LH:4
|
|
583
|
-
BRDA:
|
|
584
|
-
BRDA:
|
|
585
|
-
BRDA:
|
|
586
|
-
BRDA:
|
|
587
|
-
BRDA:
|
|
588
|
-
BRDA:
|
|
589
|
-
BRDA:
|
|
590
|
-
BRDA:
|
|
591
|
-
BRDA:
|
|
592
|
-
BRDA:
|
|
593
|
-
BRDA:
|
|
594
|
-
BRDA:
|
|
595
|
-
BRDA:
|
|
596
|
-
BRDA:
|
|
597
|
-
|
|
596
|
+
BRDA:75,0,0,0
|
|
597
|
+
BRDA:75,0,1,0
|
|
598
|
+
BRDA:82,1,0,0
|
|
599
|
+
BRDA:82,1,1,0
|
|
600
|
+
BRDA:93,2,0,0
|
|
601
|
+
BRDA:93,2,1,0
|
|
602
|
+
BRDA:106,3,0,0
|
|
603
|
+
BRDA:106,3,1,0
|
|
604
|
+
BRDA:108,4,0,0
|
|
605
|
+
BRDA:108,4,1,0
|
|
606
|
+
BRDA:123,5,0,0
|
|
607
|
+
BRDA:123,5,1,0
|
|
608
|
+
BRDA:181,6,0,0
|
|
609
|
+
BRDA:181,6,1,0
|
|
610
|
+
BRDA:196,7,0,0
|
|
611
|
+
BRDA:196,7,1,0
|
|
612
|
+
BRDA:197,8,0,0
|
|
613
|
+
BRDA:197,8,1,0
|
|
614
|
+
BRF:18
|
|
598
615
|
BRH:0
|
|
599
616
|
end_of_record
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metro-config.d.ts","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,IAAI,qBAAqB,EACvC,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAEL,OAAO,IAAI,wBAAwB,EACpC,MAAM,0CAA0C,CAAC;AAUlD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"metro-config.d.ts","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,IAAI,qBAAqB,EACvC,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAEL,OAAO,IAAI,wBAAwB,EACpC,MAAM,0CAA0C,CAAC;AAUlD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,cAAc,CAAC;AA0FpE;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,mBAAmB,EAAE,YAAY,EACjC,wBAAwB,EAAE,OAAO,GAAG,qBAAqB,EACzD,2BAA2B,EAAE,OAAO,GAAG,wBAAwB,EAC/D,oBAAoB,EAAE,OAAO,GAAG,2BAA2B,EAC3D,SAAS,EAAE,OAAO,GACjB,IAAI,CA6CN"}
|
package/lib/metro-config.js
CHANGED
|
@@ -34,19 +34,28 @@ function createSerializerHook(options) {
|
|
|
34
34
|
const adds = Array.from(delta.added.values(), (module) => module.path).filter(excludeNodeModules);
|
|
35
35
|
const updates = Array.from(delta.modified.values(), (module) => module.path).filter(excludeNodeModules);
|
|
36
36
|
const deletes = Array.from(delta.deleted.values()).filter(excludeNodeModules);
|
|
37
|
-
//
|
|
37
|
+
// Try to map each file to a TypeScript project, and apply its delta operation.
|
|
38
|
+
// Some projects may not actually be TypeScript projects (ignore those).
|
|
38
39
|
const tsprojectsToValidate = new Set();
|
|
39
40
|
adds.concat(updates).forEach((sourceFile) => {
|
|
40
|
-
const
|
|
41
|
-
if (
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
const projectInfo = projectCache.getProjectInfo(sourceFile, platform);
|
|
42
|
+
if (projectInfo) {
|
|
43
|
+
// This is a TypeScript project. Validate it.
|
|
44
|
+
const { tsproject, tssourceFiles } = projectInfo;
|
|
45
|
+
if (tssourceFiles.has(sourceFile)) {
|
|
46
|
+
tsproject.setFile(sourceFile);
|
|
47
|
+
tsprojectsToValidate.add(tsproject);
|
|
48
|
+
}
|
|
44
49
|
}
|
|
45
50
|
});
|
|
46
51
|
deletes.forEach((sourceFile) => {
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
const projectInfo = projectCache.getProjectInfo(sourceFile, platform);
|
|
53
|
+
if (projectInfo) {
|
|
54
|
+
// This is a TypeScript project. Validate it.
|
|
55
|
+
const { tsproject } = projectInfo;
|
|
56
|
+
tsproject.removeFile(sourceFile);
|
|
57
|
+
tsprojectsToValidate.add(tsproject);
|
|
58
|
+
}
|
|
50
59
|
});
|
|
51
60
|
// Validate all projects which changed, printing all type errors.
|
|
52
61
|
let isValid = true;
|
package/lib/metro-config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":";;;AAAA,kHAG4D;AAC5D,8FAGkD;AAClD,gEAAyE;AACzE,gFAG2C;AAI3C,8DAAgE;AAMhE;;;;;;;;;GASG;AACH,SAAS,oBAAoB,CAAC,OAAoC;IAChE,MAAM,YAAY,GAAG,IAAA,kCAAkB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEvD,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;IACpD,MAAM,kBAAkB,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,CAAC,KAAY,EAAE,KAAkB,EAAQ,EAAE;QACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,QAAwB,CAAC;QACjE,IAAI,QAAQ,EAAE;YACZ,IAAI,KAAK,CAAC,KAAK,EAAE;gBACf,oEAAoE;gBACpE,oEAAoE;gBACpE,gCAAgC;gBAChC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aACtC;YAED,uEAAuE;YACvE,8DAA8D;YAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CACrB,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EACpB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CACxB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EACvB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CACxB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACvD,kBAAkB,CACnB,CAAC;YAEF,yEAAyE;YACzE,MAAM,oBAAoB,GAAiB,IAAI,GAAG,EAAE,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC1C,MAAM,
|
|
1
|
+
{"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":";;;AAAA,kHAG4D;AAC5D,8FAGkD;AAClD,gEAAyE;AACzE,gFAG2C;AAI3C,8DAAgE;AAMhE;;;;;;;;;GASG;AACH,SAAS,oBAAoB,CAAC,OAAoC;IAChE,MAAM,YAAY,GAAG,IAAA,kCAAkB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEvD,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;IACpD,MAAM,kBAAkB,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,CAAC,KAAY,EAAE,KAAkB,EAAQ,EAAE;QACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,QAAwB,CAAC;QACjE,IAAI,QAAQ,EAAE;YACZ,IAAI,KAAK,CAAC,KAAK,EAAE;gBACf,oEAAoE;gBACpE,oEAAoE;gBACpE,gCAAgC;gBAChC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aACtC;YAED,uEAAuE;YACvE,8DAA8D;YAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CACrB,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EACpB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CACxB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EACvB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CACxB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACvD,kBAAkB,CACnB,CAAC;YAEF,gFAAgF;YAChF,yEAAyE;YACzE,MAAM,oBAAoB,GAAiB,IAAI,GAAG,EAAE,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACtE,IAAI,WAAW,EAAE;oBACf,6CAA6C;oBAC7C,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;oBACjD,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;wBACjC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;wBAC9B,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;qBACrC;iBACF;YACH,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC7B,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACtE,IAAI,WAAW,EAAE;oBACf,6CAA6C;oBAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;oBAClC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBACjC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;iBACrC;YACH,CAAC,CAAC,CAAC;YAEH,kEAAkE;YAClE,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACjB,OAAO,GAAG,KAAK,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE;gBACpC,wEAAwE;gBACxE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;aAC3C;SACF;IACH,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,MAAa,EAAE,MAAmB,EAAQ,EAAE;IACvE,MAAM;AACR,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAgB,oBAAoB,CAClC,mBAAiC,EACjC,wBAAyD,EACzD,2BAA+D,EAC/D,oBAA2D,EAC3D,SAAkB;IAElB,uEAAuE;IACvE,qEAAqE;IACrE,MAAM,WAAW,GAAG,mBAAmC,CAAC;IAExD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,IAAI,OAAO,2BAA2B,KAAK,QAAQ,EAAE;QACnD,OAAO,CAAC,IAAI,CAAC,IAAA,uDAAqB,EAAC,2BAA2B,CAAC,CAAC,CAAC;KAClE;SAAM,IAAI,2BAA2B,KAAK,KAAK,EAAE;QAChD,OAAO,CAAC,IAAI,CAAC,IAAA,uDAAqB,GAAE,CAAC,CAAC;KACvC;IACD,IAAI,OAAO,wBAAwB,KAAK,QAAQ,EAAE;QAChD,OAAO,CAAC,IAAI,CAAC,IAAA,8DAAkB,EAAC,wBAAwB,CAAC,CAAC,CAAC;KAC5D;SAAM,IAAI,wBAAwB,KAAK,KAAK,EAAE;QAC7C,OAAO,CAAC,IAAI,CAAC,IAAA,8DAAkB,GAAE,CAAC,CAAC;KACpC;IAED,IAAI,SAAS,EAAE;QACb,WAAW,CAAC,UAAU,CAAC,gBAAgB,GAAG,IAAA,0CAAsB,EAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,mDAAwB,CAAC,CAAC;KAClE;SAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,qEAAqE;QACrE,oEAAoE;QACpE,gDAAgD;QAChD,EAAE;QACF,kEAAkE;QAClE,sEAAsE;QACtE,mCAAmC;QACnC,EAAE;QACF,kEAAkE;QAClE,wCAAwC;QACxC,WAAW,CAAC,UAAU,CAAC,gBAAgB,GAAG,IAAA,kCAAe,EACvD,OAAO,CACiC,CAAC;KAC5C;SAAM;QACL,OAAO,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC;KAChD;IAED,IAAI,IAAI,GAAG,mBAAmB,CAAC;IAC/B,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE;QAC5C,IAAI,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;KACnD;SAAM,IAAI,oBAAoB,KAAK,KAAK,EAAE;QACzC,IAAI,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;KACjC;IACD,WAAW,CAAC,UAAU,CAAC,0BAA0B,GAAG,IAAI,CAAC;AAC3D,CAAC;AAnDD,oDAmDC"}
|
|
@@ -30,7 +30,7 @@ export interface ProjectCache {
|
|
|
30
30
|
* @param sourceFile Source file
|
|
31
31
|
* @returns Project targeting the given platform and containing the given source file
|
|
32
32
|
*/
|
|
33
|
-
getProjectInfo(sourceFile: string, platform: AllPlatforms): ProjectInfo;
|
|
33
|
+
getProjectInfo(sourceFile: string, platform: AllPlatforms): ProjectInfo | undefined;
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Create an empty cache for holding TypeScript projects.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-cache.d.ts","sourceRoot":"","sources":["../../src/typescript/project-cache.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEb,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAEL,OAAO,EAER,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"project-cache.d.ts","sourceRoot":"","sources":["../../src/typescript/project-cache.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEb,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAEL,OAAO,EAER,MAAM,6BAA6B,CAAC;AAKrC,oBAAY,WAAW,GAAG;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAE5C;;;;;;;OAOG;IACH,cAAc,CACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,YAAY,GACrB,WAAW,GAAG,SAAS,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,YAAY,CAmJd"}
|
|
@@ -8,6 +8,7 @@ const tools_node_1 = require("@rnx-kit/tools-node");
|
|
|
8
8
|
const platform_1 = require("@rnx-kit/tools-react-native/platform");
|
|
9
9
|
const typescript_react_native_resolver_1 = require("@rnx-kit/typescript-react-native-resolver");
|
|
10
10
|
const typescript_service_1 = require("@rnx-kit/typescript-service");
|
|
11
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
12
|
const path_1 = __importDefault(require("path"));
|
|
12
13
|
const typescript_1 = __importDefault(require("typescript"));
|
|
13
14
|
/**
|
|
@@ -37,6 +38,17 @@ function createProjectCache(print) {
|
|
|
37
38
|
}
|
|
38
39
|
function readTSConfig(root) {
|
|
39
40
|
const configFileName = path_1.default.join(root, "tsconfig.json");
|
|
41
|
+
if (!fs_1.default.existsSync(configFileName)) {
|
|
42
|
+
// Allow for packages that aren't TypeScript.
|
|
43
|
+
//
|
|
44
|
+
// Example: Users who enable bundling with all the config defaults will
|
|
45
|
+
// have type validation enabled automatically. They may not actually be
|
|
46
|
+
// using TypeScript.
|
|
47
|
+
//
|
|
48
|
+
// We shouldn't break them. We should use TS validation only for TS packages.
|
|
49
|
+
//
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
40
52
|
const cmdLine = (0, typescript_service_1.readConfigFile)(configFileName);
|
|
41
53
|
if (!cmdLine) {
|
|
42
54
|
throw new Error(`Failed to load '${configFileName}'`);
|
|
@@ -51,6 +63,10 @@ function createProjectCache(print) {
|
|
|
51
63
|
function createProjectInfo(root, platform) {
|
|
52
64
|
// Load the TypeScript configuration file for this project.
|
|
53
65
|
const cmdLine = readTSConfig(root);
|
|
66
|
+
if (!cmdLine) {
|
|
67
|
+
// Not a TypeScript project
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
54
70
|
// Trim down the list of source files found by TypeScript. This ensures
|
|
55
71
|
// that only explicitly added files are loaded and parsed by TypeScript.
|
|
56
72
|
// This is a perf optimization. We don't want to spend cycles on files
|
|
@@ -87,11 +103,17 @@ function createProjectCache(print) {
|
|
|
87
103
|
function getProjectInfo(sourceFile, platform) {
|
|
88
104
|
const root = findProjectRoot(sourceFile);
|
|
89
105
|
projects[root] || (projects[root] = {});
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
106
|
+
const platforms = projects[root];
|
|
107
|
+
// Have we seen the project/platform for this source file before,
|
|
108
|
+
// even if what we saw is 'undefined' (e.g. not a TS project)?
|
|
109
|
+
if (Object.prototype.hasOwnProperty.call(platforms, platform)) {
|
|
110
|
+
return platforms[platform];
|
|
94
111
|
}
|
|
112
|
+
// We haven't seen this project/platform before. Try to load it,
|
|
113
|
+
// even if it isn't a TS project. Cache the result so we don't
|
|
114
|
+
// do this again.
|
|
115
|
+
const info = createProjectInfo(root, platform);
|
|
116
|
+
platforms[platform] = info;
|
|
95
117
|
return info;
|
|
96
118
|
}
|
|
97
119
|
function clearPlatform(platform) {
|