@rnx-kit/cli 0.9.56 → 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.
Files changed (36) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +14 -0
  3. package/coverage/clover.xml +25 -25
  4. package/coverage/coverage-final.json +5 -5
  5. package/coverage/lcov-report/block-navigation.js +8 -0
  6. package/coverage/lcov-report/index.html +20 -15
  7. package/coverage/lcov-report/sorter.js +26 -0
  8. package/coverage/lcov-report/src/bundle/index.html +13 -8
  9. package/coverage/lcov-report/src/bundle/kit-config.ts.html +10 -5
  10. package/coverage/lcov-report/src/bundle/metro.ts.html +9 -4
  11. package/coverage/lcov-report/src/bundle/overrides.ts.html +8 -3
  12. package/coverage/lcov-report/src/index.html +8 -3
  13. package/coverage/lcov-report/src/metro-config.ts.html +9 -4
  14. package/coverage/lcov-report/src/typescript/index.html +17 -12
  15. package/coverage/lcov-report/src/typescript/project-cache.ts.html +40 -23
  16. package/coverage/lcov.info +31 -29
  17. package/lib/clean.d.ts +8 -0
  18. package/lib/clean.d.ts.map +1 -0
  19. package/lib/clean.js +166 -0
  20. package/lib/clean.js.map +1 -0
  21. package/lib/index.d.ts +1 -0
  22. package/lib/index.d.ts.map +1 -1
  23. package/lib/index.js +3 -1
  24. package/lib/index.js.map +1 -1
  25. package/lib/start.d.ts.map +1 -1
  26. package/lib/start.js +35 -17
  27. package/lib/start.js.map +1 -1
  28. package/lib/typescript/project-cache.d.ts.map +1 -1
  29. package/lib/typescript/project-cache.js +10 -6
  30. package/lib/typescript/project-cache.js.map +1 -1
  31. package/package.json +8 -5
  32. package/react-native.config.js +19 -0
  33. package/src/clean.ts +184 -0
  34. package/src/index.ts +1 -0
  35. package/src/start.ts +39 -21
  36. package/src/typescript/project-cache.ts +12 -8
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAgB7E,oBAAY,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAYF,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,eAAe,GAC1B,OAAO,CAAC,IAAI,CAAC,CAoKf"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAkB7E,oBAAY,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAYF,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,eAAe,GAC1B,OAAO,CAAC,IAAI,CAAC,CAoLf"}
package/lib/start.js CHANGED
@@ -15,10 +15,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.rnxStart = void 0;
16
16
  const metro_service_1 = require("@rnx-kit/metro-service");
17
17
  const chalk_1 = __importDefault(require("chalk"));
18
+ const os_1 = __importDefault(require("os"));
18
19
  const path_1 = __importDefault(require("path"));
20
+ const qrcode_1 = __importDefault(require("qrcode"));
19
21
  const readline_1 = __importDefault(require("readline"));
20
- const kit_config_1 = require("./serve/kit-config");
21
22
  const metro_config_1 = require("./metro-config");
23
+ const kit_config_1 = require("./serve/kit-config");
22
24
  function friendlyRequire(module) {
23
25
  try {
24
26
  return require(module);
@@ -55,13 +57,16 @@ function rnxStart(_argv, cliConfig, cliOptions) {
55
57
  reportEventDelegate(event);
56
58
  }
57
59
  if (interactive && event.type === "dep_graph_loading") {
58
- terminal.log("To reload the app press '" + chalk_1.default.cyanBright("r") + "'");
59
- terminal.log("To open developer menu press '" + chalk_1.default.cyanBright("d") + "'");
60
- terminal.log("To quit, press '" +
61
- chalk_1.default.cyanBright("control") +
62
- "-" +
63
- chalk_1.default.cyanBright("c") +
64
- "'");
60
+ const dim = chalk_1.default.dim;
61
+ const press = dim(" Press ");
62
+ [
63
+ ["r", "reload the app"],
64
+ ["d", "open developer menu"],
65
+ ["a", "show bundler address QR code"],
66
+ ["ctrl-c", "quit"],
67
+ ].forEach(([key, description]) => {
68
+ terminal.log(press + key + dim(` to ${description}.`));
69
+ });
65
70
  }
66
71
  },
67
72
  };
@@ -138,16 +143,29 @@ function rnxStart(_argv, cliConfig, cliOptions) {
138
143
  break;
139
144
  }
140
145
  }
