@rnx-kit/cli 0.12.7 → 0.14.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 (83) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/README.md +90 -65
  3. package/coverage/clover.xml +92 -104
  4. package/coverage/coverage-final.json +7 -6
  5. package/coverage/lcov-report/index.html +29 -29
  6. package/coverage/lcov-report/src/bundle/index.html +29 -29
  7. package/coverage/lcov-report/src/bundle/kit-config.ts.html +63 -117
  8. package/coverage/lcov-report/src/bundle/metro.ts.html +40 -163
  9. package/coverage/lcov-report/src/bundle/overrides.ts.html +28 -58
  10. package/coverage/lcov-report/src/bundler-plugin-defaults.ts.html +115 -0
  11. package/coverage/lcov-report/src/copy-assets.ts.html +1 -1
  12. package/coverage/lcov-report/src/index.html +26 -11
  13. package/coverage/lcov-report/src/metro-config.ts.html +49 -31
  14. package/coverage/lcov-report/src/typescript/index.html +1 -1
  15. package/coverage/lcov-report/src/typescript/project-cache.ts.html +5 -5
  16. package/coverage/lcov.info +173 -193
  17. package/lib/bundle/kit-config.d.ts +9 -15
  18. package/lib/bundle/kit-config.d.ts.map +1 -1
  19. package/lib/bundle/kit-config.js +29 -43
  20. package/lib/bundle/kit-config.js.map +1 -1
  21. package/lib/bundle/metro.d.ts +7 -11
  22. package/lib/bundle/metro.d.ts.map +1 -1
  23. package/lib/bundle/metro.js +10 -40
  24. package/lib/bundle/metro.js.map +1 -1
  25. package/lib/bundle/overrides.d.ts +11 -9
  26. package/lib/bundle/overrides.d.ts.map +1 -1
  27. package/lib/bundle/overrides.js +10 -18
  28. package/lib/bundle/overrides.js.map +1 -1
  29. package/lib/bundle/types.d.ts +4 -17
  30. package/lib/bundle/types.d.ts.map +1 -1
  31. package/lib/bundle.d.ts +8 -7
  32. package/lib/bundle.d.ts.map +1 -1
  33. package/lib/bundle.js +3 -19
  34. package/lib/bundle.js.map +1 -1
  35. package/lib/bundler-plugin-defaults.d.ts +3 -0
  36. package/lib/bundler-plugin-defaults.d.ts.map +1 -0
  37. package/lib/bundler-plugin-defaults.js +13 -0
  38. package/lib/bundler-plugin-defaults.js.map +1 -0
  39. package/lib/index.d.ts +1 -1
  40. package/lib/index.d.ts.map +1 -1
  41. package/lib/index.js +2 -1
  42. package/lib/index.js.map +1 -1
  43. package/lib/metro-config.d.ts +3 -2
  44. package/lib/metro-config.d.ts.map +1 -1
  45. package/lib/metro-config.js +7 -5
  46. package/lib/metro-config.js.map +1 -1
  47. package/lib/parsers.d.ts +2 -0
  48. package/lib/parsers.d.ts.map +1 -1
  49. package/lib/parsers.js +16 -1
  50. package/lib/parsers.js.map +1 -1
  51. package/lib/serve/kit-config.d.ts +6 -5
  52. package/lib/serve/kit-config.d.ts.map +1 -1
  53. package/lib/serve/kit-config.js +16 -6
  54. package/lib/serve/kit-config.js.map +1 -1
  55. package/lib/start.d.ts +2 -2
  56. package/lib/start.d.ts.map +1 -1
  57. package/lib/start.js +3 -9
  58. package/lib/start.js.map +1 -1
  59. package/package.json +8 -6
  60. package/react-native.config.js +66 -59
  61. package/src/bundle/kit-config.ts +42 -60
  62. package/src/bundle/metro.ts +15 -56
  63. package/src/bundle/overrides.ts +24 -34
  64. package/src/bundle/types.ts +17 -23
  65. package/src/bundle.ts +18 -36
  66. package/src/bundler-plugin-defaults.ts +10 -0
  67. package/src/index.ts +1 -1
  68. package/src/metro-config.ts +12 -6
  69. package/src/parsers.ts +19 -0
  70. package/src/serve/kit-config.ts +23 -11
  71. package/src/start.ts +7 -13
  72. package/test/bundle/__mocks__/@rnx-kit/config.js +2 -3
  73. package/test/bundle/__mocks__/@rnx-kit/console.js +1 -0
  74. package/test/bundle/__mocks__/@rnx-kit/metro-service.js +1 -0
  75. package/test/bundle/kit-config.test.ts +102 -100
  76. package/test/bundle/metro.test.ts +58 -98
  77. package/test/bundle/overrides.test.ts +29 -25
  78. package/test/copy-assets/assembleAarBundle.test.ts +1 -0
  79. package/lib/types.d.ts +0 -5
  80. package/lib/types.d.ts.map +0 -1
  81. package/lib/types.js +0 -3
  82. package/lib/types.js.map +0 -1
  83. package/src/types.ts +0 -4
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">50% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>8/16</span>
28
+ <span class='fraction'>7/7</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">56.25% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>9/16</span>
35
+ <span class='fraction'>4/4</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">50% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/2</span>
42
+ <span class='fraction'>1/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">50% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>8/16</span>
49
+ <span class='fraction'>7/7</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line high'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -113,48 +113,7 @@
113
113
  <a name='L48'></a><a href='#L48'>48</a>
