@rnx-kit/cli 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Change Log - @rnx-kit/cli
2
2
 
3
+ ## 0.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 2036ac7: Added Generic rnxClean script.This is responsible for clearing all react native related caches.
8
+
9
+ ### Patch Changes
10
+
11
+ - 6f659dd: Fix `rnx-clean` not clearing Gradle cache on Windows
12
+ - 6f659dd: Use `os.tmpdir()` instead of relying on an environment variable
13
+ - 6f659dd: Integrate `ora` to make the output of `rnx-clean` prettier
14
+ - 6f659dd: `pod cache clean` only needs to be run once
15
+ - c15102f: Fix "watchman::CommandValidationError: failed to validate command: unknown command watchman-del-all" when running `rnx-clean`
16
+ - Updated dependencies [f385a26]
17
+ - Updated dependencies [868be32]
18
+ - Updated dependencies [d10f4b0]
19
+ - @rnx-kit/dep-check@1.12.0
20
+
3
21
  ## 0.10.0
4
22
 
5
23
  ### Minor Changes
package/README.md CHANGED
@@ -9,6 +9,7 @@ Command-line interface for working with `kit` packages in your repo.
9
9
  - [Start a bundle server](#Start-a-Bundle-Server)
10
10
  - [Manage kit dependencies](#Manage-Kit-Dependencies)
11
11
  - [Generate a 3rd-party notice for a kit](#Generate-a-Third%2dParty-Notice-for-a-Kit)
12
+ - [Clean a React Native Project](#Clean-a-React-Native-Project)
12
13
 
13
14
  ## Bundle a Kit
14
15
 
@@ -103,3 +104,16 @@ $ yarn react-native rnx-write-third-party-notices [options]
103
104
  | --ignore-modules [string] | Comma-separated list of modules to ignore when traversing the source map dependency graph. |
104
105
  | --preamble-text [string] | A string to prepend to the start of the 3rd-party notice. |
105
106
  | --additional-text [path] | A string to append to the end of the 3rd-party notice. |
107
+
108
+ ## Clean a React Native Project
109
+
110
+ Cleans your project by removing React Native related caches and modules.
111
+
112
+ ```
113
+ $ yarn react-native rnx-clean [options]
114
+ ```
115
+
116
+ | Option | Description |
117
+ | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
118
+ | --include [string] | Comma-separated flag of caches to clear e.g npm,yarn . When not specified , only non-platform specific caches are cleared. [android,cocoapods,npm,metro,watchman,yarn] |
119
+ | --project-root [path] | Root path to your React Native project. When not specified, defaults to current working directory |
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1641546062774" clover="3.2.0">
3
- <project timestamp="1641546062774" name="All files">
2
+ <coverage generated="1643813558160" clover="3.2.0">
3
+ <project timestamp="1643813558160" name="All files">
4
4
  <metrics statements="138" coveredstatements="63" conditionals="76" coveredconditionals="40" methods="27" coveredmethods="9" elements="241" coveredelements="112" complexity="0" loc="138" ncloc="138" packages="3" files="5" classes="5"/>
5
5
  <package name="src">
6
6
  <metrics statements="53" coveredstatements="27" conditionals="28" coveredconditionals="14" methods="10" coveredmethods="2"/>
@@ -1,6 +1,6 @@
1
- {"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/metro-config.ts": {"path":"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/metro-config.ts","statementMap":{"0":{"start":{"line":34,"column":23},"end":{"line":34,"column":56}},"1":{"start":{"line":36,"column":29},"end":{"line":36,"column":53}},"2":{"start":{"line":37,"column":29},"end":{"line":37,"column":71}},"3":{"start":{"line":37,"column":44},"end":{"line":37,"column":71}},"4":{"start":{"line":39,"column":15},"end":{"line":96,"column":3}},"5":{"start":{"line":40,"column":21},"end":{"line":40,"column":68}},"6":{"start":{"line":41,"column":4},"end":{"line":95,"column":5}},"7":{"start":{"line":42,"column":6},"end":{"line":47,"column":7}},"8":{"start":{"line":46,"column":8},"end":{"line":46,"column":45}},"9":{"start":{"line":51,"column":19},"end":{"line":54,"column":34}},"10":{"start":{"line":53,"column":20},"end":{"line":53,"column":31}},"11":{"start":{"line":56,"column":22},"end":{"line":59,"column":34}},"12":{"start":{"line":58,"column":20},"end":{"line":58,"column":31}},"13":{"start":{"line":61,"column":22},"end":{"line":63,"column":7}},"14":{"start":{"line":66,"column":49},"end":{"line":66,"column":58}},"15":{"start":{"line":67,"column":6},"end":{"line":76,"column":9}},"16":{"start":{"line":68,"column":45},"end":{"line":71,"column":9}},"17":{"start":{"line":72,"column":8},"end":{"line":75,"column":9}},"18":{"start":{"line":73,"column":10},"end":{"line":73,"column":40}},"19":{"start":{"line":74,"column":10},"end":{"line":74,"column":46}},"20":{"start":{"line":77,"column":6},"end":{"line":81,"column":9}},"21":{"start":{"line":78,"column":30},"end":{"line":78,"column":79}},"22":{"start":{"line":79,"column":8},"end":{"line":79,"column":41}},"23":{"start":{"line":80,"column":8},"end":{"line":80,"column":44}},"24":{"start":{"line":84,"column":20},"end":{"line":84,"column":24}},"25":{"start":{"line":85,"column":6},"end":{"line":89,"column":9}},"26":{"start":{"line":86,"column":8},"end":{"line":88,"column":9}},"27":{"start":{"line":87,"column":10},"end":{"line":87,"column":26}},"28":{"start":{"line":91,"column":6},"end":{"line":94,"column":7}},"29":{"start":{"line":93,"column":8},"end":{"line":93,"column":50}},"30":{"start":{"line":98,"column":2},"end":{"line":98,"column":14}},"31":{"start":{"line":101,"column":28},"end":{"line":103,"column":1}},"32":{"start":{"line":123,"column":22},"end":{"line":123,"column":57}},"33":{"start":{"line":125,"column":33},"end":{"line":125,"column":35}},"34":{"start":{"line":126,"column":2},"end":{"line":130,"column":3}},"35":{"start":{"line":127,"column":4},"end":{"line":127,"column":69}},"36":{"start":{"line":128,"column":9},"end":{"line":130,"column":3}},"37":{"start":{"line":129,"column":4},"end":{"line":129,"column":42}},"38":{"start":{"line":131,"column":2},"end":{"line":135,"column":3}},"39":{"start":{"line":132,"column":4},"end":{"line":132,"column":63}},"40":{"start":{"line":133,"column":9},"end":{"line":135,"column":3}},"41":{"start":{"line":134,"column":4},"end":{"line":134,"column":39}},"42":{"start":{"line":137,"column":2},"end":{"line":156,"column":3}},"43":{"start":{"line":138,"column":4},"end":{"line":138,"column":78}},"44":{"start":{"line":139,"column":4},"end":{"line":139,"column":69}},"45":{"start":{"line":140,"column":9},"end":{"line":156,"column":3}},"46":{"start":{"line":151,"column":4},"end":{"line":153,"column":47}},"47":{"start":{"line":155,"column":4},"end":{"line":155,"column":51}},"48":{"start":{"line":158,"column":13},"end":{"line":158,"column":32}},"49":{"start":{"line":159,"column":2},"end":{"line":163,"column":3}},"50":{"start":{"line":160,"column":4},"end":{"line":160,"column":54}},"51":{"start":{"line":161,"column":9},"end":{"line":163,"column":3}},"52":{"start":{"line":162,"column":4},"end":{"line":162,"column":36}},"53":{"start":{"line":164,"column":2},"end":{"line":164,"column":59}}},"fnMap":{"0":{"name":"createSerializerHook","decl":{"start":{"line":33,"column":9},"end":{"line":33,"column":29}},"loc":{"start":{"line":33,"column":68},"end":{"line":99,"column":1}},"line":33},"1":{"name":"(anonymous_1)","decl":{"start":{"line":37,"column":29},"end":{"line":37,"column":30}},"loc":{"start":{"line":37,"column":44},"end":{"line":37,"column":71}},"line":37},"2":{"name":"(anonymous_2)","decl":{"start":{"line":39,"column":15},"end":{"line":39,"column":16}},"loc":{"start":{"line":39,"column":59},"end":{"line":96,"column":3}},"line":39},"3":{"name":"(anonymous_3)","decl":{"start":{"line":53,"column":8},"end":{"line":53,"column":9}},"loc":{"start":{"line":53,"column":20},"end":{"line":53,"column":31}},"line":53},"4":{"name":"(anonymous_4)","decl":{"start":{"line":58,"column":8},"end":{"line":58,"column":9}},"loc":{"start":{"line":58,"column":20},"end":{"line":58,"column":31}},"line":58},"5":{"name":"(anonymous_5)","decl":{"start":{"line":67,"column":35},"end":{"line":67,"column":36}},"loc":{"start":{"line":67,"column":51},"end":{"line":76,"column":7}},"line":67},"6":{"name":"(anonymous_6)","decl":{"start":{"line":77,"column":22},"end":{"line":77,"column":23}},"loc":{"start":{"line":77,"column":38},"end":{"line":81,"column":7}},"line":77},"7":{"name":"(anonymous_7)","decl":{"start":{"line":85,"column":35},"end":{"line":85,"column":36}},"loc":{"start":{"line":85,"column":42},"end":{"line":89,"column":7}},"line":85},"8":{"name":"(anonymous_8)","decl":{"start":{"line":101,"column":28},"end":{"line":101,"column":29}},"loc":{"start":{"line":101,"column":74},"end":{"line":103,"column":1}},"line":101},"9":{"name":"customizeMetroConfig","decl":{"start":{"line":114,"column":16},"end":{"line":114,"column":36}},"loc":{"start":{"line":120,"column":8},"end":{"line":165,"column":1}},"line":120}},"branchMap":{"0":{"loc":{"start":{"line":41,"column":4},"end":{"line":95,"column":5}},"type":"if","locations":[{"start":{"line":41,"column":4},"end":{"line":95,"column":5}},{"start":{"line":41,"column":4},"end":{"line":95,"column":5}}],"line":41},"1":{"loc":{"start":{"line":42,"column":6},"end":{"line":47,"column":7}},"type":"if","locations":[{"start":{"line":42,"column":6},"end":{"line":47,"column":7}},{"start":{"line":42,"column":6},"end":{"line":47,"column":7}}],"line":42},"2":{"loc":{"start":{"line":72,"column":8},"end":{"line":75,"column":9}},"type":"if","locations":[{"start":{"line":72,"column":8},"end":{"line":75,"column":9}},{"start":{"line":72,"column":8},"end":{"line":75,"column":9}}],"line":72},"3":{"loc":{"start":{"line":86,"column":8},"end":{"line":88,"column":9}},"type":"if","locations":[{"start":{"line":86,"column":8},"end":{"line":88,"column":9}},{"start":{"line":86,"column":8},"end":{"line":88,"column":9}}],"line":86},"4":{"loc":{"start":{"line":91,"column":6},"end":{"line":94,"column":7}},"type":"if","locations":[{"start":{"line":91,"column":6},"end":{"line":94,"column":7}},{"start":{"line":91,"column":6},"end":{"line":94,"column":7}}],"line":91},"5":{"loc":{"start":{"line":91,"column":10},"end":{"line":91,"column":42}},"type":"binary-expr","locations":[{"start":{"line":91,"column":10},"end":{"line":91,"column":18}},{"start":{"line":91,"column":22},"end":{"line":91,"column":42}}],"line":91},"6":{"loc":{"start":{"line":126,"column":2},"end":{"line":130,"column":3}},"type":"if","locations":[{"start":{"line":126,"column":2},"end":{"line":130,"column":3}},{"start":{"line":126,"column":2},"end":{"line":130,"column":3}}],"line":126},"7":{"loc":{"start":{"line":128,"column":9},"end":{"line":130,"column":3}},"type":"if","locations":[{"start":{"line":128,"column":9},"end":{"line":130,"column":3}},{"start":{"line":128,"column":9},"end":{"line":130,"column":3}}],"line":128},"8":{"loc":{"start":{"line":131,"column":2},"end":{"line":135,"column":3}},"type":"if","locations":[{"start":{"line":131,"column":2},"end":{"line":135,"column":3}},{"start":{"line":131,"column":2},"end":{"line":135,"column":3}}],"line":131},"9":{"loc":{"start":{"line":133,"column":9},"end":{"line":135,"column":3}},"type":"if","locations":[{"start":{"line":133,"column":9},"end":{"line":135,"column":3}},{"start":{"line":133,"column":9},"end":{"line":135,"column":3}}],"line":133},"10":{"loc":{"start":{"line":137,"column":2},"end":{"line":156,"column":3}},"type":"if","locations":[{"start":{"line":137,"column":2},"end":{"line":156,"column":3}},{"start":{"line":137,"column":2},"end":{"line":156,"column":3}}],"line":137},"11":{"loc":{"start":{"line":140,"column":9},"end":{"line":156,"column":3}},"type":"if","locations":[{"start":{"line":140,"column":9},"end":{"line":156,"column":3}},{"start":{"line":140,"column":9},"end":{"line":156,"column":3}}],"line":140},"12":{"loc":{"start":{"line":159,"column":2},"end":{"line":163,"column":3}},"type":"if","locations":[{"start":{"line":159,"column":2},"end":{"line":163,"column":3}},{"start":{"line":159,"column":2},"end":{"line":163,"column":3}}],"line":159},"13":{"loc":{"start":{"line":161,"column":9},"end":{"line":163,"column":3}},"type":"if","locations":[{"start":{"line":161,"column":9},"end":{"line":163,"column":3}},{"start":{"line":161,"column":9},"end":{"line":163,"column":3}}],"line":161}},"s":{"0":6,"1":6,"2":6,"3":0,"4":6,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":6,"31":2,"32":6,"33":6,"34":6,"35":1,"36":5,"37":2,"38":6,"39":1,"40":5,"41":2,"42":6,"43":1,"44":1,"45":5,"46":4,"47":1,"48":6,"49":6,"50":0,"51":6,"52":6,"53":6},"f":{"0":6,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":6},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[1,5],"7":[2,3],"8":[1,5],"9":[2,3],"10":[1,5],"11":[4,1],"12":[0,6],"13":[6,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0506e6240a43b196f2ba1a580d04e0d9d911a736"}
2
- ,"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/kit-config.ts": {"path":"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/kit-config.ts","statementMap":{"0":{"start":{"line":21,"column":20},"end":{"line":21,"column":34}},"1":{"start":{"line":22,"column":2},"end":{"line":26,"column":3}},"2":{"start":{"line":23,"column":4},"end":{"line":25,"column":6}},"3":{"start":{"line":28,"column":2},"end":{"line":42,"column":3}},"4":{"start":{"line":29,"column":4},"end":{"line":33,"column":6}},"5":{"start":{"line":34,"column":4},"end":{"line":34,"column":21}},"6":{"start":{"line":35,"column":9},"end":{"line":42,"column":3}},"7":{"start":{"line":36,"column":4},"end":{"line":40,"column":6}},"8":{"start":{"line":41,"column":4},"end":{"line":41,"column":21}},"9":{"start":{"line":45,"column":2},"end":{"line":45,"column":51}},"10":{"start":{"line":59,"column":2},"end":{"line":61,"column":3}},"11":{"start":{"line":60,"column":4},"end":{"line":60,"column":30}},"12":{"start":{"line":62,"column":2},"end":{"line":64,"column":3}},"13":{"start":{"line":63,"column":4},"end":{"line":63,"column":27}},"14":{"start":{"line":65,"column":2},"end":{"line":67,"column":4}},"15":{"start":{"line":83,"column":27},"end":{"line":83,"column":53}},"16":{"start":{"line":84,"column":2},"end":{"line":86,"column":3}},"17":{"start":{"line":85,"column":4},"end":{"line":85,"column":21}},"18":{"start":{"line":88,"column":20},"end":{"line":91,"column":3}},"19":{"start":{"line":93,"column":2},"end":{"line":98,"column":5}},"20":{"start":{"line":94,"column":4},"end":{"line":97,"column":6}}},"fnMap":{"0":{"name":"getKitBundleDefinition","decl":{"start":{"line":18,"column":16},"end":{"line":18,"column":38}},"loc":{"start":{"line":20,"column":54},"end":{"line":46,"column":1}},"line":20},"1":{"name":"getTargetPlatforms","decl":{"start":{"line":55,"column":16},"end":{"line":55,"column":34}},"loc":{"start":{"line":58,"column":18},"end":{"line":68,"column":1}},"line":58},"2":{"name":"getKitBundleConfigs","decl":{"start":{"line":79,"column":16},"end":{"line":79,"column":35}},"loc":{"start":{"line":82,"column":33},"end":{"line":99,"column":1}},"line":82},"3":{"name":"(anonymous_3)","decl":{"start":{"line":93,"column":40},"end":{"line":93,"column":41}},"loc":{"start":{"line":93,"column":54},"end":{"line":98,"column":3}},"line":93}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":2},"end":{"line":26,"column":3}},"type":"if","locations":[{"start":{"line":22,"column":2},"end":{"line":26,"column":3}},{"start":{"line":22,"column":2},"end":{"line":26,"column":3}}],"line":22},"1":{"loc":{"start":{"line":28,"column":2},"end":{"line":42,"column":3}},"type":"if","locations":[{"start":{"line":28,"column":2},"end":{"line":42,"column":3}},{"start":{"line":28,"column":2},"end":{"line":42,"column":3}}],"line":28},"2":{"loc":{"start":{"line":28,"column":6},"end":{"line":28,"column":65}},"type":"binary-expr","locations":[{"start":{"line":28,"column":6},"end":{"line":28,"column":31}},{"start":{"line":28,"column":35},"end":{"line":28,"column":65}}],"line":28},"3":{"loc":{"start":{"line":35,"column":9},"end":{"line":42,"column":3}},"type":"if","locations":[{"start":{"line":35,"column":9},"end":{"line":42,"column":3}},{"start":{"line":35,"column":9},"end":{"line":42,"column":3}}],"line":35},"4":{"loc":{"start":{"line":59,"column":2},"end":{"line":61,"column":3}},"type":"if","locations":[{"start":{"line":59,"column":2},"end":{"line":61,"column":3}},{"start":{"line":59,"column":2},"end":{"line":61,"column":3}}],"line":59},"5":{"loc":{"start":{"line":62,"column":2},"end":{"line":64,"column":3}},"type":"if","locations":[{"start":{"line":62,"column":2},"end":{"line":64,"column":3}},{"start":{"line":62,"column":2},"end":{"line":64,"column":3}}],"line":62},"6":{"loc":{"start":{"line":62,"column":6},"end":{"line":62,"column":51}},"type":"binary-expr","locations":[{"start":{"line":62,"column":6},"end":{"line":62,"column":21}},{"start":{"line":62,"column":25},"end":{"line":62,"column":51}}],"line":62},"7":{"loc":{"start":{"line":84,"column":2},"end":{"line":86,"column":3}},"type":"if","locations":[{"start":{"line":84,"column":2},"end":{"line":86,"column":3}},{"start":{"line":84,"column":2},"end":{"line":86,"column":3}}],"line":84}},"s":{"0":7,"1":7,"2":1,"3":6,"4":1,"5":1,"6":5,"7":1,"8":1,"9":4,"10":6,"11":2,"12":4,"13":3,"14":1,"15":3,"16":3,"17":0,"18":3,"19":3,"20":5},"f":{"0":7,"1":6,"2":3,"3":5},"b":{"0":[1,6],"1":[1,5],"2":[6,6],"3":[1,4],"4":[2,4],"5":[3,1],"6":[4,3],"7":[0,3]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8f0c7b5b748a539db2a2d12c4b5d2305b56b87e5"}
3
- ,"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/metro.ts": {"path":"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/metro.ts","statementMap":{"0":{"start":{"line":30,"column":4},"end":{"line":30,"column":70}},"1":{"start":{"line":31,"column":21},"end":{"line":31,"column":69}},"2":{"start":{"line":32,"column":21},"end":{"line":32,"column":52}},"3":{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},"4":{"start":{"line":36,"column":4},"end":{"line":36,"column":61}},"5":{"start":{"line":40,"column":2},"end":{"line":42,"column":3}},"6":{"start":{"line":41,"column":4},"end":{"line":41,"column":59}},"7":{"start":{"line":44,"column":2},"end":{"line":54,"column":4}},"8":{"start":{"line":68,"column":2},"end":{"line":68,"column":47}},"9":{"start":{"line":70,"column":67},"end":{"line":72,"column":3}},"10":{"start":{"line":73,"column":2},"end":{"line":79,"column":4}},"11":{"start":{"line":81,"column":26},"end":{"line":81,"column":61}},"12":{"start":{"line":84,"column":2},"end":{"line":84,"column":62}},"13":{"start":{"line":85,"column":2},"end":{"line":86,"column":67}},"14":{"start":{"line":87,"column":2},"end":{"line":87,"column":76}},"15":{"start":{"line":90,"column":2},"end":{"line":90,"column":45}}},"fnMap":{"0":{"name":"createMetroBundleArgs","decl":{"start":{"line":16,"column":16},"end":{"line":16,"column":37}},"loc":{"start":{"line":27,"column":34},"end":{"line":55,"column":1}},"line":27},"1":{"name":"metroBundle","decl":{"start":{"line":64,"column":22},"end":{"line":64,"column":33}},"loc":{"start":{"line":67,"column":17},"end":{"line":91,"column":1}},"line":67}},"branchMap":{"0":{"loc":{"start":{"line":30,"column":4},"end":{"line":30,"column":70}},"type":"cond-expr","locations":[{"start":{"line":30,"column":49},"end":{"line":30,"column":59}},{"start":{"line":30,"column":62},"end":{"line":30,"column":70}}],"line":30},"1":{"loc":{"start":{"line":30,"column":4},"end":{"line":30,"column":46}},"type":"binary-expr","locations":[{"start":{"line":30,"column":4},"end":{"line":30,"column":22}},{"start":{"line":30,"column":26},"end":{"line":30,"column":46}}],"line":30},"2":{"loc":{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},"type":"if","locations":[{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},{"start":{"line":35,"column":2},"end":{"line":37,"column":3}}],"line":35},"3":{"loc":{"start":{"line":36,"column":22},"end":{"line":36,"column":60}},"type":"binary-expr","locations":[{"start":{"line":36,"column":22},"end":{"line":36,"column":37}},{"start":{"line":36,"column":41},"end":{"line":36,"column":60}}],"line":36},"4":{"loc":{"start":{"line":40,"column":2},"end":{"line":42,"column":3}},"type":"if","locations":[{"start":{"line":40,"column":2},"end":{"line":42,"column":3}},{"start":{"line":40,"column":2},"end":{"line":42,"column":3}}],"line":40},"5":{"loc":{"start":{"line":77,"column":4},"end":{"line":77,"column":75}},"type":"cond-expr","locations":[{"start":{"line":77,"column":40},"end":{"line":77,"column":67}},{"start":{"line":77,"column":70},"end":{"line":77,"column":75}}],"line":77},"6":{"loc":{"start":{"line":85,"column":2},"end":{"line":86,"column":66}},"type":"binary-expr","locations":[{"start":{"line":85,"column":2},"end":{"line":85,"column":33}},{"start":{"line":86,"column":4},"end":{"line":86,"column":66}}],"line":85},"7":{"loc":{"start":{"line":87,"column":2},"end":{"line":87,"column":75}},"type":"binary-expr","locations":[{"start":{"line":87,"column":2},"end":{"line":87,"column":28}},{"start":{"line":87,"column":32},"end":{"line":87,"column":75}}],"line":87}},"s":{"0":15,"1":15,"2":15,"3":15,"4":14,"5":15,"6":15,"7":15,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0},"f":{"0":15,"1":0},"b":{"0":[12,3],"1":[15,4],"2":[14,1],"3":[14,1],"4":[15,0],"5":[0,0],"6":[0,0],"7":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"367c8c4c1d333f2835a211bec07fd44c89cb6346"}
4
- ,"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/overrides.ts": {"path":"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/overrides.ts","statementMap":{"0":{"start":{"line":26,"column":27},"end":{"line":48,"column":3}},"1":{"start":{"line":49,"column":2},"end":{"line":53,"column":3}},"2":{"start":{"line":50,"column":4},"end":{"line":52,"column":5}},"3":{"start":{"line":51,"column":6},"end":{"line":51,"column":46}}},"fnMap":{"0":{"name":"applyKitBundleConfigOverrides","decl":{"start":{"line":22,"column":16},"end":{"line":22,"column":45}},"loc":{"start":{"line":25,"column":8},"end":{"line":54,"column":1}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":49,"column":2},"end":{"line":53,"column":3}},"type":"if","locations":[{"start":{"line":49,"column":2},"end":{"line":53,"column":3}},{"start":{"line":49,"column":2},"end":{"line":53,"column":3}}],"line":49}},"s":{"0":9,"1":9,"2":8,"3":8},"f":{"0":9},"b":{"0":[8,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0af99fb3496b7b80a95c16c25bff8d5df7c7a996"}
5
- ,"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/typescript/project-cache.ts": {"path":"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/typescript/project-cache.ts","statementMap":{"0":{"start":{"line":59,"column":27},"end":{"line":59,"column":54}},"1":{"start":{"line":60,"column":27},"end":{"line":60,"column":56}},"2":{"start":{"line":66,"column":6},"end":{"line":66,"column":8}},"3":{"start":{"line":70,"column":4},"end":{"line":74,"column":5}},"4":{"start":{"line":71,"column":6},"end":{"line":73,"column":7}},"5":{"start":{"line":72,"column":8},"end":{"line":72,"column":20}},"6":{"start":{"line":77,"column":17},"end":{"line":77,"column":57}},"7":{"start":{"line":78,"column":4},"end":{"line":82,"column":5}},"8":{"start":{"line":79,"column":6},"end":{"line":81,"column":8}},"9":{"start":{"line":84,"column":4},"end":{"line":84,"column":16}},"10":{"start":{"line":88,"column":27},"end":{"line":88,"column":59}},"11":{"start":{"line":90,"column":20},"end":{"line":90,"column":50}},"12":{"start":{"line":91,"column":4},"end":{"line":97,"column":5}},"13":{"start":{"line":92,"column":6},"end":{"line":92,"column":60}},"14":{"start":{"line":93,"column":11},"end":{"line":97,"column":5}},"15":{"start":{"line":94,"column":21},"end":{"line":94,"column":45}},"16":{"start":{"line":95,"column":6},"end":{"line":95,"column":53}},"17":{"start":{"line":95,"column":36},"end":{"line":95,"column":51}},"18":{"start":{"line":96,"column":6},"end":{"line":96,"column":60}},"19":{"start":{"line":99,"column":4},"end":{"line":99,"column":19}},"20":{"start":{"line":107,"column":20},"end":{"line":107,"column":38}},"21":{"start":{"line":118,"column":26},"end":{"line":118,"column":52}},"22":{"start":{"line":119,"column":4},"end":{"line":119,"column":77}},"23":{"start":{"line":119,"column":56},"end":{"line":119,"column":75}},"24":{"start":{"line":123,"column":39},"end":{"line":137,"column":5}},"25":{"start":{"line":124,"column":37},"end":{"line":124,"column":65}},"26":{"start":{"line":125,"column":52},"end":{"line":125,"column":56}},"27":{"start":{"line":126,"column":53},"end":{"line":126,"column":58}},"28":{"start":{"line":127,"column":33},"end":{"line":127,"column":42}},"29":{"start":{"line":128,"column":6},"end":{"line":136,"column":9}},"30":{"start":{"line":138,"column":22},"end":{"line":143,"column":5}},"31":{"start":{"line":145,"column":4},"end":{"line":148,"column":6}},"32":{"start":{"line":155,"column":17},"end":{"line":155,"column":44}},"33":{"start":{"line":156,"column":4},"end":{"line":156,"column":26}},"34":{"start":{"line":158,"column":15},"end":{"line":158,"column":39}},"35":{"start":{"line":159,"column":4},"end":{"line":162,"column":5}},"36":{"start":{"line":160,"column":6},"end":{"line":160,"column":47}},"37":{"start":{"line":161,"column":6},"end":{"line":161,"column":38}},"38":{"start":{"line":163,"column":4},"end":{"line":163,"column":16}},"39":{"start":{"line":167,"column":4},"end":{"line":175,"column":7}},"40":{"start":{"line":168,"column":19},"end":{"line":168,"column":47}},"41":{"start":{"line":169,"column":6},"end":{"line":174,"column":7}},"42":{"start":{"line":170,"column":8},"end":{"line":172,"column":9}},"43":{"start":{"line":171,"column":10},"end":{"line":171,"column":35}},"44":{"start":{"line":173,"column":8},"end":{"line":173,"column":44}},"45":{"start":{"line":178,"column":2},"end":{"line":181,"column":4}}},"fnMap":{"0":{"name":"createProjectCache","decl":{"start":{"line":56,"column":16},"end":{"line":56,"column":34}},"loc":{"start":{"line":58,"column":16},"end":{"line":182,"column":1}},"line":58},"1":{"name":"findProjectRoot","decl":{"start":{"line":68,"column":11},"end":{"line":68,"column":26}},"loc":{"start":{"line":68,"column":55},"end":{"line":85,"column":3}},"line":68},"2":{"name":"readTSConfig","decl":{"start":{"line":87,"column":11},"end":{"line":87,"column":23}},"loc":{"start":{"line":87,"column":60},"end":{"line":100,"column":3}},"line":87},"3":{"name":"(anonymous_3)","decl":{"start":{"line":95,"column":29},"end":{"line":95,"column":30}},"loc":{"start":{"line":95,"column":36},"end":{"line":95,"column":51}},"line":95},"4":{"name":"createProjectInfo","decl":{"start":{"line":102,"column":11},"end":{"line":102,"column":28}},"loc":{"start":{"line":105,"column":17},"end":{"line":149,"column":3}},"line":105},"5":{"name":"(anonymous_5)","decl":{"start":{"line":119,"column":49},"end":{"line":119,"column":50}},"loc":{"start":{"line":119,"column":56},"end":{"line":119,"column":75}},"line":119},"6":{"name":"(anonymous_6)","decl":{"start":{"line":123,"column":39},"end":{"line":123,"column":40}},"loc":{"start":{"line":123,"column":79},"end":{"line":137,"column":5}},"line":123},"7":{"name":"getProjectInfo","decl":{"start":{"line":151,"column":11},"end":{"line":151,"column":25}},"loc":{"start":{"line":154,"column":17},"end":{"line":164,"column":3}},"line":154},"8":{"name":"clearPlatform","decl":{"start":{"line":166,"column":11},"end":{"line":166,"column":24}},"loc":{"start":{"line":166,"column":55},"end":{"line":176,"column":3}},"line":166},"9":{"name":"(anonymous_9)","decl":{"start":{"line":167,"column":36},"end":{"line":167,"column":37}},"loc":{"start":{"line":167,"column":60},"end":{"line":175,"column":5}},"line":167}},"branchMap":{"0":{"loc":{"start":{"line":71,"column":6},"end":{"line":73,"column":7}},"type":"if","locations":[{"start":{"line":71,"column":6},"end":{"line":73,"column":7}},{"start":{"line":71,"column":6},"end":{"line":73,"column":7}}],"line":71},"1":{"loc":{"start":{"line":78,"column":4},"end":{"line":82,"column":5}},"type":"if","locations":[{"start":{"line":78,"column":4},"end":{"line":82,"column":5}},{"start":{"line":78,"column":4},"end":{"line":82,"column":5}}],"line":78},"2":{"loc":{"start":{"line":91,"column":4},"end":{"line":97,"column":5}},"type":"if","locations":[{"start":{"line":91,"column":4},"end":{"line":97,"column":5}},{"start":{"line":91,"column":4},"end":{"line":97,"column":5}}],"line":91},"3":{"loc":{"start":{"line":93,"column":11},"end":{"line":97,"column":5}},"type":"if","locations":[{"start":{"line":93,"column":11},"end":{"line":97,"column":5}},{"start":{"line":93,"column":11},"end":{"line":97,"column":5}}],"line":93},"4":{"loc":{"start":{"line":159,"column":4},"end":{"line":162,"column":5}},"type":"if","locations":[{"start":{"line":159,"column":4},"end":{"line":162,"column":5}},{"start":{"line":159,"column":4},"end":{"line":162,"column":5}}],"line":159},"5":{"loc":{"start":{"line":169,"column":6},"end":{"line":174,"column":7}},"type":"if","locations":[{"start":{"line":169,"column":6},"end":{"line":174,"column":7}},{"start":{"line":169,"column":6},"end":{"line":174,"column":7}}],"line":169},"6":{"loc":{"start":{"line":170,"column":8},"end":{"line":172,"column":9}},"type":"if","locations":[{"start":{"line":170,"column":8},"end":{"line":172,"column":9}},{"start":{"line":170,"column":8},"end":{"line":172,"column":9}}],"line":170}},"s":{"0":6,"1":6,"2":6,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":6},"f":{"0":6,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"743f7a872d4ff3e52928974e157d7d0243a84a13"}
1
+ {"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/metro-config.ts": {"path":"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/metro-config.ts","statementMap":{"0":{"start":{"line":34,"column":23},"end":{"line":34,"column":56}},"1":{"start":{"line":36,"column":29},"end":{"line":36,"column":53}},"2":{"start":{"line":37,"column":29},"end":{"line":37,"column":71}},"3":{"start":{"line":37,"column":44},"end":{"line":37,"column":71}},"4":{"start":{"line":39,"column":15},"end":{"line":96,"column":3}},"5":{"start":{"line":40,"column":21},"end":{"line":40,"column":68}},"6":{"start":{"line":41,"column":4},"end":{"line":95,"column":5}},"7":{"start":{"line":42,"column":6},"end":{"line":47,"column":7}},"8":{"start":{"line":46,"column":8},"end":{"line":46,"column":45}},"9":{"start":{"line":51,"column":19},"end":{"line":54,"column":34}},"10":{"start":{"line":53,"column":20},"end":{"line":53,"column":31}},"11":{"start":{"line":56,"column":22},"end":{"line":59,"column":34}},"12":{"start":{"line":58,"column":20},"end":{"line":58,"column":31}},"13":{"start":{"line":61,"column":22},"end":{"line":63,"column":7}},"14":{"start":{"line":66,"column":49},"end":{"line":66,"column":58}},"15":{"start":{"line":67,"column":6},"end":{"line":76,"column":9}},"16":{"start":{"line":68,"column":45},"end":{"line":71,"column":9}},"17":{"start":{"line":72,"column":8},"end":{"line":75,"column":9}},"18":{"start":{"line":73,"column":10},"end":{"line":73,"column":40}},"19":{"start":{"line":74,"column":10},"end":{"line":74,"column":46}},"20":{"start":{"line":77,"column":6},"end":{"line":81,"column":9}},"21":{"start":{"line":78,"column":30},"end":{"line":78,"column":79}},"22":{"start":{"line":79,"column":8},"end":{"line":79,"column":41}},"23":{"start":{"line":80,"column":8},"end":{"line":80,"column":44}},"24":{"start":{"line":84,"column":20},"end":{"line":84,"column":24}},"25":{"start":{"line":85,"column":6},"end":{"line":89,"column":9}},"26":{"start":{"line":86,"column":8},"end":{"line":88,"column":9}},"27":{"start":{"line":87,"column":10},"end":{"line":87,"column":26}},"28":{"start":{"line":91,"column":6},"end":{"line":94,"column":7}},"29":{"start":{"line":93,"column":8},"end":{"line":93,"column":50}},"30":{"start":{"line":98,"column":2},"end":{"line":98,"column":14}},"31":{"start":{"line":101,"column":28},"end":{"line":103,"column":1}},"32":{"start":{"line":123,"column":22},"end":{"line":123,"column":57}},"33":{"start":{"line":125,"column":33},"end":{"line":125,"column":35}},"34":{"start":{"line":126,"column":2},"end":{"line":130,"column":3}},"35":{"start":{"line":127,"column":4},"end":{"line":127,"column":69}},"36":{"start":{"line":128,"column":9},"end":{"line":130,"column":3}},"37":{"start":{"line":129,"column":4},"end":{"line":129,"column":42}},"38":{"start":{"line":131,"column":2},"end":{"line":135,"column":3}},"39":{"start":{"line":132,"column":4},"end":{"line":132,"column":63}},"40":{"start":{"line":133,"column":9},"end":{"line":135,"column":3}},"41":{"start":{"line":134,"column":4},"end":{"line":134,"column":39}},"42":{"start":{"line":137,"column":2},"end":{"line":156,"column":3}},"43":{"start":{"line":138,"column":4},"end":{"line":138,"column":78}},"44":{"start":{"line":139,"column":4},"end":{"line":139,"column":69}},"45":{"start":{"line":140,"column":9},"end":{"line":156,"column":3}},"46":{"start":{"line":151,"column":4},"end":{"line":153,"column":47}},"47":{"start":{"line":155,"column":4},"end":{"line":155,"column":51}},"48":{"start":{"line":158,"column":13},"end":{"line":158,"column":32}},"49":{"start":{"line":159,"column":2},"end":{"line":163,"column":3}},"50":{"start":{"line":160,"column":4},"end":{"line":160,"column":54}},"51":{"start":{"line":161,"column":9},"end":{"line":163,"column":3}},"52":{"start":{"line":162,"column":4},"end":{"line":162,"column":36}},"53":{"start":{"line":164,"column":2},"end":{"line":164,"column":59}}},"fnMap":{"0":{"name":"createSerializerHook","decl":{"start":{"line":33,"column":9},"end":{"line":33,"column":29}},"loc":{"start":{"line":33,"column":68},"end":{"line":99,"column":1}},"line":33},"1":{"name":"(anonymous_1)","decl":{"start":{"line":37,"column":29},"end":{"line":37,"column":30}},"loc":{"start":{"line":37,"column":44},"end":{"line":37,"column":71}},"line":37},"2":{"name":"(anonymous_2)","decl":{"start":{"line":39,"column":15},"end":{"line":39,"column":16}},"loc":{"start":{"line":39,"column":59},"end":{"line":96,"column":3}},"line":39},"3":{"name":"(anonymous_3)","decl":{"start":{"line":53,"column":8},"end":{"line":53,"column":9}},"loc":{"start":{"line":53,"column":20},"end":{"line":53,"column":31}},"line":53},"4":{"name":"(anonymous_4)","decl":{"start":{"line":58,"column":8},"end":{"line":58,"column":9}},"loc":{"start":{"line":58,"column":20},"end":{"line":58,"column":31}},"line":58},"5":{"name":"(anonymous_5)","decl":{"start":{"line":67,"column":35},"end":{"line":67,"column":36}},"loc":{"start":{"line":67,"column":51},"end":{"line":76,"column":7}},"line":67},"6":{"name":"(anonymous_6)","decl":{"start":{"line":77,"column":22},"end":{"line":77,"column":23}},"loc":{"start":{"line":77,"column":38},"end":{"line":81,"column":7}},"line":77},"7":{"name":"(anonymous_7)","decl":{"start":{"line":85,"column":35},"end":{"line":85,"column":36}},"loc":{"start":{"line":85,"column":42},"end":{"line":89,"column":7}},"line":85},"8":{"name":"(anonymous_8)","decl":{"start":{"line":101,"column":28},"end":{"line":101,"column":29}},"loc":{"start":{"line":101,"column":74},"end":{"line":103,"column":1}},"line":101},"9":{"name":"customizeMetroConfig","decl":{"start":{"line":114,"column":16},"end":{"line":114,"column":36}},"loc":{"start":{"line":120,"column":8},"end":{"line":165,"column":1}},"line":120}},"branchMap":{"0":{"loc":{"start":{"line":41,"column":4},"end":{"line":95,"column":5}},"type":"if","locations":[{"start":{"line":41,"column":4},"end":{"line":95,"column":5}},{"start":{},"end":{}}],"line":41},"1":{"loc":{"start":{"line":42,"column":6},"end":{"line":47,"column":7}},"type":"if","locations":[{"start":{"line":42,"column":6},"end":{"line":47,"column":7}},{"start":{},"end":{}}],"line":42},"2":{"loc":{"start":{"line":72,"column":8},"end":{"line":75,"column":9}},"type":"if","locations":[{"start":{"line":72,"column":8},"end":{"line":75,"column":9}},{"start":{},"end":{}}],"line":72},"3":{"loc":{"start":{"line":86,"column":8},"end":{"line":88,"column":9}},"type":"if","locations":[{"start":{"line":86,"column":8},"end":{"line":88,"column":9}},{"start":{},"end":{}}],"line":86},"4":{"loc":{"start":{"line":91,"column":6},"end":{"line":94,"column":7}},"type":"if","locations":[{"start":{"line":91,"column":6},"end":{"line":94,"column":7}},{"start":{},"end":{}}],"line":91},"5":{"loc":{"start":{"line":91,"column":10},"end":{"line":91,"column":42}},"type":"binary-expr","locations":[{"start":{"line":91,"column":10},"end":{"line":91,"column":18}},{"start":{"line":91,"column":22},"end":{"line":91,"column":42}}],"line":91},"6":{"loc":{"start":{"line":126,"column":2},"end":{"line":130,"column":3}},"type":"if","locations":[{"start":{"line":126,"column":2},"end":{"line":130,"column":3}},{"start":{"line":128,"column":9},"end":{"line":130,"column":3}}],"line":126},"7":{"loc":{"start":{"line":128,"column":9},"end":{"line":130,"column":3}},"type":"if","locations":[{"start":{"line":128,"column":9},"end":{"line":130,"column":3}},{"start":{},"end":{}}],"line":128},"8":{"loc":{"start":{"line":131,"column":2},"end":{"line":135,"column":3}},"type":"if","locations":[{"start":{"line":131,"column":2},"end":{"line":135,"column":3}},{"start":{"line":133,"column":9},"end":{"line":135,"column":3}}],"line":131},"9":{"loc":{"start":{"line":133,"column":9},"end":{"line":135,"column":3}},"type":"if","locations":[{"start":{"line":133,"column":9},"end":{"line":135,"column":3}},{"start":{},"end":{}}],"line":133},"10":{"loc":{"start":{"line":137,"column":2},"end":{"line":156,"column":3}},"type":"if","locations":[{"start":{"line":137,"column":2},"end":{"line":156,"column":3}},{"start":{"line":140,"column":9},"end":{"line":156,"column":3}}],"line":137},"11":{"loc":{"start":{"line":140,"column":9},"end":{"line":156,"column":3}},"type":"if","locations":[{"start":{"line":140,"column":9},"end":{"line":156,"column":3}},{"start":{"line":154,"column":9},"end":{"line":156,"column":3}}],"line":140},"12":{"loc":{"start":{"line":159,"column":2},"end":{"line":163,"column":3}},"type":"if","locations":[{"start":{"line":159,"column":2},"end":{"line":163,"column":3}},{"start":{"line":161,"column":9},"end":{"line":163,"column":3}}],"line":159},"13":{"loc":{"start":{"line":161,"column":9},"end":{"line":163,"column":3}},"type":"if","locations":[{"start":{"line":161,"column":9},"end":{"line":163,"column":3}},{"start":{},"end":{}}],"line":161}},"s":{"0":6,"1":6,"2":6,"3":0,"4":6,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":6,"31":2,"32":6,"33":6,"34":6,"35":1,"36":5,"37":2,"38":6,"39":1,"40":5,"41":2,"42":6,"43":1,"44":1,"45":5,"46":4,"47":1,"48":6,"49":6,"50":0,"51":6,"52":6,"53":6},"f":{"0":6,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":6},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[1,5],"7":[2,3],"8":[1,5],"9":[2,3],"10":[1,5],"11":[4,1],"12":[0,6],"13":[6,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8685076a955810d88b1de19b01155672a96fa12e"}
2
+ ,"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/kit-config.ts": {"path":"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/kit-config.ts","statementMap":{"0":{"start":{"line":21,"column":20},"end":{"line":21,"column":34}},"1":{"start":{"line":22,"column":2},"end":{"line":26,"column":3}},"2":{"start":{"line":23,"column":4},"end":{"line":25,"column":6}},"3":{"start":{"line":28,"column":2},"end":{"line":42,"column":3}},"4":{"start":{"line":29,"column":4},"end":{"line":33,"column":6}},"5":{"start":{"line":34,"column":4},"end":{"line":34,"column":21}},"6":{"start":{"line":35,"column":9},"end":{"line":42,"column":3}},"7":{"start":{"line":36,"column":4},"end":{"line":40,"column":6}},"8":{"start":{"line":41,"column":4},"end":{"line":41,"column":21}},"9":{"start":{"line":45,"column":2},"end":{"line":45,"column":51}},"10":{"start":{"line":59,"column":2},"end":{"line":61,"column":3}},"11":{"start":{"line":60,"column":4},"end":{"line":60,"column":30}},"12":{"start":{"line":62,"column":2},"end":{"line":64,"column":3}},"13":{"start":{"line":63,"column":4},"end":{"line":63,"column":27}},"14":{"start":{"line":65,"column":2},"end":{"line":67,"column":4}},"15":{"start":{"line":83,"column":27},"end":{"line":83,"column":53}},"16":{"start":{"line":84,"column":2},"end":{"line":86,"column":3}},"17":{"start":{"line":85,"column":4},"end":{"line":85,"column":21}},"18":{"start":{"line":88,"column":20},"end":{"line":91,"column":3}},"19":{"start":{"line":93,"column":2},"end":{"line":98,"column":5}},"20":{"start":{"line":94,"column":4},"end":{"line":97,"column":6}}},"fnMap":{"0":{"name":"getKitBundleDefinition","decl":{"start":{"line":18,"column":16},"end":{"line":18,"column":38}},"loc":{"start":{"line":20,"column":54},"end":{"line":46,"column":1}},"line":20},"1":{"name":"getTargetPlatforms","decl":{"start":{"line":55,"column":16},"end":{"line":55,"column":34}},"loc":{"start":{"line":58,"column":18},"end":{"line":68,"column":1}},"line":58},"2":{"name":"getKitBundleConfigs","decl":{"start":{"line":79,"column":16},"end":{"line":79,"column":35}},"loc":{"start":{"line":82,"column":33},"end":{"line":99,"column":1}},"line":82},"3":{"name":"(anonymous_3)","decl":{"start":{"line":93,"column":40},"end":{"line":93,"column":41}},"loc":{"start":{"line":93,"column":54},"end":{"line":98,"column":3}},"line":93}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":2},"end":{"line":26,"column":3}},"type":"if","locations":[{"start":{"line":22,"column":2},"end":{"line":26,"column":3}},{"start":{},"end":{}}],"line":22},"1":{"loc":{"start":{"line":28,"column":2},"end":{"line":42,"column":3}},"type":"if","locations":[{"start":{"line":28,"column":2},"end":{"line":42,"column":3}},{"start":{"line":35,"column":9},"end":{"line":42,"column":3}}],"line":28},"2":{"loc":{"start":{"line":28,"column":6},"end":{"line":28,"column":65}},"type":"binary-expr","locations":[{"start":{"line":28,"column":6},"end":{"line":28,"column":31}},{"start":{"line":28,"column":35},"end":{"line":28,"column":65}}],"line":28},"3":{"loc":{"start":{"line":35,"column":9},"end":{"line":42,"column":3}},"type":"if","locations":[{"start":{"line":35,"column":9},"end":{"line":42,"column":3}},{"start":{},"end":{}}],"line":35},"4":{"loc":{"start":{"line":59,"column":2},"end":{"line":61,"column":3}},"type":"if","locations":[{"start":{"line":59,"column":2},"end":{"line":61,"column":3}},{"start":{},"end":{}}],"line":59},"5":{"loc":{"start":{"line":62,"column":2},"end":{"line":64,"column":3}},"type":"if","locations":[{"start":{"line":62,"column":2},"end":{"line":64,"column":3}},{"start":{},"end":{}}],"line":62},"6":{"loc":{"start":{"line":62,"column":6},"end":{"line":62,"column":51}},"type":"binary-expr","locations":[{"start":{"line":62,"column":6},"end":{"line":62,"column":21}},{"start":{"line":62,"column":25},"end":{"line":62,"column":51}}],"line":62},"7":{"loc":{"start":{"line":84,"column":2},"end":{"line":86,"column":3}},"type":"if","locations":[{"start":{"line":84,"column":2},"end":{"line":86,"column":3}},{"start":{},"end":{}}],"line":84}},"s":{"0":7,"1":7,"2":1,"3":6,"4":1,"5":1,"6":5,"7":1,"8":1,"9":4,"10":6,"11":2,"12":4,"13":3,"14":1,"15":3,"16":3,"17":0,"18":3,"19":3,"20":5},"f":{"0":7,"1":6,"2":3,"3":5},"b":{"0":[1,6],"1":[1,5],"2":[6,6],"3":[1,4],"4":[2,4],"5":[3,1],"6":[4,3],"7":[0,3]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9e23e08e97fe1afb84476626bc37bf25dbd56ae2"}
3
+ ,"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/metro.ts": {"path":"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/metro.ts","statementMap":{"0":{"start":{"line":30,"column":4},"end":{"line":30,"column":70}},"1":{"start":{"line":31,"column":21},"end":{"line":31,"column":69}},"2":{"start":{"line":32,"column":21},"end":{"line":32,"column":52}},"3":{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},"4":{"start":{"line":36,"column":4},"end":{"line":36,"column":61}},"5":{"start":{"line":40,"column":2},"end":{"line":42,"column":3}},"6":{"start":{"line":41,"column":4},"end":{"line":41,"column":59}},"7":{"start":{"line":44,"column":2},"end":{"line":54,"column":4}},"8":{"start":{"line":68,"column":2},"end":{"line":68,"column":47}},"9":{"start":{"line":70,"column":67},"end":{"line":72,"column":3}},"10":{"start":{"line":73,"column":2},"end":{"line":79,"column":4}},"11":{"start":{"line":81,"column":26},"end":{"line":81,"column":61}},"12":{"start":{"line":84,"column":2},"end":{"line":84,"column":62}},"13":{"start":{"line":85,"column":2},"end":{"line":86,"column":67}},"14":{"start":{"line":87,"column":2},"end":{"line":87,"column":76}},"15":{"start":{"line":90,"column":2},"end":{"line":90,"column":45}}},"fnMap":{"0":{"name":"createMetroBundleArgs","decl":{"start":{"line":16,"column":16},"end":{"line":16,"column":37}},"loc":{"start":{"line":27,"column":34},"end":{"line":55,"column":1}},"line":27},"1":{"name":"metroBundle","decl":{"start":{"line":64,"column":22},"end":{"line":64,"column":33}},"loc":{"start":{"line":67,"column":17},"end":{"line":91,"column":1}},"line":67}},"branchMap":{"0":{"loc":{"start":{"line":30,"column":4},"end":{"line":30,"column":70}},"type":"cond-expr","locations":[{"start":{"line":30,"column":49},"end":{"line":30,"column":59}},{"start":{"line":30,"column":62},"end":{"line":30,"column":70}}],"line":30},"1":{"loc":{"start":{"line":30,"column":4},"end":{"line":30,"column":46}},"type":"binary-expr","locations":[{"start":{"line":30,"column":4},"end":{"line":30,"column":22}},{"start":{"line":30,"column":26},"end":{"line":30,"column":46}}],"line":30},"2":{"loc":{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},"type":"if","locations":[{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},{"start":{},"end":{}}],"line":35},"3":{"loc":{"start":{"line":36,"column":22},"end":{"line":36,"column":60}},"type":"binary-expr","locations":[{"start":{"line":36,"column":22},"end":{"line":36,"column":37}},{"start":{"line":36,"column":41},"end":{"line":36,"column":60}}],"line":36},"4":{"loc":{"start":{"line":40,"column":2},"end":{"line":42,"column":3}},"type":"if","locations":[{"start":{"line":40,"column":2},"end":{"line":42,"column":3}},{"start":{},"end":{}}],"line":40},"5":{"loc":{"start":{"line":77,"column":4},"end":{"line":77,"column":75}},"type":"cond-expr","locations":[{"start":{"line":77,"column":40},"end":{"line":77,"column":67}},{"start":{"line":77,"column":70},"end":{"line":77,"column":75}}],"line":77},"6":{"loc":{"start":{"line":85,"column":2},"end":{"line":86,"column":66}},"type":"binary-expr","locations":[{"start":{"line":85,"column":2},"end":{"line":85,"column":33}},{"start":{"line":86,"column":4},"end":{"line":86,"column":66}}],"line":85},"7":{"loc":{"start":{"line":87,"column":2},"end":{"line":87,"column":75}},"type":"binary-expr","locations":[{"start":{"line":87,"column":2},"end":{"line":87,"column":28}},{"start":{"line":87,"column":32},"end":{"line":87,"column":75}}],"line":87}},"s":{"0":15,"1":15,"2":15,"3":15,"4":14,"5":15,"6":15,"7":15,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0},"f":{"0":15,"1":0},"b":{"0":[12,3],"1":[15,4],"2":[14,1],"3":[14,1],"4":[15,0],"5":[0,0],"6":[0,0],"7":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"bb996e3950db41af496832434ae6cebc2d571a68"}
4
+ ,"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/overrides.ts": {"path":"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/bundle/overrides.ts","statementMap":{"0":{"start":{"line":26,"column":27},"end":{"line":48,"column":3}},"1":{"start":{"line":49,"column":2},"end":{"line":53,"column":3}},"2":{"start":{"line":50,"column":4},"end":{"line":52,"column":5}},"3":{"start":{"line":51,"column":6},"end":{"line":51,"column":46}}},"fnMap":{"0":{"name":"applyKitBundleConfigOverrides","decl":{"start":{"line":22,"column":16},"end":{"line":22,"column":45}},"loc":{"start":{"line":25,"column":8},"end":{"line":54,"column":1}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":49,"column":2},"end":{"line":53,"column":3}},"type":"if","locations":[{"start":{"line":49,"column":2},"end":{"line":53,"column":3}},{"start":{},"end":{}}],"line":49}},"s":{"0":9,"1":9,"2":8,"3":8},"f":{"0":9},"b":{"0":[8,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"64b3b8b762bb82d6cd3d3ba0b0aa98d1a6025100"}
5
+ ,"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/typescript/project-cache.ts": {"path":"/home/runner/work/rnx-kit/rnx-kit/packages/cli/src/typescript/project-cache.ts","statementMap":{"0":{"start":{"line":59,"column":27},"end":{"line":59,"column":54}},"1":{"start":{"line":60,"column":27},"end":{"line":60,"column":56}},"2":{"start":{"line":66,"column":6},"end":{"line":66,"column":8}},"3":{"start":{"line":70,"column":4},"end":{"line":74,"column":5}},"4":{"start":{"line":71,"column":6},"end":{"line":73,"column":7}},"5":{"start":{"line":72,"column":8},"end":{"line":72,"column":20}},"6":{"start":{"line":77,"column":17},"end":{"line":77,"column":57}},"7":{"start":{"line":78,"column":4},"end":{"line":82,"column":5}},"8":{"start":{"line":79,"column":6},"end":{"line":81,"column":8}},"9":{"start":{"line":84,"column":4},"end":{"line":84,"column":16}},"10":{"start":{"line":88,"column":27},"end":{"line":88,"column":59}},"11":{"start":{"line":90,"column":20},"end":{"line":90,"column":50}},"12":{"start":{"line":91,"column":4},"end":{"line":97,"column":5}},"13":{"start":{"line":92,"column":6},"end":{"line":92,"column":60}},"14":{"start":{"line":93,"column":11},"end":{"line":97,"column":5}},"15":{"start":{"line":94,"column":21},"end":{"line":94,"column":45}},"16":{"start":{"line":95,"column":6},"end":{"line":95,"column":53}},"17":{"start":{"line":95,"column":36},"end":{"line":95,"column":51}},"18":{"start":{"line":96,"column":6},"end":{"line":96,"column":60}},"19":{"start":{"line":99,"column":4},"end":{"line":99,"column":19}},"20":{"start":{"line":107,"column":20},"end":{"line":107,"column":38}},"21":{"start":{"line":118,"column":26},"end":{"line":118,"column":52}},"22":{"start":{"line":119,"column":4},"end":{"line":119,"column":77}},"23":{"start":{"line":119,"column":56},"end":{"line":119,"column":75}},"24":{"start":{"line":123,"column":39},"end":{"line":137,"column":5}},"25":{"start":{"line":124,"column":37},"end":{"line":124,"column":65}},"26":{"start":{"line":125,"column":52},"end":{"line":125,"column":56}},"27":{"start":{"line":126,"column":53},"end":{"line":126,"column":58}},"28":{"start":{"line":127,"column":33},"end":{"line":127,"column":42}},"29":{"start":{"line":128,"column":6},"end":{"line":136,"column":9}},"30":{"start":{"line":138,"column":22},"end":{"line":143,"column":5}},"31":{"start":{"line":145,"column":4},"end":{"line":148,"column":6}},"32":{"start":{"line":155,"column":17},"end":{"line":155,"column":44}},"33":{"start":{"line":156,"column":4},"end":{"line":156,"column":26}},"34":{"start":{"line":158,"column":15},"end":{"line":158,"column":39}},"35":{"start":{"line":159,"column":4},"end":{"line":162,"column":5}},"36":{"start":{"line":160,"column":6},"end":{"line":160,"column":47}},"37":{"start":{"line":161,"column":6},"end":{"line":161,"column":38}},"38":{"start":{"line":163,"column":4},"end":{"line":163,"column":16}},"39":{"start":{"line":167,"column":4},"end":{"line":175,"column":7}},"40":{"start":{"line":168,"column":19},"end":{"line":168,"column":47}},"41":{"start":{"line":169,"column":6},"end":{"line":174,"column":7}},"42":{"start":{"line":170,"column":8},"end":{"line":172,"column":9}},"43":{"start":{"line":171,"column":10},"end":{"line":171,"column":35}},"44":{"start":{"line":173,"column":8},"end":{"line":173,"column":44}},"45":{"start":{"line":178,"column":2},"end":{"line":181,"column":4}}},"fnMap":{"0":{"name":"createProjectCache","decl":{"start":{"line":56,"column":16},"end":{"line":56,"column":34}},"loc":{"start":{"line":58,"column":16},"end":{"line":182,"column":1}},"line":58},"1":{"name":"findProjectRoot","decl":{"start":{"line":68,"column":11},"end":{"line":68,"column":26}},"loc":{"start":{"line":68,"column":55},"end":{"line":85,"column":3}},"line":68},"2":{"name":"readTSConfig","decl":{"start":{"line":87,"column":11},"end":{"line":87,"column":23}},"loc":{"start":{"line":87,"column":60},"end":{"line":100,"column":3}},"line":87},"3":{"name":"(anonymous_3)","decl":{"start":{"line":95,"column":29},"end":{"line":95,"column":30}},"loc":{"start":{"line":95,"column":36},"end":{"line":95,"column":51}},"line":95},"4":{"name":"createProjectInfo","decl":{"start":{"line":102,"column":11},"end":{"line":102,"column":28}},"loc":{"start":{"line":105,"column":17},"end":{"line":149,"column":3}},"line":105},"5":{"name":"(anonymous_5)","decl":{"start":{"line":119,"column":49},"end":{"line":119,"column":50}},"loc":{"start":{"line":119,"column":56},"end":{"line":119,"column":75}},"line":119},"6":{"name":"(anonymous_6)","decl":{"start":{"line":123,"column":39},"end":{"line":123,"column":40}},"loc":{"start":{"line":123,"column":79},"end":{"line":137,"column":5}},"line":123},"7":{"name":"getProjectInfo","decl":{"start":{"line":151,"column":11},"end":{"line":151,"column":25}},"loc":{"start":{"line":154,"column":17},"end":{"line":164,"column":3}},"line":154},"8":{"name":"clearPlatform","decl":{"start":{"line":166,"column":11},"end":{"line":166,"column":24}},"loc":{"start":{"line":166,"column":55},"end":{"line":176,"column":3}},"line":166},"9":{"name":"(anonymous_9)","decl":{"start":{"line":167,"column":36},"end":{"line":167,"column":37}},"loc":{"start":{"line":167,"column":60},"end":{"line":175,"column":5}},"line":167}},"branchMap":{"0":{"loc":{"start":{"line":71,"column":6},"end":{"line":73,"column":7}},"type":"if","locations":[{"start":{"line":71,"column":6},"end":{"line":73,"column":7}},{"start":{},"end":{}}],"line":71},"1":{"loc":{"start":{"line":78,"column":4},"end":{"line":82,"column":5}},"type":"if","locations":[{"start":{"line":78,"column":4},"end":{"line":82,"column":5}},{"start":{},"end":{}}],"line":78},"2":{"loc":{"start":{"line":91,"column":4},"end":{"line":97,"column":5}},"type":"if","locations":[{"start":{"line":91,"column":4},"end":{"line":97,"column":5}},{"start":{"line":93,"column":11},"end":{"line":97,"column":5}}],"line":91},"3":{"loc":{"start":{"line":93,"column":11},"end":{"line":97,"column":5}},"type":"if","locations":[{"start":{"line":93,"column":11},"end":{"line":97,"column":5}},{"start":{},"end":{}}],"line":93},"4":{"loc":{"start":{"line":159,"column":4},"end":{"line":162,"column":5}},"type":"if","locations":[{"start":{"line":159,"column":4},"end":{"line":162,"column":5}},{"start":{},"end":{}}],"line":159},"5":{"loc":{"start":{"line":169,"column":6},"end":{"line":174,"column":7}},"type":"if","locations":[{"start":{"line":169,"column":6},"end":{"line":174,"column":7}},{"start":{},"end":{}}],"line":169},"6":{"loc":{"start":{"line":170,"column":8},"end":{"line":172,"column":9}},"type":"if","locations":[{"start":{"line":170,"column":8},"end":{"line":172,"column":9}},{"start":{},"end":{}}],"line":170}},"s":{"0":6,"1":6,"2":6,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":6},"f":{"0":6,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"65b2723d8ab7694cfb7f1ef05a8cb4e0d5b788ee"}
6
6
  }
@@ -63,6 +63,14 @@ var jumpToCode = (function init() {
63
63
  }
64
64
 
65
65
  return function jump(event) {
66
+ if (
67
+ document.getElementById('fileSearch') === document.activeElement &&
68
+ document.activeElement != null
69
+ ) {
70
+ // if we're currently focused on the search input, we don't want to navigate
71
+ return;
72
+ }
73
+
66
74
  switch (event.which) {
67
75
  case 78: // n
68
76
  case 74: // j
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line low'></div>
59
65
  <div class="pad1">
@@ -89,25 +95,25 @@
89
95
 
90
96
  <tr>
91
97
  <td class="file medium" data-value="src/bundle"><a href="src/bundle/index.html">src/bundle</a></td>
92
- <td data-value="78.05" class="pic medium">
98
+ <td data-value="78.04" class="pic medium">
93
99
  <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
94
100
  </td>
95
- <td data-value="78.05" class="pct medium">78.05%</td>
101
+ <td data-value="78.04" class="pct medium">78.04%</td>
96
102
  <td data-value="41" class="abs medium">32/41</td>
97
103
  <td data-value="76.47" class="pct medium">76.47%</td>
98
104
  <td data-value="34" class="abs medium">26/34</td>
99
105
  <td data-value="85.71" class="pct high">85.71%</td>
100
106
  <td data-value="7" class="abs high">6/7</td>
101
- <td data-value="78.05" class="pct medium">78.05%</td>
107
+ <td data-value="78.04" class="pct medium">78.04%</td>
102
108
  <td data-value="41" class="abs medium">32/41</td>
103
109
  </tr>
104
110
 
105
111
  <tr>
106
112
  <td class="file low" data-value="src/typescript"><a href="src/typescript/index.html">src/typescript</a></td>
107
- <td data-value="8.7" class="pic low">
113
+ <td data-value="8.69" class="pic low">
108
114
  <div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
109
115
  </td>
110
- <td data-value="8.7" class="pct low">8.7%</td>
116
+ <td data-value="8.69" class="pct low">8.69%</td>
111
117
  <td data-value="46" class="abs low">4/46</td>
112
118
  <td data-value="0" class="pct low">0%</td>
113
119
  <td data-value="14" class="abs low">0/14</td>
@@ -124,10 +130,9 @@
124
130
  </div><!-- /wrapper -->
125
131
  <div class='footer quiet pad2 space-top1 center small'>
126
132
  Code coverage generated by
127
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
133
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
+ at Wed Feb 02 2022 14:52:38 GMT+0000 (Coordinated Universal Time)
129
135
  </div>
130
- </div>
131
136
  <script src="prettify.js"></script>
132
137
  <script>
133
138
  window.onload = function () {
@@ -24,6 +24,31 @@ var addSorting = (function() {
24
24
  return getTableHeader().querySelectorAll('th')[n];
25
25
  }
26
26
 
27
+ function onFilterInput() {
28
+ const searchValue = document.getElementById('fileSearch').value;
29
+ const rows = document.getElementsByTagName('tbody')[0].children;
30
+ for (let i = 0; i < rows.length; i++) {
31
+ const row = rows[i];
32
+ if (
33
+ row.textContent
34
+ .toLowerCase()
35
+ .includes(searchValue.toLowerCase())
36
+ ) {
37
+ row.style.display = '';
38
+ } else {
39
+ row.style.display = 'none';
40
+ }
41
+ }
42
+ }
43
+
44
+ // loads the search box
45
+ function addSearchBox() {
46
+ var template = document.getElementById('filterTemplate');
47
+ var templateClone = template.content.cloneNode(true);
48
+ templateClone.getElementById('fileSearch').oninput = onFilterInput;
49
+ template.parentElement.appendChild(templateClone);
50
+ }
51
+
27
52
  // loads all columns
28
53
  function loadColumns() {
29
54
  var colNodes = getTableHeader().querySelectorAll('th'),
@@ -162,6 +187,7 @@ var addSorting = (function() {
162
187
  }
163
188
  cols = loadColumns();
164
189
  loadData();
190
+ addSearchBox();
165
191
  addSortIndicators();
166
192
  enableUI();
167
193
  };
@@ -23,7 +23,7 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">78.05% </span>
26
+ <span class="strong">78.04% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>32/41</span>
29
29
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">78.05% </span>
47
+ <span class="strong">78.04% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>32/41</span>
50
50
  </div>
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line medium'></div>
59
65
  <div class="pad1">
@@ -74,16 +80,16 @@
74
80
  </thead>
75
81
  <tbody><tr>
76
82
  <td class="file high" data-value="kit-config.ts"><a href="kit-config.ts.html">kit-config.ts</a></td>
77
- <td data-value="95.24" class="pic high">
83
+ <td data-value="95.23" class="pic high">
78
84
  <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
79
85
  </td>
80
- <td data-value="95.24" class="pct high">95.24%</td>
86
+ <td data-value="95.23" class="pct high">95.23%</td>
81
87
  <td data-value="21" class="abs high">20/21</td>
82
88
  <td data-value="93.75" class="pct high">93.75%</td>
83
89
  <td data-value="16" class="abs high">15/16</td>
84
90
  <td data-value="100" class="pct high">100%</td>
85
91
  <td data-value="4" class="abs high">4/4</td>
86
- <td data-value="95.24" class="pct high">95.24%</td>
92
+ <td data-value="95.23" class="pct high">95.23%</td>
87
93
  <td data-value="21" class="abs high">20/21</td>
88
94
  </tr>
89
95
 
@@ -124,10 +130,9 @@
124
130
  </div><!-- /wrapper -->
125
131
  <div class='footer quiet pad2 space-top1 center small'>
126
132
  Code coverage generated by
127
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
133
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
+ at Wed Feb 02 2022 14:52:38 GMT+0000 (Coordinated Universal Time)
129
135
  </div>
130
- </div>
131
136
  <script src="../../prettify.js"></script>
132
137
  <script>
133
138
  window.onload = function () {
@@ -23,7 +23,7 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.24% </span>
26
+ <span class="strong">95.23% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>20/21</span>
29
29
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95.24% </span>
47
+ <span class="strong">95.23% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>20/21</span>
50
50
  </div>
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -360,10 +366,9 @@ export function getKitBundleConfigs(
360
366
  </div><!-- /wrapper -->
361
367
  <div class='footer quiet pad2 space-top1 center small'>
362
368
  Code coverage generated by
363
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
364
- at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
369
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
370
+ at Wed Feb 02 2022 14:52:38 GMT+0000 (Coordinated Universal Time)
365
371
  </div>
366
- </div>
367
372
  <script src="../../prettify.js"></script>
368
373
  <script>
369
374
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line medium'></div>
59
65
  <pre><table class="coverage">
@@ -278,7 +284,7 @@ export function createMetroBundleArgs({
278
284
  }
279
285
  &nbsp;
280
286
  // use an absolute path for the source map file
281
- <span class="missing-if-branch" title="else path not taken" >E</span>if (sourcemapOutput) {
287
+ if (sourcemapOutput) {
282
288
  sourcemapOutput = path.join(distPath, sourcemapOutput);
283
289
  }
284
290
  &nbsp;
@@ -336,10 +342,9 @@ export async function <span class="fstat-no" title="function not covered" >metro
336
342
  </div><!-- /wrapper -->
337
343
  <div class='footer quiet pad2 space-top1 center small'>
338
344
  Code coverage generated by
339
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
340
- at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
345
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
346
+ at Wed Feb 02 2022 14:52:38 GMT+0000 (Coordinated Universal Time)
341
347
  </div>
342
- </div>
343
348
  <script src="../../prettify.js"></script>
344
349
  <script>
345
350
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -225,10 +231,9 @@ export function applyKitBundleConfigOverrides(
225
231
  </div><!-- /wrapper -->
226
232
  <div class='footer quiet pad2 space-top1 center small'>
227
233
  Code coverage generated by
228
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
229
- at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
234
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
235
+ at Wed Feb 02 2022 14:52:38 GMT+0000 (Coordinated Universal Time)
230
236
  </div>
231
- </div>
232
237
  <script src="../../prettify.js"></script>
233
238
  <script>
234
239
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line medium'></div>
59
65
  <div class="pad1">
@@ -94,10 +100,9 @@
94
100
  </div><!-- /wrapper -->
95
101
  <div class='footer quiet pad2 space-top1 center small'>
96
102
  Code coverage generated by
97
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
103
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
+ at Wed Feb 02 2022 14:52:38 GMT+0000 (Coordinated Universal Time)
99
105
  </div>
100
- </div>
101
106
  <script src="../prettify.js"></script>
102
107
  <script>
103
108
  window.onload = function () {
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line medium'></div>
59
65
  <pre><table class="coverage">
@@ -547,7 +553,7 @@ export function customizeMetroConfig(
547
553
  let hook = emptySerializerHook;
548
554
  <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof typescriptValidation === "object") {
549
555
  <span class="cstat-no" title="statement not covered" > hook = createSerializerHook(typescriptValidation);</span>
550
- } else <span class="missing-if-branch" title="else path not taken" >E</span>if (typescriptValidation !== false) {
556
+ } else if (typescriptValidation !== false) {
551
557
  hook = createSerializerHook({});
552
558
  }
553
559
  metroConfig.serializer.experimentalSerializerHook = hook;
@@ -558,10 +564,9 @@ export function customizeMetroConfig(
558
564
  </div><!-- /wrapper -->
559
565
  <div class='footer quiet pad2 space-top1 center small'>
560
566
  Code coverage generated by
561
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
562
- at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
567
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
568
+ at Wed Feb 02 2022 14:52:38 GMT+0000 (Coordinated Universal Time)
563
569
  </div>
564
- </div>
565
570
  <script src="../prettify.js"></script>
566
571
  <script>
567
572
  window.onload = function () {
@@ -23,7 +23,7 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">8.7% </span>
26
+ <span class="strong">8.69% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>4/46</span>
29
29
  </div>
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line low'></div>
59
65
  <div class="pad1">
@@ -74,10 +80,10 @@
74
80
  </thead>
75
81
  <tbody><tr>
76
82
  <td class="file low" data-value="project-cache.ts"><a href="project-cache.ts.html">project-cache.ts</a></td>
77
- <td data-value="8.7" class="pic low">
83
+ <td data-value="8.69" class="pic low">
78
84
  <div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
79
85
  </td>
80
- <td data-value="8.7" class="pct low">8.7%</td>
86
+ <td data-value="8.69" class="pct low">8.69%</td>
81
87
  <td data-value="46" class="abs low">4/46</td>
82
88
  <td data-value="0" class="pct low">0%</td>
83
89
  <td data-value="14" class="abs low">0/14</td>
@@ -94,10 +100,9 @@
94
100
  </div><!-- /wrapper -->
95
101
  <div class='footer quiet pad2 space-top1 center small'>
96
102
  Code coverage generated by
97
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
103
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
+ at Wed Feb 02 2022 14:52:38 GMT+0000 (Coordinated Universal Time)
99
105
  </div>
100
- </div>
101
106
  <script src="../../prettify.js"></script>
102
107
  <script>
103
108
  window.onload = function () {
@@ -23,7 +23,7 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">8.7% </span>
26
+ <span class="strong">8.69% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>4/46</span>
29
29
  </div>
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line low'></div>
59
65
  <pre><table class="coverage">
@@ -609,10 +615,9 @@ export function createProjectCache(
609
615
  </div><!-- /wrapper -->
610
616
  <div class='footer quiet pad2 space-top1 center small'>
611
617
  Code coverage generated by
612
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
613
- at Fri Jan 07 2022 09:01:02 GMT+0000 (Coordinated Universal Time)
618
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
619
+ at Wed Feb 02 2022 14:52:38 GMT+0000 (Coordinated Universal Time)
614
620
  </div>
615
- </div>
616
621
  <script src="../../prettify.js"></script>
617
622
  <script>
618
623
  window.onload = function () {
package/lib/clean.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import type { Config as CLIConfig } from "@react-native-community/cli-types";
2
+ declare type Args = {
3
+ include?: string;
4
+ projectRoot?: string;
5
+ };
6
+ export declare function rnxClean(_argv: string[], _config: CLIConfig, cliOptions: Args): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=clean.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../src/clean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAQ7E,aAAK,IAAI,GAAG;IACV,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAWF,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,SAAS,EAClB,UAAU,EAAE,IAAI,GACf,OAAO,CAAC,IAAI,CAAC,CA+Gf"}
package/lib/clean.js ADDED
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.rnxClean = void 0;
16
+ const child_process_1 = require("child_process");
17
+ const fs_1 = require("fs");
18
+ const promises_1 = __importDefault(require("fs/promises"));
19
+ const ora_1 = __importDefault(require("ora"));
20
+ const os_1 = __importDefault(require("os"));
21
+ const path_1 = __importDefault(require("path"));
22
+ function rnxClean(_argv, _config, cliOptions) {
23
+ var _a, _b, _c;
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const projectRoot = (_a = cliOptions.projectRoot) !== null && _a !== void 0 ? _a : process.cwd();
26
+ if (!(0, fs_1.existsSync)(projectRoot)) {
27
+ throw new Error(`Invalid path provided! ${projectRoot}`);
28
+ }
29
+ const npm = os_1.default.platform() === "win32" ? "npm.cmd" : "npm";
30
+ const yarn = os_1.default.platform() === "win32" ? "yarn.cmd" : "yarn";
31
+ const COMMANDS = {
32
+ android: [
33
+ {
34
+ label: "Clean Gradle cache",
35
+ action: () => {
36
+ const candidates = os_1.default.platform() === "win32"
37
+ ? ["android/gradlew.bat", "gradlew.bat"]
38
+ : ["android/gradlew", "gradlew"];
39
+ const gradlew = findPath(projectRoot, candidates);
40
+ if (gradlew) {
41
+ const script = path_1.default.basename(gradlew);
42
+ return execute(os_1.default.platform() === "win32" ? script : `./${script}`, ["clean"], path_1.default.dirname(gradlew));
43
+ }
44
+ else {
45
+ return Promise.resolve();
46
+ }
47
+ },
48
+ },
49
+ ],
50
+ cocoapods: [
51
+ {
52
+ label: "Clean CocoaPods cache",
53
+ action: () => execute("pod", ["cache", "clean", "--all"], projectRoot),
54
+ },
55
+ ],
56
+ npm: [
57
+ {
58
+ label: "Remove node_modules",
59
+ action: () => cleanDir(`${projectRoot}/node_modules`),
60
+ },
61
+ {
62
+ label: "Verify npm cache",
63
+ action: () => execute(npm, ["cache", "verify"], projectRoot),
64
+ },
65
+ ],
66
+ metro: [
67
+ {
68
+ label: "Clean Metro cache",
69
+ action: () => cleanDir(`${os_1.default.tmpdir()}/metro-*`),
70
+ },
71
+ {
72
+ label: "Clean Haste cache",
73
+ action: () => cleanDir(`${os_1.default.tmpdir()}/haste-map-*`),
74
+ },
75
+ {
76
+ label: "Clean React Native cache",
77
+ action: () => cleanDir(`${os_1.default.tmpdir()}/react-*`),
78
+ },
79
+ ],
80
+ watchman: [
81
+ {
82
+ label: "Stop Watchman",
83
+ action: () => execute(os_1.default.platform() === "win32" ? "tskill" : "killall", ["watchman"], projectRoot),
84
+ },
85
+ {
86
+ label: "Delete Watchman cache",
87
+ action: () => execute("watchman", ["watch-del-all"], projectRoot),
88
+ },
89
+ ],
90
+ yarn: [
91
+ {
92
+ label: "Clean Yarn cache",
93
+ action: () => execute(yarn, ["cache", "clean"], projectRoot),
94
+ },
95
+ ],
96
+ };
97
+ const categories = (_c = (_b = cliOptions.include) === null || _b === void 0 ? void 0 : _b.split(",")) !== null && _c !== void 0 ? _c : [
98
+ "metro",
99
+ "npm",
100
+ "watchman",
101
+ "yarn",
102
+ ];
103
+ const spinner = (0, ora_1.default)();
104
+ for (const category of categories) {
105
+ const commands = COMMANDS[category];
106
+ if (!commands) {
107
+ spinner.warn(`Unknown category: ${category}`);
108
+ return;
109
+ }
110
+ for (const { action, label } of commands) {
111
+ spinner.start(label);
112
+ yield action()
113
+ .then(() => {
114
+ spinner.succeed();
115
+ })
116
+ .catch((e) => {
117
+ spinner.fail(`${label} » ${e}`);
118
+ });
119
+ }
120
+ }
121
+ });
122
+ }
123
+ exports.rnxClean = rnxClean;
124
+ function cleanDir(path) {
125
+ if (!(0, fs_1.existsSync)(path)) {
126
+ return Promise.resolve();
127
+ }
128
+ return promises_1.default.rmdir(path, { maxRetries: 3, recursive: true });
129
+ }
130
+ function findPath(startPath, files) {
131
+ // TODO: Find project files via `@react-native-community/cli`
132
+ for (const file of files) {
133
+ const filename = path_1.default.resolve(startPath, file);
134
+ if ((0, fs_1.existsSync)(filename)) {
135
+ return filename;
136
+ }
137
+ }
138
+ return undefined;
139
+ }
140
+ function execute(command, args, cwd) {
141
+ return new Promise((resolve, reject) => {
142
+ const process = (0, child_process_1.spawn)(command, args, {
143
+ cwd,
144
+ stdio: ["inherit", null, null],
145
+ });
146
+ const stderr = [];
147
+ process.stderr.on("data", (data) => {
148
+ stderr.push(data);
149
+ });
150
+ process.on("close", (code, signal) => {
151
+ if (code === 0) {
152
+ resolve();
153
+ }
154
+ else if (stderr) {
155
+ reject(Buffer.concat(stderr).toString().trimEnd());
156
+ }
157
+ else if (signal) {
158
+ reject(`Failed with signal ${signal}`);
159
+ }
160
+ else {
161
+ reject(`Failed with exit code ${code}`);
162
+ }
163
+ });
164
+ });
165
+ }
166
+ //# sourceMappingURL=clean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../src/clean.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -4,4 +4,5 @@ export { rnxStart } from "./start";
4
4
  export { rnxTest, rnxTestCommand } from "./test";
5
5
  export { rnxWriteThirdPartyNotices } from "./write-third-party-notices";
6
6
  export { parseBoolean } from "./parsers";
7
+ export { rnxClean } from "./clean";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC"}
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseBoolean = exports.rnxWriteThirdPartyNotices = exports.rnxTestCommand = exports.rnxTest = exports.rnxStart = exports.rnxDepCheckCommand = exports.rnxDepCheck = exports.rnxBundle = void 0;
3
+ exports.rnxClean = exports.parseBoolean = exports.rnxWriteThirdPartyNotices = exports.rnxTestCommand = exports.rnxTest = exports.rnxStart = exports.rnxDepCheckCommand = exports.rnxDepCheck = exports.rnxBundle = void 0;
4
4
  var bundle_1 = require("./bundle");
5
5
  Object.defineProperty(exports, "rnxBundle", { enumerable: true, get: function () { return bundle_1.rnxBundle; } });
6
6
  var dep_check_1 = require("./dep-check");
@@ -15,4 +15,6 @@ var write_third_party_notices_1 = require("./write-third-party-notices");
15
15
  Object.defineProperty(exports, "rnxWriteThirdPartyNotices", { enumerable: true, get: function () { return write_third_party_notices_1.rnxWriteThirdPartyNotices; } });
16
16
  var parsers_1 = require("./parsers");
17
17
  Object.defineProperty(exports, "parseBoolean", { enumerable: true, get: function () { return parsers_1.parseBoolean; } });
18
+ var clean_1 = require("./clean");
19
+ Object.defineProperty(exports, "rnxClean", { enumerable: true, get: function () { return clean_1.rnxClean; } });
18
20
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAA5B,mGAAA,SAAS,OAAA;AAClB,yCAA8D;AAArD,wGAAA,WAAW,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AACxC,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AACjB,+BAAiD;AAAxC,+FAAA,OAAO,OAAA;AAAE,sGAAA,cAAc,OAAA;AAChC,yEAAwE;AAA/D,sIAAA,yBAAyB,OAAA;AAClC,qCAAyC;AAAhC,uGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAA5B,mGAAA,SAAS,OAAA;AAClB,yCAA8D;AAArD,wGAAA,WAAW,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AACxC,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AACjB,+BAAiD;AAAxC,+FAAA,OAAO,OAAA;AAAE,sGAAA,cAAc,OAAA;AAChC,yEAAwE;AAA/D,sIAAA,yBAAyB,OAAA;AAClC,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rnx-kit/cli",
3
- "version": "0.10.0",
3
+ "version": "0.11.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",
@@ -21,7 +21,7 @@
21
21
  "dependencies": {
22
22
  "@rnx-kit/config": "^0.4.21",
23
23
  "@rnx-kit/console": "^1.0.11",
24
- "@rnx-kit/dep-check": "^1.9.5",
24
+ "@rnx-kit/dep-check": "^1.12.0",
25
25
  "@rnx-kit/metro-plugin-cyclic-dependencies-detector": "^1.0.21",
26
26
  "@rnx-kit/metro-plugin-duplicates-checker": "^1.2.15",
27
27
  "@rnx-kit/metro-serializer": "^1.0.11",
@@ -34,6 +34,7 @@
34
34
  "@rnx-kit/typescript-react-native-resolver": "^0.2.0",
35
35
  "@rnx-kit/typescript-service": "^1.5.3",
36
36
  "chalk": "^4.1.0",
37
+ "ora": "^5.4.1",
37
38
  "qrcode": "^1.5.0",
38
39
  "readline": "^1.3.0"
39
40
  },
@@ -7,6 +7,7 @@ const {
7
7
  rnxDepCheckCommand,
8
8
  rnxTestCommand,
9
9
  rnxWriteThirdPartyNotices,
10
+ rnxClean,
10
11
  } = require("./lib/index");
11
12
 
12
13
  module.exports = {
@@ -228,5 +229,23 @@ module.exports = {
228
229
  },
229
230
  ],
230
231
  },
232
+ {
233
+ name: "rnx-clean",
234
+ func: rnxClean,
235
+ description: "Clears React Native project related caches",
236
+ options: [
237
+ {
238
+ name: "--include [android,cocoapods,metro,npm,watchman,yarn]",
239
+ description:
240
+ "Comma-separated flag of caches to clear, e.g. `npm,yarn`. When not specified, only non-platform specific caches are cleared.",
241
+ default: "metro,npm,watchman,yarn",
242
+ },
243
+ {
244
+ name: "--project-root <path>",
245
+ description: "Root path to your React Native project (optional)",
246
+ parse: (val) => path.resolve(val),
247
+ },
248
+ ],
249
+ },
231
250
  ],
232
251
  };
package/src/clean.ts ADDED
@@ -0,0 +1,184 @@
1
+ import type { Config as CLIConfig } from "@react-native-community/cli-types";
2
+ import { spawn } from "child_process";
3
+ import { existsSync as fileExists } from "fs";
4
+ import fs from "fs/promises";
5
+ import ora from "ora";
6
+ import os from "os";
7
+ import path from "path";
8
+
9
+ type Args = {
10
+ include?: string;
11
+ projectRoot?: string;
12
+ };
13
+
14
+ type Task = {
15
+ label: string;
16
+ action: () => Promise<void>;
17
+ };
18
+
19
+ type CLICommand = {
20
+ [key: string]: Task[];
21
+ };
22
+
23
+ export async function rnxClean(
24
+ _argv: string[],
25
+ _config: CLIConfig,
26
+ cliOptions: Args
27
+ ): Promise<void> {
28
+ const projectRoot = cliOptions.projectRoot ?? process.cwd();
29
+ if (!fileExists(projectRoot)) {
30
+ throw new Error(`Invalid path provided! ${projectRoot}`);
31
+ }
32
+
33
+ const npm = os.platform() === "win32" ? "npm.cmd" : "npm";
34
+ const yarn = os.platform() === "win32" ? "yarn.cmd" : "yarn";
35
+
36
+ const COMMANDS: CLICommand = {
37
+ android: [
38
+ {
39
+ label: "Clean Gradle cache",
40
+ action: () => {
41
+ const candidates =
42
+ os.platform() === "win32"
43
+ ? ["android/gradlew.bat", "gradlew.bat"]
44
+ : ["android/gradlew", "gradlew"];
45
+ const gradlew = findPath(projectRoot, candidates);
46
+ if (gradlew) {
47
+ const script = path.basename(gradlew);
48
+ return execute(
49
+ os.platform() === "win32" ? script : `./${script}`,
50
+ ["clean"],
51
+ path.dirname(gradlew)
52
+ );
53
+ } else {
54
+ return Promise.resolve();
55
+ }
56
+ },
57
+ },
58
+ ],
59
+ cocoapods: [
60
+ {
61
+ label: "Clean CocoaPods cache",
62
+ action: () => execute("pod", ["cache", "clean", "--all"], projectRoot),
63
+ },
64
+ ],
65
+ npm: [
66
+ {
67
+ label: "Remove node_modules",
68
+ action: () => cleanDir(`${projectRoot}/node_modules`),
69
+ },
70
+ {
71
+ label: "Verify npm cache",
72
+ action: () => execute(npm, ["cache", "verify"], projectRoot),
73
+ },
74
+ ],
75
+ metro: [
76
+ {
77
+ label: "Clean Metro cache",
78
+ action: () => cleanDir(`${os.tmpdir()}/metro-*`),
79
+ },
80
+ {
81
+ label: "Clean Haste cache",
82
+ action: () => cleanDir(`${os.tmpdir()}/haste-map-*`),
83
+ },
84
+ {
85
+ label: "Clean React Native cache",
86
+ action: () => cleanDir(`${os.tmpdir()}/react-*`),
87
+ },
88
+ ],
89
+ watchman: [
90
+ {
91
+ label: "Stop Watchman",
92
+ action: () =>
93
+ execute(
94
+ os.platform() === "win32" ? "tskill" : "killall",
95
+ ["watchman"],
96
+ projectRoot
97
+ ),
98
+ },
99
+ {
100
+ label: "Delete Watchman cache",
101
+ action: () => execute("watchman", ["watch-del-all"], projectRoot),
102
+ },
103
+ ],
104
+ yarn: [
105
+ {
106
+ label: "Clean Yarn cache",
107
+ action: () => execute(yarn, ["cache", "clean"], projectRoot),
108
+ },
109
+ ],
110
+ };
111
+
112
+ const categories = cliOptions.include?.split(",") ?? [
113
+ "metro",
114
+ "npm",
115
+ "watchman",
116
+ "yarn",
117
+ ];
118
+
119
+ const spinner = ora();
120
+ for (const category of categories) {
121
+ const commands = COMMANDS[category];
122
+ if (!commands) {
123
+ spinner.warn(`Unknown category: ${category}`);
124
+ return;
125
+ }
126
+
127
+ for (const { action, label } of commands) {
128
+ spinner.start(label);
129
+ await action()
130
+ .then(() => {
131
+ spinner.succeed();
132
+ })
133
+ .catch((e) => {
134
+ spinner.fail(`${label} » ${e}`);
135
+ });
136
+ }
137
+ }
138
+ }
139
+
140
+ function cleanDir(path: string): Promise<void> {
141
+ if (!fileExists(path)) {
142
+ return Promise.resolve();
143
+ }
144
+
145
+ return fs.rmdir(path, { maxRetries: 3, recursive: true });
146
+ }
147
+
148
+ function findPath(startPath: string, files: string[]): string | undefined {
149
+ // TODO: Find project files via `@react-native-community/cli`
150
+ for (const file of files) {
151
+ const filename = path.resolve(startPath, file);
152
+ if (fileExists(filename)) {
153
+ return filename;
154
+ }
155
+ }
156
+
157
+ return undefined;
158
+ }
159
+
160
+ function execute(command: string, args: string[], cwd: string): Promise<void> {
161
+ return new Promise((resolve, reject) => {
162
+ const process = spawn(command, args, {
163
+ cwd,
164
+ stdio: ["inherit", null, null],
165
+ });
166
+
167
+ const stderr: Buffer[] = [];
168
+ process.stderr.on("data", (data) => {
169
+ stderr.push(data);
170
+ });
171
+
172
+ process.on("close", (code, signal) => {
173
+ if (code === 0) {
174
+ resolve();
175
+ } else if (stderr) {
176
+ reject(Buffer.concat(stderr).toString().trimEnd());
177
+ } else if (signal) {
178
+ reject(`Failed with signal ${signal}`);
179
+ } else {
180
+ reject(`Failed with exit code ${code}`);
181
+ }
182
+ });
183
+ });
184
+ }
package/src/index.ts CHANGED
@@ -4,3 +4,4 @@ export { rnxStart } from "./start";
4
4
  export { rnxTest, rnxTestCommand } from "./test";
5
5
  export { rnxWriteThirdPartyNotices } from "./write-third-party-notices";
6
6
  export { parseBoolean } from "./parsers";
7
+ export { rnxClean } from "./clean";