141
- else if (name === "r") {
142
- terminal.log(chalk_1.default.green("Reloading app..."));
143
- messageSocket.broadcast("reload", undefined);
144
- }
145
- else if (name === "d") {
146
- terminal.log(chalk_1.default.green("Opening developer menu..."));
147
- messageSocket.broadcast("devMenu", undefined);
148
- }
149
146
  else {
150
- terminal.log(chalk_1.default.grey(_key));
147
+ switch (name) {
148
+ case "a": {
149
+ const protocol = cliOptions.https ? "https" : "http";
150
+ const host = cliOptions.host || os_1.default.hostname();
151
+ const port = metroConfig.server.port;
152
+ const url = `${protocol}://${host}:${port}/index.bundle`;
153
+ qrcode_1.default.toString(url, { type: "terminal" }, (_err, qr) => {
154
+ terminal.log("");
155
+ terminal.log(url + ":");
156
+ terminal.log(qr);
157
+ });
158
+ break;
159
+ }
160
+ case "d":
161
+ terminal.log(chalk_1.default.green("Opening developer menu..."));
162
+ messageSocket.broadcast("devMenu", undefined);
163
+ break;
164
+ case "r":
165
+ terminal.log(chalk_1.default.green("Reloading app..."));
166
+ messageSocket.broadcast("reload", undefined);
167
+ break;
168
+ }
151
169
  }
152
170
  });
153
171
  }