114
114
  <a name='L49'></a><a href='#L49'>49</a>
115
115
  <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
116
+ <a name='L51'></a><a href='#L51'>51</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
158
117
  <span class="cline-any cline-neutral">&nbsp;</span>
159
118
  <span class="cline-any cline-neutral">&nbsp;</span>
160
119
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -179,71 +138,30 @@
179
138
  <span class="cline-any cline-neutral">&nbsp;</span>
180
139
  <span class="cline-any cline-neutral">&nbsp;</span>
181
140
  <span class="cline-any cline-neutral">&nbsp;</span>
141
+ <span class="cline-any cline-yes">4x</span>
182
142
  <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-yes">4x</span>
183
144
  <span class="cline-any cline-neutral">&nbsp;</span>
184
145
  <span class="cline-any cline-neutral">&nbsp;</span>
185
146
  <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-yes">15x</span>
187
- <span class="cline-any cline-yes">15x</span>
188
- <span class="cline-any cline-yes">15x</span>
189
147
  <span class="cline-any cline-neutral">&nbsp;</span>
190
148
  <span class="cline-any cline-neutral">&nbsp;</span>
191
- <span class="cline-any cline-yes">15x</span>
192
- <span class="cline-any cline-yes">14x</span>
193
149
  <span class="cline-any cline-neutral">&nbsp;</span>
194
150
  <span class="cline-any cline-neutral">&nbsp;</span>
151
+ <span class="cline-any cline-yes">4x</span>
195
152
  <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-yes">15x</span>
197
- <span class="cline-any cline-yes">15x</span>
198
153
  <span class="cline-any cline-neutral">&nbsp;</span>
199
154
  <span class="cline-any cline-neutral">&nbsp;</span>
200
- <span class="cline-any cline-yes">15x</span>
201
155
  <span class="cline-any cline-neutral">&nbsp;</span>
202
156
  <span class="cline-any cline-neutral">&nbsp;</span>
203
157
  <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-yes">4x</span>
159
+ <span class="cline-any cline-yes">4x</span>
204
160
  <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-yes">4x</span>
205
162
  <span class="cline-any cline-neutral">&nbsp;</span>
206
163
  <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-neutral">&nbsp;</span>
211
- <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-neutral">&nbsp;</span>
215
- <span class="cline-any cline-neutral">&nbsp;</span>
216
- <span class="cline-any cline-neutral">&nbsp;</span>
217
- <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-no">&nbsp;</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-no">&nbsp;</span>
227
- <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-neutral">&nbsp;</span>
229
- <span class="cline-any cline-no">&nbsp;</span>
230
- <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-neutral">&nbsp;</span>
234
- <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-neutral">&nbsp;</span>
237
- <span class="cline-any cline-no">&nbsp;</span>
238
- <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-no">&nbsp;</span>
241
- <span class="cline-any cline-no">&nbsp;</span>
242
- <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-no">&nbsp;</span>
244
- <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-no">&nbsp;</span>
164
+ <span class="cline-any cline-yes">4x</span>
247
165
  <span class="cline-any cline-neutral">&nbsp;</span>
