@rnx-kit/cli 0.15.3 → 0.16.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +32 -20
  3. package/coverage/clover.xml +81 -32
  4. package/coverage/coverage-final.json +3 -3
  5. package/coverage/lcov-report/index.html +23 -23
  6. package/coverage/lcov-report/src/bundle/defaultPlugins.ts.html +31 -13
  7. package/coverage/lcov-report/src/bundle/index.html +9 -9
  8. package/coverage/lcov-report/src/bundle/kit-config.ts.html +1 -1
  9. package/coverage/lcov-report/src/bundle/metro.ts.html +14 -5
  10. package/coverage/lcov-report/src/bundle/overrides.ts.html +1 -1
  11. package/coverage/lcov-report/src/copy-assets.ts.html +1 -1
  12. package/coverage/lcov-report/src/index.html +20 -20
  13. package/coverage/lcov-report/src/metro-config.ts.html +430 -46
  14. package/coverage/lcov.info +138 -51
  15. package/lib/bundle/defaultPlugins.d.ts +4 -2
  16. package/lib/bundle/defaultPlugins.d.ts.map +1 -1
  17. package/lib/bundle/defaultPlugins.js +9 -6
  18. package/lib/bundle/defaultPlugins.js.map +1 -1
  19. package/lib/bundle/metro.d.ts.map +1 -1
  20. package/lib/bundle/metro.js +4 -1
  21. package/lib/bundle/metro.js.map +1 -1
  22. package/lib/bundle/types.d.ts +1 -1
  23. package/lib/bundle/types.d.ts.map +1 -1
  24. package/lib/metro-config.d.ts +5 -3
  25. package/lib/metro-config.d.ts.map +1 -1
  26. package/lib/metro-config.js +122 -21
  27. package/lib/metro-config.js.map +1 -1
  28. package/lib/serve/kit-config.d.ts +7 -3
  29. package/lib/serve/kit-config.d.ts.map +1 -1
  30. package/lib/serve/kit-config.js +1 -1
  31. package/lib/serve/kit-config.js.map +1 -1
  32. package/package.json +7 -11
  33. package/src/bundle/defaultPlugins.ts +14 -8
  34. package/src/bundle/metro.ts +4 -1
  35. package/src/bundle/types.ts +1 -3
  36. package/src/metro-config.ts +154 -26
  37. package/src/serve/kit-config.ts +8 -5
  38. package/src/start.ts +1 -1
  39. package/test/bundle/kit-config.test.ts +25 -15
  40. package/test/bundle/metro.test.ts +10 -11
  41. package/test/bundle/overrides.test.ts +5 -4
  42. package/test/metro-config.test.ts +71 -32
@@ -290,54 +290,139 @@ BRH:45
290
290
  end_of_record
291
291
  TN:
292
292
  SF:src/metro-config.ts
293
- FN:20,customizeMetroConfig
294
- FNF:1
295
- FNH:1
293
+ FN:24,resolvePlugin
294
+ FN:32,importPlugin
295
+ FN:37,readLegacyOptions
296
+ FN:71,(anonymous_3)
297
+ FN:97,customizeMetroConfig
298
+ FN:190,(anonymous_5)
299
+ FNF:6
300
+ FNH:4
301
+ FNDA:21,resolvePlugin
302
+ FNDA:21,importPlugin
303
+ FNDA:10,readLegacyOptions
304
+ FNDA:0,(anonymous_3)
296
305
  FNDA:10,customizeMetroConfig