package/lib/start.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project-cache.d.ts","sourceRoot":"","sources":["../../src/typescript/project-cache.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEb,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAEL,OAAO,EAER,MAAM,6BAA6B,CAAC;AAIrC,oBAAY,WAAW,GAAG;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAE5C;;;;;;;OAOG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC;CACzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,YAAY,CAwHd"}
1
+ {"version":3,"file":"project-cache.d.ts","sourceRoot":"","sources":["../../src/typescript/project-cache.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EAEb,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAEL,OAAO,EAER,MAAM,6BAA6B,CAAC;AAIrC,oBAAY,WAAW,GAAG;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAE5C;;;;;;;OAOG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC;CACzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,YAAY,CA4Hd"}
@@ -51,6 +51,16 @@ function createProjectCache(print) {
51
51
  function createProjectInfo(root, platform) {
52
52
  // Load the TypeScript configuration file for this project.
53
53
  const cmdLine = readTSConfig(root);
54
+ // Trim down the list of source files found by TypeScript. This ensures
55
+ // that only explicitly added files are loaded and parsed by TypeScript.
56
+ // This is a perf optimization. We don't want to spend cycles on files
57
+ // that won't be used, such as *.android.ts when bundling for ios.
58
+ //
59
+ // The exception to this rule are .d.ts files. They hold global types,
60
+ // modules and namespaces, and having them in the project is the only
61
+ // way they can be loaded.
62
+ const tssourceFiles = new Set(cmdLine.fileNames);
63
+ cmdLine.fileNames = cmdLine.fileNames.filter((f) => f.endsWith(".d.ts"));
54
64
  // Create a TypeScript project using the configuration file. Enhance the
55
65
  // underlying TS language service with our react-native module resolver.
56
66
  const enhanceLanguageServiceHost = (host) => {
@@ -69,12 +79,6 @@ function createProjectCache(print) {
69
79
  });
70
80
  };
71
81
  const tsproject = new typescript_service_1.Project(documentRegistry, diagnosticWriter, cmdLine, enhanceLanguageServiceHost);
72
- // Store TypeScript's source file list for this project. We'll use it later
73
- // to filter files from Metro's file graph. We only want to check files that
74
- // TypeScript considers to be source code, and not transpiled output.
75
- const tssourceFiles = new Set(cmdLine.fileNames);
76
- // Start with an empty project
77
- tsproject.removeAllFiles();
78
82
  return {
79
83
  tsproject,
80
84
  tssourceFiles,
@@ -1 +1 @@
1
- {"version":3,"file":"project-cache.js","sourceRoot":"","sources":["../../src/typescript/project-cache.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAqD;AACrD,mEAG8C;AAC9C,gGAA+F;AAC/F,oEAIqC;AACrC,gDAAwB;AACxB,4DAA4B;AAqC5B;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,KAAiC;IAEjC,MAAM,gBAAgB,GAAG,oBAAE,CAAC,sBAAsB,EAAE,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAA,2CAAsB,EAAC,KAAK,CAAC,CAAC;IAEvD,wEAAwE;IACxE,MAAM,QAAQ,GAGV,EAAE,CAAC;IAEP,SAAS,eAAe,CAAC,UAAkB;QACzC,6EAA6E;QAC7E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACxC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBAC/B,OAAO,IAAI,CAAC;aACb;SACF;QAED,gEAAgE;QAChE,MAAM,IAAI,GAAG,IAAA,2BAAc,EAAC,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CACb,6CAA6C,UAAU,GAAG,CAC3D,CAAC;SACH;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,YAAY,CAAC,IAAY;QAChC,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAExD,MAAM,OAAO,GAAG,IAAA,mCAAc,EAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,cAAc,GAAG,CAAC,CAAC;SACvD;aAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,MAAM,MAAM,GAAG,IAAA,2CAAsB,GAAE,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,mBAAmB,cAAc,GAAG,CAAC,CAAC;SACvD;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,iBAAiB,CACxB,IAAY,EACZ,QAAsB;QAEtB,2DAA2D;QAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnC,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,0BAA0B,GAAG,CAAC,IAA4B,EAAQ,EAAE;YACxE,MAAM,sBAAsB,GAAG,IAAA,6BAAkB,EAAC,QAAQ,CAAC,CAAC;YAC5D,MAAM,qCAAqC,GAAG,IAAI,CAAC;YACnD,MAAM,sCAAsC,GAAG,KAAK,CAAC;YACrD,MAAM,kBAAkB,GAAG,SAAS,CAAC;YACrC,IAAA,qEAAkC,EAAC;gBACjC,IAAI;gBACJ,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ;gBACR,sBAAsB;gBACtB,qCAAqC;gBACrC,sCAAsC;gBACtC,kBAAkB;aACnB,CAAC,CAAC;QACL,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,4BAAO,CAC3B,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,0BAA0B,CAC3B,CAAC;QAEF,4EAA4E;QAC5E,6EAA6E;QAC7E,sEAAsE;QACtE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEjD,8BAA8B;QAC9B,SAAS,CAAC,cAAc,EAAE,CAAC;QAE3B,OAAO;YACL,SAAS;YACT,aAAa;SACd,CAAC;IACJ,CAAC;IAED,SAAS,cAAc,CACrB,UAAkB,EAClB,QAAsB;QAEtB,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QACzC,QAAQ,CAAC,IAAI,MAAb,QAAQ,CAAC,IAAI,IAAM,EAAE,EAAC;QAEtB,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,aAAa,CAAC,QAAsB;QAC3C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,IAAI,EAAE;gBACR,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;iBAC1B;gBACD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;aACrC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,aAAa;QACb,cAAc;KACf,CAAC;AACJ,CAAC;AA1HD,gDA0HC"}
1
+ {"version":3,"file":"project-cache.js","sourceRoot":"","sources":["../../src/typescript/project-cache.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rnx-kit/cli",
3
- "version": "0.9.56",
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,19 +21,21 @@
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",
28
- "@rnx-kit/metro-serializer-esbuild": "^0.0.23",
28
+ "@rnx-kit/metro-serializer-esbuild": "^0.1.0",
29
29
  "@rnx-kit/metro-service": "^1.1.13",
30
30
  "@rnx-kit/third-party-notices": "^1.2.13",
31
31
  "@rnx-kit/tools-language": "^1.2.6",
32
32
  "@rnx-kit/tools-node": "^1.2.6",
33
- "@rnx-kit/tools-react-native": "^1.0.10",
34
- "@rnx-kit/typescript-react-native-resolver": "^0.1.3",
33
+ "@rnx-kit/tools-react-native": "^1.2.0",
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",
38
+ "qrcode": "^1.5.0",
37
39
  "readline": "^1.3.0"
38
40
  },
39
41
  "peerDependencies": {
@@ -50,6 +52,7 @@
50
52
  "@rnx-kit/scripts": "*",
51
53
  "@types/metro": "^0.66.0",
52
54
  "@types/metro-config": "^0.66.0",
55
+ "@types/qrcode": "^1.4.2",
53
56
  "jest-extended": "^0.11.5",
54
57
  "typescript": "^4.0.0"
55
58
  },
@@ -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";
package/src/start.ts CHANGED
@@ -6,13 +6,15 @@ import {
6
6
  startServer,
7
7
  } from "@rnx-kit/metro-service";
8
8
  import chalk from "chalk";
9
- import type { Reporter, ReportableEvent } from "metro";
10
- import type Server from "metro/src/Server";
9
+ import type { ReportableEvent, Reporter } from "metro";
11
10
  import type { Middleware } from "metro-config";
11
+ import type Server from "metro/src/Server";
12
+ import os from "os";
12
13
  import path from "path";
14
+ import qrcode from "qrcode";
13
15
  import readline from "readline";
14
- import { getKitServerConfig } from "./serve/kit-config";
15
16
  import { customizeMetroConfig } from "./metro-config";
17
+ import { getKitServerConfig } from "./serve/kit-config";
16
18
  import type { TypeScriptValidationOptions } from "./types";
17
19
 
18
20
  export type CLIStartOptions = {
@@ -85,17 +87,16 @@ export async function rnxStart(
85
87
  reportEventDelegate(event);
86
88
  }
87
89
  if (interactive && event.type === "dep_graph_loading") {
88
- terminal.log("To reload the app press '" + chalk.cyanBright("r") + "'");
89
- terminal.log(
90
- "To open developer menu press '" + chalk.cyanBright("d") + "'"
91
- );
92
- terminal.log(
93
- "To quit, press '" +
94
- chalk.cyanBright("control") +
95
- "-" +
96
- chalk.cyanBright("c") +
97
- "'"
98
- );
90
+ const dim = chalk.dim;
91
+ const press = dim(" › Press ");
92
+ [
93
+ ["r", "reload the app"],
94
+ ["d", "open developer menu"],
95
+ ["a", "show bundler address QR code"],
96
+ ["ctrl-c", "quit"],
97
+ ].forEach(([key, description]) => {
98
+ terminal.log(press + key + dim(` to ${description}.`));
99
+ });
99
100
  }
100
101
  },
101
102
  };
@@ -199,14 +200,31 @@ export async function rnxStart(
199
200
  process.emit("SIGTSTP", "SIGTSTP");
200
201
  break;
201
202
  }
202
- } else if (name === "r") {
203
- terminal.log(chalk.green("Reloading app..."));
204
- messageSocket.broadcast("reload", undefined);
205
- } else if (name === "d") {
206
- terminal.log(chalk.green("Opening developer menu..."));
207
- messageSocket.broadcast("devMenu", undefined);
208
203
  } else {
209
- terminal.log(chalk.grey(_key));
204
+ switch (name) {
205
+ case "a": {
206
+ const protocol = cliOptions.https ? "https" : "http";
207
+ const host = cliOptions.host || os.hostname();
208
+ const port = metroConfig.server.port;
209
+ const url = `${protocol}://${host}:${port}/index.bundle`;
210
+ qrcode.toString(url, { type: "terminal" }, (_err, qr) => {
211
+ terminal.log("");
212
+ terminal.log(url + ":");
213
+ terminal.log(qr);
214
+ });
215
+ break;
216
+ }
217
+
218
+ case "d":
219
+ terminal.log(chalk.green("Opening developer menu..."));
220
+ messageSocket.broadcast("devMenu", undefined);
221
+ break;
222
+
223
+ case "r":
224
+ terminal.log(chalk.green("Reloading app..."));
225
+ messageSocket.broadcast("reload", undefined);
226
+ break;
227
+ }
210
228
  }
211
229
  });
212
230
  }