248
166
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { info } from "@rnx-kit/console";
249
167
  import { bundle, BundleArgs as MetroBundleArgs } from "@rnx-kit/metro-service";
@@ -251,90 +169,49 @@ import { createDirectory } from "@rnx-kit/tools-node/fs";
251
169
  import type { ConfigT } from "metro-config";
252
170
  import path from "path";
253
171
  import { customizeMetroConfig } from "../metro-config";
254
- import type { BundleConfig } from "./types";
255
- import type { TypeScriptValidationOptions } from "../types";
256
- &nbsp;
257
- /**
258
- * Create Metro bundler arguments from a bundle configuration.
259
- *
260
- * @param bundleConfig Bundle configuration
261
- * @returns Metro bundle arguments
262
- */
263
- export function createMetroBundleArgs({
264
- entryPath: entryFile,
265
- distPath,
266
- assetsPath: assetsDest,
267
- bundlePrefix,
268
- bundleEncoding,
269
- sourceMapPath: sourcemapOutput,
270
- sourceMapSourceRootPath: sourcemapSourcesRoot,
271
- platform,
272
- dev,
273
- minify,
274
- }: BundleConfig): MetroBundleArgs {
275
- // assemble the full path to the bundle file
276
- const bundleExtension =
277
- platform === "ios" || platform === "macos" ? "jsbundle" : "bundle";
278
- const bundleFile = `${bundlePrefix}.${platform}.${bundleExtension}`;
279
- const bundlePath = path.join(distPath, bundleFile);
280
- &nbsp;
281
- // always create a source-map in dev mode
282
- if (dev) {
283
- sourcemapOutput = sourcemapOutput ?? bundleFile + ".map";
284
- }
285
- &nbsp;
286
- // use an absolute path for the source map file
287
- if (sourcemapOutput) {
288
- sourcemapOutput = path.join(distPath, sourcemapOutput);
289
- }
290
- &nbsp;
291
- return {
292
- assetsDest,
293
- entryFile,
294
- minify,
295
- platform,
296
- dev,
297
- bundleOutput: bundlePath,
298
- bundleEncoding,
299
- sourcemapOutput,
300
- sourcemapSourcesRoot,
301
- };
302
- }
172
+ import type { CliPlatformBundleConfig } from "./types";
303
173
  &nbsp;
304
174
  /**
305
175
  * Run the Metro bundler.
306
176
  *
307
- * @param tsservice TypeScript service to use for type-checking (when enabled)
308
177
  * @param metroConfig Metro configuration
309
178
  * @param bundleConfig Bundle configuration
179
+ * @param dev Choose whether or not this will be a "developer" bundle. The alternative is a "production" bundle.
180
+ * When `true`, warnings are enabled, and the bundle is not minified by default.
181
+ * Further, optimizations like constant folding are disabled.
182
+ * When `false`, warnings are disabled and the bundle is minified by default.
183
+ * @param minify Optionally choose whether or not the bundle is minified. When not set, minification is controlled by the `dev` property.
310
184
  */