297
- DA:32,10
298
- DA:34,10
299
- DA:35,10
300
- DA:36,1
301
- DA:37,9
302
- DA:38,5
303
- DA:40,10
304
- DA:41,1
305
- DA:42,9
306
- DA:43,5
307
- DA:46,10
308
- DA:47,4
309
- DA:48,4
310
- DA:49,6
311
- DA:60,4
312
- DA:64,2
313
- DA:67,10
314
- DA:68,10
315
- LF:18
316
- LH:18
317
- BRDA:35,0,0,1
318
- BRDA:35,0,1,9
319
- BRDA:37,1,0,5
320
- BRDA:37,1,1,4
321
- BRDA:40,2,0,1
322
- BRDA:40,2,1,9
323
- BRDA:42,3,0,5
324
- BRDA:42,3,1,4
325
- BRDA:46,4,0,4
326
- BRDA:46,4,1,6
327
- BRDA:49,5,0,4
328
- BRDA:49,5,1,2
329
- BRF:12
330
- BRH:12
306
+ FNDA:0,(anonymous_5)
307
+ DA:25,21
308
+ DA:26,21
309
+ DA:28,0
310
+ DA:33,21
311
+ DA:34,21
312
+ DA:42,10
313
+ DA:43,10
314
+ DA:45,10
315
+ DA:46,0
316
+ DA:47,0
317
+ DA:50,10
318
+ DA:51,0
319
+ DA:52,0
320
+ DA:55,10
321
+ DA:56,0
322
+ DA:57,0
323
+ DA:61,10
324
+ DA:62,10
325
+ DA:65,0
326
+ DA:72,0
327
+ DA:73,0
328
+ DA:76,0
329
+ DA:78,0
330
+ DA:104,10
331
+ DA:106,10
332
+ DA:110,10
333
+ DA:112,10
334
+ DA:113,10
335
+ DA:114,0
336
+ DA:120,0
337
+ DA:122,0
338
+ DA:123,0
339
+ DA:124,0
340
+ DA:125,0
341
+ DA:128,0
342
+ DA:129,0
343
+ DA:130,0
344
+ DA:131,0
345
+ DA:134,0
346
+ DA:135,0
347
+ DA:136,0
348
+ DA:139,10
349
+ DA:140,10
350
+ DA:141,21
351
+ DA:144,21
352
+ DA:145,21
353
+ DA:147,12
354
+ DA:148,12
355
+ DA:151,9
356
+ DA:152,9
357
+ DA:155,0
358
+ DA:160,10
359
+ DA:161,1
360
+ DA:163,1
361
+ DA:164,9
362
+ DA:175,7
363
+ DA:179,2
364
+ DA:182,10
365
+ DA:183,10
366
+ DA:185,1
367
+ DA:187,9
368
+ DA:188,9
369
+ DA:190,0
370
+ DA:191,0
371
+ DA:192,0
372
+ DA:195,0
373
+ LF:66
374
+ LH:36
375
+ BRDA:34,0,0,21
376
+ BRDA:34,0,1,6
377
+ BRDA:45,1,0,0
378
+ BRDA:45,1,1,10
379
+ BRDA:50,2,0,0
380
+ BRDA:50,2,1,10
381
+ BRDA:55,3,0,0
382
+ BRDA:55,3,1,10
383
+ BRDA:61,4,0,10
384
+ BRDA:61,4,1,0
385
+ BRDA:72,5,0,0
386
+ BRDA:72,5,1,0
387
+ BRDA:113,6,0,0
388
+ BRDA:113,6,1,10
389
+ BRDA:122,7,0,0
390
+ BRDA:122,7,1,0
391
+ BRDA:124,8,0,0
392
+ BRDA:124,8,1,0
393
+ BRDA:128,9,0,0
394
+ BRDA:128,9,1,0
395
+ BRDA:130,10,0,0
396
+ BRDA:130,10,1,0
397
+ BRDA:134,11,0,0
398
+ BRDA:134,11,1,0
399
+ BRDA:139,12,0,10
400
+ BRDA:139,12,1,1
401
+ BRDA:141,13,0,2
402
+ BRDA:141,13,1,19
403
+ BRDA:145,14,0,12
404
+ BRDA:145,14,1,9
405
+ BRDA:145,14,2,0
406
+ BRDA:160,15,0,1
407
+ BRDA:160,15,1,9
408
+ BRDA:164,16,0,7
409
+ BRDA:164,16,1,2
410
+ BRDA:183,17,0,1
411
+ BRDA:183,17,1,9
412
+ BRDA:183,17,2,0
413
+ BRF:38
414
+ BRH:19
331
415
  end_of_record
332
416
  TN:
333
417
  SF:src/bundle/defaultPlugins.ts
334
- FN:3,getDefaultBundlerPlugins
418
+ FN:14,getDefaultBundlerPlugins
335
419
  FNF:1
336
420
  FNH:1
337
- FNDA:10,getDefaultBundlerPlugins
338
- DA:4,10
339
- LF:1
340
- LH:1
421
+ FNDA:11,getDefaultBundlerPlugins
422
+ DA:5,3
423
+ DA:15,11
424
+ LF:2
425
+ LH:2
341
426
  BRF:0
342
427
  BRH:0
343
428
  end_of_record
@@ -394,20 +479,22 @@ FNH:1
394
479
  FNDA:4,metroBundle
395
480
  DA:29,4
396
481
  DA:31,4
397
- DA:33,4
398
- DA:40,4
399
- DA:41,4
482
+ DA:36,4
400
483
  DA:43,4
484
+ DA:44,4
401
485
  DA:46,4
486
+ DA:49,4
402
487
  LF:7
403
488
  LH:7
404
489
  BRDA:27,0,0,4
405
- BRDA:41,1,0,4
406
- BRDA:41,1,1,4
407
- BRDA:43,2,0,4
408
- BRDA:43,2,1,4
409
- BRF:5
410
- BRH:5
490
+ BRDA:33,1,0,4
491
+ BRDA:33,1,1,0
492
+ BRDA:44,2,0,4
493
+ BRDA:44,2,1,4
494
+ BRDA:46,3,0,4
495
+ BRDA:46,3,1,4
496
+ BRF:7
497
+ BRH:6
411
498
  end_of_record