@@ -106,6 +106,18 @@ export function createProjectCache(
106
106
  // Load the TypeScript configuration file for this project.
107
107
  const cmdLine = readTSConfig(root);
108
108
 
109
+ // Trim down the list of source files found by TypeScript. This ensures
110
+ // that only explicitly added files are loaded and parsed by TypeScript.
111
+ // This is a perf optimization. We don't want to spend cycles on files
112
+ // that won't be used, such as *.android.ts when bundling for ios.
113
+ //
114
+ // The exception to this rule are .d.ts files. They hold global types,
115
+ // modules and namespaces, and having them in the project is the only
116
+ // way they can be loaded.
117
+
118
+ const tssourceFiles = new Set(cmdLine.fileNames);
119
+ cmdLine.fileNames = cmdLine.fileNames.filter((f) => f.endsWith(".d.ts"));
120
+
109
121
  // Create a TypeScript project using the configuration file. Enhance the
110
122
  // underlying TS language service with our react-native module resolver.
111
123
  const enhanceLanguageServiceHost = (host: ts.LanguageServiceHost): void => {
@@ -130,14 +142,6 @@ export function createProjectCache(
130
142
  enhanceLanguageServiceHost
131
143
  );
132
144
 
133
- // Store TypeScript's source file list for this project. We'll use it later
134
- // to filter files from Metro's file graph. We only want to check files that
135
- // TypeScript considers to be source code, and not transpiled output.
136
- const tssourceFiles = new Set(cmdLine.fileNames);
137
-
138
- // Start with an empty project
139
- tsproject.removeAllFiles();
140
-
141
145
  return {
142
146
  tsproject,
143
147
  tssourceFiles,