311
- export async function <span class="fstat-no" title="function not covered" >metroBundle(</span>
185
+ export async function metroBundle(
312
186
  metroConfig: ConfigT,
313
- bundleConfig: BundleConfig
187
+ bundleConfig: CliPlatformBundleConfig,
188
+ dev: boolean,
189
+ minify?: boolean
314
190
  ): Promise&lt;void&gt; {
315
- <span class="cstat-no" title="statement not covered" > info(`Bundling ${bundleConfig.platform}...`);</span>
191
+ info(`Bundling ${bundleConfig.platform}...`);
316
192
  &nbsp;
317
- const typescriptValidationOptions: TypeScriptValidationOptions = <span class="cstat-no" title="statement not covered" >{</span>
318
- throwOnError: true,
319
- };
320
- <span class="cstat-no" title="statement not covered" > customizeMetroConfig(</span>
193
+ customizeMetroConfig(
321
194
  metroConfig,
322
195
  bundleConfig.detectCyclicDependencies,
323
196
  bundleConfig.detectDuplicateDependencies,
324
- bundleConfig.typescriptValidation ? typescriptValidationOptions : false,
197
+ bundleConfig.typescriptValidation,
325
198
  bundleConfig.treeShake
326
199
  );
327
200
  &nbsp;
328
- const metroBundleArgs = <span class="cstat-no" title="statement not covered" >createMetroBundleArgs(bundleConfig);</span>
201
+ const metroBundleArgs: MetroBundleArgs = {
202
+ ...bundleConfig,
203
+ dev,
204
+ minify,
205
+ };
329
206
  &nbsp;
330
207
  // ensure all output directories exist
331
- <span class="cstat-no" title="statement not covered" > createDirectory(path.dirname(metroBundleArgs.bundleOutput));</span>
332
- <span class="cstat-no" title="statement not covered" > metroBundleArgs.sourcemapOutput &amp;&amp;</span>
208
+ createDirectory(path.dirname(metroBundleArgs.bundleOutput));
209
+ metroBundleArgs.sourcemapOutput &amp;&amp;
333
210
  createDirectory(path.dirname(metroBundleArgs.sourcemapOutput));
334
- <span class="cstat-no" title="statement not covered" > metroBundleArgs.assetsDest &amp;&amp; createDirectory(metroBundleArgs.assetsDest);</span>
211
+ metroBundleArgs.assetsDest &amp;&amp; createDirectory(metroBundleArgs.assetsDest);
335
212
  &nbsp;
336
213
  // create the bundle
337
- <span class="cstat-no" title="statement not covered" > await bundle(metroBundleArgs, metroConfig);</span>
214
+ await bundle(metroBundleArgs, metroConfig);
338
215
  }
339
216
  &nbsp;</pre></td></tr></table></pre>
340
217
 
@@ -343,7 +220,7 @@ export async function <span class="fstat-no" title="function not covered" >metro
343
220
  <div class='footer quiet pad2 space-top1 center small'>
344
221
  Code coverage generated by
345
222
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
346
- at Thu May 19 2022 01:42:49 GMT+0000 (Coordinated Universal Time)
223
+ at Mon Jun 20 2022 17:47:27 GMT+0000 (Coordinated Universal Time)
347
224
  </div>
348
225
  <script src="../../prettify.js"></script>
349
226
  <script>
@@ -107,17 +107,7 @@
107
107
  <a name='L42'></a><a href='#L42'>42</a>
108
108
  <a name='L43'></a><a href='#L43'>43</a>
109
109
  <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
110
+ <a name='L45'></a><a href='#L45'>45</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
121
111
  <span class="cline-any cline-neutral">&nbsp;</span>
122
112
  <span class="cline-any cline-neutral">&nbsp;</span>
123
113
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -142,19 +132,9 @@
142
132
  <span class="cline-any cline-neutral">&nbsp;</span>
143
133
  <span class="cline-any cline-neutral">&nbsp;</span>
144
134
  <span class="cline-any cline-neutral">&nbsp;</span>
145
- <span class="cline-any cline-yes">9x</span>
146
- <span class="cline-any cline-neutral">&nbsp;</span>
147
- <span class="cline-any cline-neutral">&nbsp;</span>
148
- <span class="cline-any cline-neutral">&nbsp;</span>
149
- <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-neutral">&nbsp;</span>
151
- <span class="cline-any cline-neutral">&nbsp;</span>
152
- <span class="cline-any cline-neutral">&nbsp;</span>
153
- <span class="cline-any cline-neutral">&nbsp;</span>
154
- <span class="cline-any cline-neutral">&nbsp;</span>
155
- <span class="cline-any cline-neutral">&nbsp;</span>
156
135
  <span class="cline-any cline-neutral">&nbsp;</span>
157
136
  <span class="cline-any cline-neutral">&nbsp;</span>
137
+ <span class="cline-any cline-yes">9x</span>
158
138
  <span class="cline-any cline-neutral">&nbsp;</span>
159
139
  <span class="cline-any cline-neutral">&nbsp;</span>
160
140
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -171,54 +151,44 @@
171
151
  <span class="cline-any cline-neutral">&nbsp;</span>
172
152
  <span class="cline-any cline-neutral">&nbsp;</span>
173
153
  <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { BundleArgs } from "@rnx-kit/metro-service";
154
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { TransformProfile } from "metro-babel-transformer";
155
+ import type { BundleArgs } from "@rnx-kit/metro-service";
175
156
  import { pickValues } from "@rnx-kit/tools-language/properties";
176
- import type { KitBundleConfig } from "./types";
157
+ import type { CliPlatformBundleConfig } from "./types";
177
158
  &nbsp;
178
- export type KitBundleConfigOverrides = {
179
- entryPath?: string;
180
- distPath?: string;
181
- assetsPath?: string;
182
- bundlePrefix?: string;
159
+ export type BundleConfigOverrides = {
160
+ entryFile?: string;
161
+ bundleOutput?: string;
183
162
  bundleEncoding?: BundleArgs["bundleEncoding"];
184
163
  sourcemapOutput?: string;
185
164
  sourcemapSourcesRoot?: string;
165
+ sourcemapUseAbsolutePath?: boolean;
166
+ assetsDest?: string;
186
167
  treeShake?: boolean;
168
+ unstableTransformProfile?: TransformProfile;
187
169
  };
188
170
  &nbsp;
189
171
  /**
190
- * Apply overrides, if any, to each kit bundle config. Overrides are applied in-place.
172
+ * Apply overrides, if any, to each rnx-kit bundle configuration. Overrides are applied in-place.
191
173
  *
192
174
  * @param overrides Optional overrides to apply
193
- * @param configs Array of kit bundle configurations to override. This is modified if any overrides are applied.
175
+ * @param configs Array of platform-specific bundle configurations. This is modified if any overrides are applied.
194
176
  */
195
- export function applyKitBundleConfigOverrides(
196
- overrides: KitBundleConfigOverrides,
197
- configs: KitBundleConfig[]
177
+ export function applyBundleConfigOverrides(
178
+ overrides: BundleConfigOverrides,
179
+ configs: CliPlatformBundleConfig[]
198
180
  ): void {
199
- const overridesToApply = pickValues(
200
- overrides,
201
- [
202
- "entryPath",
203
- "distPath",
204
- "assetsPath",
205
- "bundlePrefix",
206
- "bundleEncoding",
207
- "sourcemapOutput",
208
- "sourcemapSourcesRoot",
209
- "treeShake",
210
- ],
211
- [
212
- "entryPath",
213
- "distPath",
214
- "assetsPath",
215
- "bundlePrefix",
216
- "bundleEncoding",
217
- "sourcemapOutput",
218
- "sourcemapSourcesRoot",
219
- "treeShake",
220
- ]
221
- );
181
+ const overridesToApply = pickValues(overrides, [
182
+ "entryFile",
183
+ "bundleOutput",
184
+ "bundleEncoding",
185
+ "sourcemapOutput",
186
+ "sourcemapSourcesRoot",
187
+ "sourcemapUseAbsolutePath",
188
+ "assetsDest",
189
+ "treeShake",
190
+ "unstableTransformProfile",
191
+ ]);
222
192
  if (overridesToApply) {
223
193
  for (const config of configs) {
224
194
  Object.assign(config, overridesToApply);
@@ -232,7 +202,7 @@ export function applyKitBundleConfigOverrides(
232
202
  <div class='footer quiet pad2 space-top1 center small'>
233
203
  Code coverage generated by
234
204
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
235
- at Thu May 19 2022 01:42:49 GMT+0000 (Coordinated Universal Time)
205
+ at Mon Jun 20 2022 17:47:27 GMT+0000 (Coordinated Universal Time)
236
206
  </div>
237
207
  <script src="../../prettify.js"></script>
238
208
  <script>
@@ -0,0 +1,115 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/bundler-plugin-defaults.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> bundler-plugin-defaults.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>1/1</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>1/1</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>1/1</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
77
+ <span class="cline-any cline-neutral">&nbsp;</span>
78
+ <span class="cline-any cline-neutral">&nbsp;</span>
79
+ <span class="cline-any cline-yes">10x</span>
80
+ <span class="cline-any cline-neutral">&nbsp;</span>
81
+ <span class="cline-any cline-neutral">&nbsp;</span>
82
+ <span class="cline-any cline-neutral">&nbsp;</span>
83
+ <span class="cline-any cline-neutral">&nbsp;</span>
84
+ <span class="cline-any cline-neutral">&nbsp;</span>
85
+ <span class="cline-any cline-neutral">&nbsp;</span>
86
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { BundlerPlugins } from "@rnx-kit/config";
87
+ &nbsp;
88
+ export function getDefaultBundlerPlugins(): Required&lt;BundlerPlugins&gt; {
89
+ return {
90
+ detectCyclicDependencies: true,
91
+ detectDuplicateDependencies: true,
92
+ typescriptValidation: true,
93
+ treeShake: false,
94
+ };
95
+ }
96
+ &nbsp;</pre></td></tr></table></pre>
97
+
98
+ <div class='push'></div><!-- for sticky footer -->
99
+ </div><!-- /wrapper -->
100
+ <div class='footer quiet pad2 space-top1 center small'>
101
+ Code coverage generated by
102
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
+ at Mon Jun 20 2022 17:47:27 GMT+0000 (Coordinated Universal Time)
104
+ </div>
105
+ <script src="../prettify.js"></script>
106
+ <script>
107
+ window.onload = function () {
108
+ prettyPrint();
109
+ };
110
+ </script>
111
+ <script src="../sorter.js"></script>
112
+ <script src="../block-navigation.js"></script>
113
+ </body>
114
+ </html>
115
+
@@ -1765,7 +1765,7 @@ export const rnxCopyAssetsCommand = {
1765
1765
  <div class='footer quiet pad2 space-top1 center small'>
1766
1766
  Code coverage generated by
1767
1767
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1768
- at Thu May 19 2022 01:42:49 GMT+0000 (Coordinated Universal Time)
1768
+ at Mon Jun 20 2022 17:47:27 GMT+0000 (Coordinated Universal Time)
1769
1769
  </div>
1770
1770
  <script src="../prettify.js"></script>
1771
1771
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">52.38% </span>
26
+ <span class="strong">52.6% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>110/210</span>
28
+ <span class='fraction'>111/211</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">45.8% </span>
33
+ <span class="strong">46.56% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>60/131</span>
35
+ <span class='fraction'>61/131</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">57.14% </span>
40
+ <span class="strong">58.62% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>16/28</span>
42
+ <span class='fraction'>17/29</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">52.4% </span>
47
+ <span class="strong">52.63% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>109/208</span>
49
+ <span class='fraction'>110/209</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,6 +79,21 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
+ <td class="file high" data-value="bundler-plugin-defaults.ts"><a href="bundler-plugin-defaults.ts.html">bundler-plugin-defaults.ts</a></td>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
+ </td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="1" class="abs high">1/1</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="0" class="abs high">0/0</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="1" class="abs high">1/1</td>
92
+ <td data-value="100" class="pct high">100%</td>
93
+ <td data-value="1" class="abs high">1/1</td>
94
+ </tr>
95
+
96
+ <tr>
82
97
  <td class="file medium" data-value="copy-assets.ts"><a href="copy-assets.ts.html">copy-assets.ts</a></td>
83
98
  <td data-value="54.6" class="pic medium">
84
99
  <div class="chart"><div class="cover-fill" style="width: 54%"></div><div class="cover-empty" style="width: 46%"></div></div>
@@ -100,8 +115,8 @@
100
115
  </td>
101
116
  <td data-value="46.55" class="pct low">46.55%</td>
102
117
  <td data-value="58" class="abs low">27/58</td>
103
- <td data-value="43.75" class="pct low">43.75%</td>
104
- <td data-value="32" class="abs low">14/32</td>
118
+ <td data-value="46.87" class="pct low">46.87%</td>
119
+ <td data-value="32" class="abs low">15/32</td>
105
120
  <td data-value="20" class="pct low">20%</td>
106
121
  <td data-value="10" class="abs low">2/10</td>
107
122
  <td data-value="47.36" class="pct low">47.36%</td>
@@ -116,7 +131,7 @@
116
131
  <div class='footer quiet pad2 space-top1 center small'>
117
132
  Code coverage generated by
118
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Thu May 19 2022 01:42:49 GMT+0000 (Coordinated Universal Time)
134
+ at Mon Jun 20 2022 17:47:27 GMT+0000 (Coordinated Universal Time)
120
135
  </div>
121
136
  <script src="../prettify.js"></script>
122
137
  <script>