412
499
  TN:
413
500
  SF:src/bundle/overrides.ts
@@ -1,3 +1,5 @@
1
- import type { BundlerPlugins } from "@rnx-kit/config";
2
- export declare function getDefaultBundlerPlugins(): Required<BundlerPlugins>;
1
+ import type { BundleParameters } from "@rnx-kit/config";
2
+ type DefaultPlugins = Pick<Required<BundleParameters>, "plugins" | "treeShake">;
3
+ export declare function getDefaultBundlerPlugins(): DefaultPlugins;
4
+ export {};
3
5
  //# sourceMappingURL=defaultPlugins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultPlugins.d.ts","sourceRoot":"","sources":["../../src/bundle/defaultPlugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,wBAAgB,wBAAwB,IAAI,QAAQ,CAAC,cAAc,CAAC,CAOnE"}
1
+ {"version":3,"file":"defaultPlugins.d.ts","sourceRoot":"","sources":["../../src/bundle/defaultPlugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC;AAWhF,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDefaultBundlerPlugins = void 0;
4
+ const defaultPlugins = {
5
+ plugins: [
6
+ "@rnx-kit/metro-plugin-cyclic-dependencies-detector",
7
+ "@rnx-kit/metro-plugin-duplicates-checker",
8
+ "@rnx-kit/metro-plugin-typescript",
9
+ ],
10
+ treeShake: false,
11
+ };
4
12
  function getDefaultBundlerPlugins() {
5
- return {
6
- detectCyclicDependencies: true,
7
- detectDuplicateDependencies: true,
8
- typescriptValidation: true,
9
- treeShake: false,
10
- };
13
+ return defaultPlugins;
11
14
  }
12
15
  exports.getDefaultBundlerPlugins = getDefaultBundlerPlugins;
13
16
  //# sourceMappingURL=defaultPlugins.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultPlugins.js","sourceRoot":"","sources":["../../src/bundle/defaultPlugins.ts"],"names":[],"mappings":";;;AAEA,SAAgB,wBAAwB;IACtC,OAAO;QACL,wBAAwB,EAAE,IAAI;QAC9B,2BAA2B,EAAE,IAAI;QACjC,oBAAoB,EAAE,IAAI;QAC1B,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AAPD,4DAOC"}
1
+ {"version":3,"file":"defaultPlugins.js","sourceRoot":"","sources":["../../src/bundle/defaultPlugins.ts"],"names":[],"mappings":";;;AAIA,MAAM,cAAc,GAAmB;IACrC,OAAO,EAAE;QACP,oDAAoD;QACpD,0CAA0C;QAC1C,kCAAkC;KACnC;IACD,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF,SAAgB,wBAAwB;IACtC,OAAO,cAAc,CAAC;AACxB,CAAC;AAFD,4DAEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"metro.d.ts","sourceRoot":"","sources":["../../src/bundle/metro.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,uBAAuB,EACrC,GAAG,EAAE,OAAO,EACZ,MAAM,CAAC,EAAE,OAAO,EAChB,MAAM,gBAAS,GACd,OAAO,CAAC,IAAI,CAAC,CAmBf"}
1
+ {"version":3,"file":"metro.d.ts","sourceRoot":"","sources":["../../src/bundle/metro.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,uBAAuB,EACrC,GAAG,EAAE,OAAO,EACZ,MAAM,CAAC,EAAE,OAAO,EAChB,MAAM,gBAAS,GACd,OAAO,CAAC,IAAI,CAAC,CAsBf"}
@@ -43,7 +43,10 @@ const metro_config_1 = require("../metro-config");
43
43
  */
44
44
  async function metroBundle(metroConfig, bundleConfig, dev, minify, output = metro_service_1.bundle) {
45
45
  (0, console_1.info)(`Bundling ${bundleConfig.platform}...`);
46
- (0, metro_config_1.customizeMetroConfig)(metroConfig, bundleConfig);
46
+ (0, metro_config_1.customizeMetroConfig)(metroConfig, {
47
+ ...bundleConfig,
48
+ treeShake: !dev && bundleConfig.treeShake,
49
+ });
47
50
  const metroBundleArgs = {
48
51
  ...bundleConfig,
49
52
  dev,
@@ -1 +1 @@
1
- {"version":3,"file":"metro.js","sourceRoot":"","sources":["../../src/bundle/metro.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwC;AAExC,0DAAgD;AAChD,+CAAyD;AAEzD,2CAA6B;AAC7B,kDAAuD;AAGvD;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,WAAW,CAC/B,WAAoB,EACpB,YAAqC,EACrC,GAAY,EACZ,MAAgB,EAChB,MAAM,GAAG,sBAAM;IAEf,IAAA,cAAI,EAAC,YAAY,YAAY,CAAC,QAAQ,KAAK,CAAC,CAAC;IAE7C,IAAA,mCAAoB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAEhD,MAAM,eAAe,GAAoB;QACvC,GAAG,YAAY;QACf,GAAG;QACH,MAAM;KACP,CAAC;IAEF,sCAAsC;IACtC,IAAA,oBAAe,EAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5D,eAAe,CAAC,eAAe;QAC7B,IAAA,oBAAe,EAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;IACjE,eAAe,CAAC,UAAU,IAAI,IAAA,oBAAe,EAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAE1E,oBAAoB;IACpB,MAAM,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC;AAzBD,kCAyBC"}
1
+ {"version":3,"file":"metro.js","sourceRoot":"","sources":["../../src/bundle/metro.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwC;AAExC,0DAAgD;AAChD,+CAAyD;AAEzD,2CAA6B;AAC7B,kDAAuD;AAGvD;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,WAAW,CAC/B,WAAoB,EACpB,YAAqC,EACrC,GAAY,EACZ,MAAgB,EAChB,MAAM,GAAG,sBAAM;IAEf,IAAA,cAAI,EAAC,YAAY,YAAY,CAAC,QAAQ,KAAK,CAAC,CAAC;IAE7C,IAAA,mCAAoB,EAAC,WAAW,EAAE;QAChC,GAAG,YAAY;QACf,SAAS,EAAE,CAAC,GAAG,IAAI,YAAY,CAAC,SAAS;KAC1C,CAAC,CAAC;IAEH,MAAM,eAAe,GAAoB;QACvC,GAAG,YAAY;QACf,GAAG;QACH,MAAM;KACP,CAAC;IAEF,sCAAsC;IACtC,IAAA,oBAAe,EAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5D,eAAe,CAAC,eAAe;QAC7B,IAAA,oBAAe,EAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;IACjE,eAAe,CAAC,UAAU,IAAI,IAAA,oBAAe,EAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAE1E,oBAAoB;IACpB,MAAM,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC;AA5BD,kCA4BC"}
@@ -19,7 +19,7 @@ export type CLICommonBundleOptions = {
19
19
  resetCache?: boolean;
20
20
  config?: string;
21
21
  };
22
- export type CliPlatformBundleConfig = BundleParameters & Required<Pick<BundleParameters, "entryFile" | "bundleOutput" | "sourcemapUseAbsolutePath" | "detectCyclicDependencies" | "detectDuplicateDependencies" | "typescriptValidation" | "treeShake">> & {
22
+ export type CliPlatformBundleConfig = BundleParameters & Required<Pick<BundleParameters, "entryFile" | "bundleOutput" | "sourcemapUseAbsolutePath" | "treeShake" | "plugins">> & {
23
23
  unstableTransformProfile?: TransformProfile;
24
24
  /**
25
25
  * Target platform for the bundle
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bundle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB,CAAC,EAAE,gBAAgB,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GACpD,QAAQ,CACN,IAAI,CACF,gBAAgB,EACd,WAAW,GACX,cAAc,GACd,0BAA0B,GAC1B,0BAA0B,GAC1B,6BAA6B,GAC7B,sBAAsB,GACtB,WAAW,CACd,CACF,GAAG;IACF,wBAAwB,CAAC,EAAE,gBAAgB,CAAC;IAE5C;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bundle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB,CAAC,EAAE,gBAAgB,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GACpD,QAAQ,CACN,IAAI,CACF,gBAAgB,EACd,WAAW,GACX,cAAc,GACd,0BAA0B,GAC1B,WAAW,GACX,SAAS,CACZ,CACF,GAAG;IACF,wBAAwB,CAAC,EAAE,gBAAgB,CAAC;IAE5C;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC"}
@@ -1,11 +1,13 @@
1
- import type { BundlerPlugins } from "@rnx-kit/config";
1
+ import type { BundleParameters } from "@rnx-kit/config";
2
2
  import type { InputConfigT } from "metro-config";
3
+ type MetroExtraParams = Pick<BundleParameters, "detectCyclicDependencies" | "detectDuplicateDependencies" | "typescriptValidation" | "plugins" | "treeShake">;
3
4
  /**
4
5
  * Customize the Metro configuration.
5
6
  *
6
7
  * @param metroConfigReadonly Metro configuration
7
- * @param bundlerPlugins Plugins used to further customize Metro configuration
8
+ * @param extraParams Parameters used to further customize Metro configuration
8
9
  * @param print Optional function to use when printing status messages to the Metro console
9
10
  */
10
- export declare function customizeMetroConfig(metroConfigReadonly: InputConfigT, { detectCyclicDependencies, detectDuplicateDependencies, treeShake, typescriptValidation, }: BundlerPlugins, print?: (message: string) => void): void;
11
+ export declare function customizeMetroConfig(metroConfigReadonly: InputConfigT, extraParams: MetroExtraParams, print?: (message: string) => void): void;
12
+ export {};
11
13
  //# sourceMappingURL=metro-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metro-config.d.ts","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAUtD,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,cAAc,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,mBAAmB,EAAE,YAAY,EACjC,EACE,wBAAwB,EACxB,2BAA2B,EAC3B,SAAS,EACT,oBAAoB,GACrB,EAAE,cAAc,EACjB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,IAAI,CAwCN"}
1
+ {"version":3,"file":"metro-config.d.ts","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAWxD,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,cAAc,CAAC;AAGpE,KAAK,gBAAgB,GAAG,IAAI,CAC1B,gBAAgB,EACd,0BAA0B,GAC1B,6BAA6B,GAC7B,sBAAsB,GACtB,SAAS,GACT,WAAW,CACd,CAAC;AAoEF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,mBAAmB,EAAE,YAAY,EACjC,WAAW,EAAE,gBAAgB,EAC7B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,IAAI,CAgGN"}
@@ -1,40 +1,128 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.customizeMetroConfig = void 0;
4
+ const console_1 = require("@rnx-kit/console");
4
5
  const metro_plugin_cyclic_dependencies_detector_1 = require("@rnx-kit/metro-plugin-cyclic-dependencies-detector");
5
6
  const metro_plugin_duplicates_checker_1 = require("@rnx-kit/metro-plugin-duplicates-checker");
6
7
  const metro_plugin_typescript_1 = require("@rnx-kit/metro-plugin-typescript");
7
8
  const metro_serializer_1 = require("@rnx-kit/metro-serializer");
8
9
  const metro_serializer_esbuild_1 = require("@rnx-kit/metro-serializer-esbuild");
10
+ const defaultPlugins_1 = require("./bundle/defaultPlugins");
11
+ function resolvePlugin(name) {
12
+ try {
13
+ return require.resolve(name);
14
+ }
15
+ catch (_) {
16
+ return require.resolve(name, { paths: [process.cwd()] });
17
+ }
18
+ }
19
+ function importPlugin(name) {
20
+ const plugin = require(resolvePlugin(name));
21
+ return plugin.default || plugin;
22
+ }
23
+ function readLegacyOptions({ detectCyclicDependencies, detectDuplicateDependencies, typescriptValidation, }) {
24
+ const oldOptions = [];
25
+ const deprecatedOptions = {};
26
+ if (detectCyclicDependencies) {
27
+ oldOptions.push("detectCyclicDependencies");
28
+ deprecatedOptions["@rnx-kit/metro-plugin-cyclic-dependencies-detector"] =
29
+ detectCyclicDependencies;
30
+ }
31
+ if (detectDuplicateDependencies) {
32
+ oldOptions.push("detectDuplicateDependencies");
33
+ deprecatedOptions["@rnx-kit/metro-plugin-duplicates-checker"] =
34
+ detectDuplicateDependencies;
35
+ }
36
+ if (typescriptValidation) {
37
+ oldOptions.push("typescriptValidation");
38
+ deprecatedOptions["@rnx-kit/metro-plugin-typescript"] =
39
+ typescriptValidation;
40
+ }
41
+ if (oldOptions.length === 0) {
42
+ return undefined;
43
+ }
44
+ return (`'${oldOptions.join("', '")}' have been replaced by a new 'plugins' ` +
45
+ "option. Below is an equivalent config:\n" +
46
+ "\n" +
47
+ ' "plugins": [\n' +
48
+ Object.entries(deprecatedOptions)
49
+ .map(([name, options]) => {
50
+ if (typeof options === "object") {
51
+ const json = JSON.stringify(options, null, 2)
52
+ .split("\n")
53
+ .join("\n ");
54
+ return ` ["${name}", ${json}]`;
55
+ }
56
+ else {
57
+ return ` "${name}"`;
58
+ }
59
+ })
60
+ .join(",\n") +
61
+ "\n" +
62
+ " ]\n" +
63
+ "\n" +
64
+ "For more details, see " +
65
+ "https://github.com/microsoft/rnx-kit/tree/main/packages/cli#readme");
66
+ }
9
67
  /**
10
68
  * Customize the Metro configuration.
11
69
  *
12
70
  * @param metroConfigReadonly Metro configuration
13
- * @param bundlerPlugins Plugins used to further customize Metro configuration
71
+ * @param extraParams Parameters used to further customize Metro configuration
14
72
  * @param print Optional function to use when printing status messages to the Metro console
15
73
  */
16
- function customizeMetroConfig(metroConfigReadonly, { detectCyclicDependencies, detectDuplicateDependencies, treeShake, typescriptValidation, }, print) {
17
- // We will be making changes to the Metro configuration. Coerce from a
18
- // type with readonly props to a type where the props are writeable.
74
+ function customizeMetroConfig(metroConfigReadonly, extraParams, print) {
75
+ // We will be making changes to the Metro configuration. Coerce from a type
76
+ // with readonly props to a type where the props are writeable.
19
77
  const metroConfig = metroConfigReadonly;
20
- const plugins = [];
21
- if (typeof detectDuplicateDependencies === "object") {
22
- plugins.push((0, metro_plugin_duplicates_checker_1.DuplicateDependencies)(detectDuplicateDependencies));
23
- }
24
- else if (detectDuplicateDependencies !== false) {
25
- plugins.push((0, metro_plugin_duplicates_checker_1.DuplicateDependencies)());
78
+ const metroPlugins = [];
79
+ const serializerHooks = {};
80
+ const legacyWarning = readLegacyOptions(extraParams);
81
+ if (legacyWarning) {
82
+ (0, console_1.warn)(legacyWarning);
83
+ const { detectCyclicDependencies, detectDuplicateDependencies, typescriptValidation, } = extraParams;
84
+ if (typeof detectDuplicateDependencies === "object") {
85
+ metroPlugins.push((0, metro_plugin_duplicates_checker_1.DuplicateDependencies)(detectDuplicateDependencies));
86
+ }
87
+ else if (detectDuplicateDependencies !== false) {
88
+ metroPlugins.push((0, metro_plugin_duplicates_checker_1.DuplicateDependencies)());
89
+ }
90
+ if (typeof detectCyclicDependencies === "object") {
91
+ metroPlugins.push((0, metro_plugin_cyclic_dependencies_detector_1.CyclicDependencies)(detectCyclicDependencies));
92
+ }
93
+ else if (detectCyclicDependencies !== false) {
94
+ metroPlugins.push((0, metro_plugin_cyclic_dependencies_detector_1.CyclicDependencies)());
95
+ }
96
+ if (typescriptValidation !== false) {
97
+ const plugin = (0, metro_plugin_typescript_1.TypeScriptPlugin)(typescriptValidation, print);
98
+ serializerHooks["@rnx-kit/metro-plugin-typescript"] = plugin;
99
+ }
26
100
  }
27
- if (typeof detectCyclicDependencies === "object") {
28
- plugins.push((0, metro_plugin_cyclic_dependencies_detector_1.CyclicDependencies)(detectCyclicDependencies));
29
- }
30
- else if (detectCyclicDependencies !== false) {
31
- plugins.push((0, metro_plugin_cyclic_dependencies_detector_1.CyclicDependencies)());
101
+ else {
102
+ const plugins = extraParams.plugins || (0, defaultPlugins_1.getDefaultBundlerPlugins)().plugins;
103
+ for (const entry of plugins) {
104
+ const [module, options] = Array.isArray(entry)
105
+ ? entry
106
+ : [entry, undefined];
107
+ const plugin = importPlugin(module);
108
+ switch (plugin.type) {
109
+ case "serializer":
110
+ metroPlugins.push(plugin(options));
111
+ break;
112
+ case "serializerHook":
113
+ serializerHooks[module] = plugin(options, print);
114
+ break;
115
+ default:
116
+ throw new Error(`${module}: unknown plugin type: ${plugin.type}`);
117
+ }
118
+ }
32
119
  }
33
- if (treeShake) {
34
- metroConfig.serializer.customSerializer = (0, metro_serializer_esbuild_1.MetroSerializer)(plugins);
120
+ if (extraParams.treeShake) {
121
+ metroConfig.serializer.customSerializer =
122
+ (0, metro_serializer_esbuild_1.MetroSerializer)(metroPlugins);
35
123
  Object.assign(metroConfig.transformer, metro_serializer_esbuild_1.esbuildTransformerConfig);
36
124
  }
37
- else if (plugins.length > 0) {
125
+ else if (metroPlugins.length > 0) {
38
126
  // MetroSerializer acts as a CustomSerializer, and it works with both
39
127
  // older and newer versions of Metro. Older versions expect a return
40
128
  // value, while newer versions expect a promise.
@@ -45,13 +133,26 @@ function customizeMetroConfig(metroConfigReadonly, { detectCyclicDependencies, d
45
133
  //
46
134
  // Since it can handle either scenario, just coerce it to whatever
47
135
  // the current version of Metro expects.
48
- metroConfig.serializer.customSerializer = (0, metro_serializer_1.MetroSerializer)(plugins);
136
+ metroConfig.serializer.customSerializer = (0, metro_serializer_1.MetroSerializer)(metroPlugins);
49
137
  }
50
138
  else {
51
139
  delete metroConfig.serializer.customSerializer;
52
140
  }
53
- const hook = (0, metro_plugin_typescript_1.TypeScriptPlugin)(typescriptValidation, print);
54
- metroConfig.serializer.experimentalSerializerHook = hook;
141
+ const hooks = Object.values(serializerHooks);
142
+ switch (hooks.length) {
143
+ case 0:
144
+ break;
145
+ case 1:
146
+ metroConfig.serializer.experimentalSerializerHook = hooks[0];
147
+ break;
148
+ default:
149
+ metroConfig.serializer.experimentalSerializerHook = (graph, delta) => {
150
+ for (const hook of hooks) {
151
+ hook(graph, delta);
152
+ }
153
+ };
154
+ break;
155
+ }
55
156
  }
56
157
  exports.customizeMetroConfig = customizeMetroConfig;
57
158
  //# sourceMappingURL=metro-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":";;;AACA,kHAAwF;AACxF,8FAAiF;AACjF,8EAAoE;AAEpE,gEAA4D;AAC5D,gFAG2C;AAG3C;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,mBAAiC,EACjC,EACE,wBAAwB,EACxB,2BAA2B,EAC3B,SAAS,EACT,oBAAoB,GACL,EACjB,KAAiC;IAEjC,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,MAAM,IAAI,GAAG,IAAA,0CAAgB,EAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC3D,WAAW,CAAC,UAAU,CAAC,0BAA0B,GAAG,IAAI,CAAC;AAC3D,CAAC;AAjDD,oDAiDC"}
1
+ {"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../src/metro-config.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
- import type { ServerConfig, BundlerPlugins } from "@rnx-kit/config";
2
- export type ServerConfigOverrides = {
1
+ import type { ServerConfig } from "@rnx-kit/config";
2
+ type ServerConfigOverrides = {
3
3
  projectRoot?: string;
4
4
  assetPlugins?: string[];
5
5
  sourceExts?: string[];
6
6
  };
7
- export type CliServerConfig = ServerConfig & Required<BundlerPlugins>;
7
+ type CliServerConfig = ServerConfig & {
8
+ plugins: Required<ServerConfig>["plugins"];
9
+ treeShake: false;
10
+ };
8
11
  /**
9
12
  * Get the server configuration from the rnx-kit configuration. Apply any overrides.
10
13
  *
@@ -12,4 +15,5 @@ export type CliServerConfig = ServerConfig & Required<BundlerPlugins>;
12
15
  * @returns Server configuration
13
16
  */
14
17
  export declare function getKitServerConfig(overrides: ServerConfigOverrides): CliServerConfig;
18
+ export {};
15
19
  //# sourceMappingURL=kit-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kit-config.d.ts","sourceRoot":"","sources":["../../src/serve/kit-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKpE,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AAEtE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,qBAAqB,GAC/B,eAAe,CAqBjB"}
1
+ {"version":3,"file":"kit-config.d.ts","sourceRoot":"","sources":["../../src/serve/kit-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKpD,KAAK,qBAAqB,GAAG;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,eAAe,GAAG,YAAY,GAAG;IACpC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3C,SAAS,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,qBAAqB,GAC/B,eAAe,CAqBjB"}
@@ -20,7 +20,7 @@ function getKitServerConfig(overrides) {
20
20
  "detectCyclicDependencies",
21
21
  "detectDuplicateDependencies",
22
22
  "typescriptValidation",
23
- //"treeShake", // don't pull in treeShake yet, since it doesn't work with the server
23
+ "plugins",
24
24
  ]);
25
25
  }
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"kit-config.js","sourceRoot":"","sources":["../../src/serve/kit-config.ts"],"names":[],"mappings":";;;AACA,4CAAgE;AAChE,mEAAgE;AAChE,6DAAoE;AAUpE;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,SAAgC;IAEhC,MAAM,SAAS,GAAG,IAAA,qBAAY,GAAE,CAAC;IACjC,IAAI,YAAY,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAC;IACrC,IAAI,CAAC,YAAY,IAAI,SAAS,EAAE;QAC9B,MAAM,iBAAiB,GAAG,IAAA,wBAAe,EAAC,SAAS,CAAC,CAAC;QACrD,IAAI,iBAAiB,EAAE;YACrB,YAAY,GAAG,IAAA,uBAAU,EAAC,iBAAiB,EAAE;gBAC3C,0BAA0B;gBAC1B,6BAA6B;gBAC7B,sBAAsB;gBACtB,qFAAqF;aACtF,CAAC,CAAC;SACJ;KACF;IAED,OAAO;QACL,GAAG,IAAA,yCAAwB,GAAE;QAC7B,GAAG,YAAY;QACf,SAAS,EAAE,KAAK;QAChB,GAAG,IAAA,uBAAU,EAAC,SAAS,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;KACxE,CAAC;AACJ,CAAC;AAvBD,gDAuBC"}
1
+ {"version":3,"file":"kit-config.js","sourceRoot":"","sources":["../../src/serve/kit-config.ts"],"names":[],"mappings":";;;AACA,4CAAgE;AAChE,mEAAgE;AAChE,6DAAoE;AAapE;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,SAAgC;IAEhC,MAAM,SAAS,GAAG,IAAA,qBAAY,GAAE,CAAC;IACjC,IAAI,YAAY,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAC;IACrC,IAAI,CAAC,YAAY,IAAI,SAAS,EAAE;QAC9B,MAAM,iBAAiB,GAAG,IAAA,wBAAe,EAAC,SAAS,CAAC,CAAC;QACrD,IAAI,iBAAiB,EAAE;YACrB,YAAY,GAAG,IAAA,uBAAU,EAAC,iBAAiB,EAAE;gBAC3C,0BAA0B;gBAC1B,6BAA6B;gBAC7B,sBAAsB;gBACtB,SAAS;aACV,CAAC,CAAC;SACJ;KACF;IAED,OAAO;QACL,GAAG,IAAA,yCAAwB,GAAE;QAC7B,GAAG,YAAY;QACf,SAAS,EAAE,KAAK;QAChB,GAAG,IAAA,uBAAU,EAAC,SAAS,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;KACxE,CAAC;AACJ,CAAC;AAvBD,gDAuBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rnx-kit/cli",
3
- "version": "0.15.3",
3
+ "version": "0.16.0",
4
4
  "description": "Command-line interface for working with kit packages in your repo",
5
5
  "homepage": "https://github.com/microsoft/rnx-kit/tree/main/packages/cli",
6
6
  "license": "MIT",
@@ -20,13 +20,13 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@rnx-kit/align-deps": "^2.0.1",
23
- "@rnx-kit/config": "^0.5.2",
23
+ "@rnx-kit/config": "^0.6.0",
24
24
  "@rnx-kit/console": "^1.0.11",
25
- "@rnx-kit/metro-plugin-cyclic-dependencies-detector": "^1.0.21",
26
- "@rnx-kit/metro-plugin-duplicates-checker": "^2.0.0",
27
- "@rnx-kit/metro-plugin-typescript": "^0.2.0",
25
+ "@rnx-kit/metro-plugin-cyclic-dependencies-detector": "^1.1.0",
26
+ "@rnx-kit/metro-plugin-duplicates-checker": "^2.1.0",
27
+ "@rnx-kit/metro-plugin-typescript": "^0.3.0",
28
28
  "@rnx-kit/metro-serializer": "^1.0.11",
29
- "@rnx-kit/metro-serializer-esbuild": "^0.1.0",
29
+ "@rnx-kit/metro-serializer-esbuild": "^0.1.18",
30
30
  "@rnx-kit/metro-service": "^3.0.2",
31
31
  "@rnx-kit/third-party-notices": "^1.2.13",
32
32
  "@rnx-kit/tools-language": "^1.4.1",
@@ -59,7 +59,6 @@
59
59
  "@types/metro-config": "^0.66.0",
60
60
  "@types/qrcode": "^1.4.2",
61
61
  "jest": "^27.0.0",
62
- "jest-extended": "^2.0.0",
63
62
  "memfs": "^3.4.1",
64
63
  "metro-config": "^0.67.0"
65
64
  },
@@ -75,9 +74,6 @@
75
74
  "extends": "@rnx-kit/eslint-config"
76
75
  },
77
76
  "jest": {
78
- "preset": "@rnx-kit/scripts",
79
- "setupFilesAfterEnv": [
80
- "jest-extended/all"
81
- ]
77
+ "preset": "@rnx-kit/scripts"
82
78
  }
83
79
  }
@@ -1,10 +1,16 @@
1
- import type { BundlerPlugins } from "@rnx-kit/config";
1
+ import type { BundleParameters } from "@rnx-kit/config";
2
2
 
3
- export function getDefaultBundlerPlugins(): Required<BundlerPlugins> {
4
- return {
5
- detectCyclicDependencies: true,
6
- detectDuplicateDependencies: true,
7
- typescriptValidation: true,
8
- treeShake: false,
9
- };
3
+ type DefaultPlugins = Pick<Required<BundleParameters>, "plugins" | "treeShake">;
4
+
5
+ const defaultPlugins: DefaultPlugins = {
6
+ plugins: [
7
+ "@rnx-kit/metro-plugin-cyclic-dependencies-detector",
8
+ "@rnx-kit/metro-plugin-duplicates-checker",
9
+ "@rnx-kit/metro-plugin-typescript",
10
+ ],
11
+ treeShake: false,
12
+ };
13
+
14
+ export function getDefaultBundlerPlugins(): DefaultPlugins {
15
+ return defaultPlugins;
10
16
  }
@@ -28,7 +28,10 @@ export async function metroBundle(
28
28
  ): Promise<void> {
29
29
  info(`Bundling ${bundleConfig.platform}...`);
30
30
 
31
- customizeMetroConfig(metroConfig, bundleConfig);
31
+ customizeMetroConfig(metroConfig, {
32
+ ...bundleConfig,
33
+ treeShake: !dev && bundleConfig.treeShake,
34
+ });
32
35
 
33
36
  const metroBundleArgs: MetroBundleArgs = {
34
37
  ...bundleConfig,