@rnx-kit/cli 0.14.0 → 0.14.3

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/lib/start.js CHANGED
@@ -1,13 +1,4 @@
1
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
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -29,160 +20,163 @@ function friendlyRequire(module) {
29
20
  throw new Error(`Cannot find module '${module}'. This probably means that '@rnx-kit/cli' is not compatible with the version of '@react-native-community/cli' that you are currently using. Please update to the latest version and try again. If the issue still persists after the update, please file a bug at https://github.com/microsoft/rnx-kit/issues.`);
30
21
  }
31
22
  }
32
- function hasWebsocketEndpoints(devServer) {
33
- return !("attachToServer" in devServer);
23
+ function hasAttachToServerFunction(devServer) {
24
+ return "attachToServer" in devServer;
34
25
  }
35
- function rnxStart(_argv, cliConfig, cliOptions) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- const serverConfig = (0, kit_config_1.getKitServerConfig)(cliOptions);
38
- const { createDevServerMiddleware, indexPageMiddleware } = friendlyRequire("@react-native-community/cli-server-api");
39
- // interactive mode requires raw access to stdin
40
- let interactive = cliOptions.interactive;
41
- if (interactive) {
42
- interactive = process.stdin.isTTY;
43
- if (!interactive) {
44
- console.warn(chalk_1.default.yellow("Warning: Interactive mode is not supported on this terminal"));
45
- }
26
+ async function rnxStart(_argv, cliConfig, cliOptions) {
27
+ const serverConfig = (0, kit_config_1.getKitServerConfig)(cliOptions);
28
+ const { createDevServerMiddleware, indexPageMiddleware } = friendlyRequire("@react-native-community/cli-server-api");
29
+ // interactive mode requires raw access to stdin
30
+ let interactive = cliOptions.interactive;
31
+ if (interactive) {
32
+ interactive = process.stdin.isTTY;
33
+ if (!interactive) {
34
+ console.warn(chalk_1.default.yellow("Warning: Interactive mode is not supported on this terminal"));
46
35
  }
47
- // create a Metro terminal and reporter for writing to the console
48
- const { terminal, reporter: terminalReporter } = (0, metro_service_1.createTerminal)(cliOptions.customLogReporterPath);
49
- // create a reporter function, to be bound to the Metro configuration.
50
- // which writes to the Metro terminal and
51
- // also notifies the `reportEvent` delegate.
52
- let reportEventDelegate = undefined;
53
- const reporter = {
54
- update(event) {
55
- terminalReporter.update(event);
56
- if (reportEventDelegate) {
57
- reportEventDelegate(event);
58
- }
59
- if (interactive && event.type === "dep_graph_loading") {
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
- });
70
- }
71
- },
72
- };
73
- // load Metro configuration, applying overrides from the command line
74
- const metroConfig = yield (0, metro_service_1.loadMetroConfig)(cliConfig, Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, cliOptions), (serverConfig.projectRoot
36
+ }
37
+ // create a Metro terminal and reporter for writing to the console
38
+ const { terminal, reporter: terminalReporter } = (0, metro_service_1.createTerminal)(cliOptions.customLogReporterPath);
39
+ // create a reporter function, to be bound to the Metro configuration.
40
+ // which writes to the Metro terminal and
41
+ // also notifies the `reportEvent` delegate.
42
+ let reportEventDelegate = undefined;
43
+ const reporter = {
44
+ update(event) {
45
+ terminalReporter.update(event);
46
+ if (reportEventDelegate) {
47
+ reportEventDelegate(event);
48
+ }
49
+ if (interactive && event.type === "dep_graph_loading") {
50
+ const dim = chalk_1.default.dim;
51
+ const press = dim(" › Press ");
52
+ [
53
+ ["r", "reload the app"],
54
+ ["d", "open developer menu"],
55
+ ["a", "show bundler address QR code"],
56
+ ["ctrl-c", "quit"],
57
+ ].forEach(([key, description]) => {
58
+ terminal.log(press + key + dim(` to ${description}.`));
59
+ });
60
+ }
61
+ },
62
+ };
63
+ // load Metro configuration, applying overrides from the command line
64
+ const metroConfig = await (0, metro_service_1.loadMetroConfig)(cliConfig, {
65
+ ...cliOptions,
66
+ ...(serverConfig.projectRoot
75
67
  ? { projectRoot: path_1.default.resolve(serverConfig.projectRoot) }
76
- : undefined)), { reporter }), (serverConfig.sourceExts
68
+ : undefined),
69
+ reporter,
70
+ ...(serverConfig.sourceExts
77
71
  ? { sourceExts: serverConfig.sourceExts }
78
- : undefined)), (serverConfig.assetPlugins
72
+ : undefined),
73
+ ...(serverConfig.assetPlugins
79
74
  ? {
80
75
  assetPlugins: serverConfig.assetPlugins.map((p) => require.resolve(p)),
81
76
  }
82
- : undefined)));
83
- // customize the metro config to include plugins, presets, etc.
84
- (0, metro_config_1.customizeMetroConfig)(metroConfig, serverConfig.detectCyclicDependencies, serverConfig.detectDuplicateDependencies, serverConfig.typescriptValidation, serverConfig.treeShake, (message) => {
85
- terminal.log(message);
86
- });
87
- // create middleware -- a collection of plugins which handle incoming
88
- // http(s) requests, routing them to static pages or JS functions.
89
- const devServer = createDevServerMiddleware({
90
- host: cliOptions.host,
91
- port: metroConfig.server.port,
92
- watchFolders: metroConfig.watchFolders,
93
- });
94
- const middleware = devServer.middleware;
95
- middleware.use(indexPageMiddleware);
96
- // merge the Metro config middleware with our middleware
97
- const enhanceMiddleware = metroConfig.server.enhanceMiddleware;
98
- // eslint-disable-next-line
99
- // @ts-ignore
100
- metroConfig.server.enhanceMiddleware = (metroMiddleware, metroServer) => {
101
- return middleware.use(enhanceMiddleware
102
- ? enhanceMiddleware(metroMiddleware, metroServer)
103
- : metroMiddleware);
104
- };
105
- // `createDevServerMiddleware` changed its return type in
106
- // https://github.com/react-native-community/cli/pull/1560
107
- let websocketEndpoints = undefined;
108
- let messageSocketEndpoint;
109
- if (hasWebsocketEndpoints(devServer)) {
110
- websocketEndpoints = devServer.websocketEndpoints;
111
- messageSocketEndpoint = devServer.messageSocketEndpoint;
112
- // bind our `reportEvent` delegate to the Metro server
113
- reportEventDelegate = devServer.eventsSocketEndpoint.reportEvent;
114
- }
115
- // start the Metro server
116
- const serverOptions = {
117
- host: cliOptions.host,
118
- secure: cliOptions.https,
119
- secureCert: cliOptions.cert,
120
- secureKey: cliOptions.key,
121
- websocketEndpoints,
122
- };
123
- const serverInstance = yield (0, metro_service_1.startServer)(metroConfig, serverOptions);
124
- if (!hasWebsocketEndpoints(devServer)) {
125
- const { messageSocket, eventsSocket } = devServer.attachToServer(serverInstance);
126
- messageSocketEndpoint = messageSocket;
127
- // bind our `reportEvent` delegate to the Metro server
128
- reportEventDelegate = eventsSocket.reportEvent;
129
- }
130
- // In Node 8, the default keep-alive for an HTTP connection is 5 seconds. In
131
- // early versions of Node 8, this was implemented in a buggy way which caused
132
- // some HTTP responses (like those containing large JS bundles) to be
133
- // terminated early.
134
- //
135
- // As a workaround, arbitrarily increase the keep-alive from 5 to 30 seconds,
136
- // which should be enough to send even the largest of JS bundles.
137
- //
138
- // For more info: https://github.com/nodejs/node/issues/13391
139
- //
140
- serverInstance.keepAliveTimeout = 30000;
141
- // in interactive mode, listen for keyboard events from stdin and bind
142
- // them to specific actions.
143
- if (interactive) {
144
- readline_1.default.emitKeypressEvents(process.stdin);
145
- process.stdin.setRawMode(true);
146
- process.stdin.on("keypress", (_key, data) => {
147
- const { ctrl, name } = data;
148
- if (ctrl === true) {
149
- switch (name) {
150
- case "c":
151
- terminal.log(chalk_1.default.green("Exiting..."));
152
- process.exit();
153
- break;
154
- case "z":
155
- process.emit("SIGTSTP", "SIGTSTP");
156
- break;
157
- }
77
+ : undefined),
78
+ });
79
+ // customize the metro config to include plugins, presets, etc.
80
+ (0, metro_config_1.customizeMetroConfig)(metroConfig, serverConfig.detectCyclicDependencies, serverConfig.detectDuplicateDependencies, serverConfig.typescriptValidation, serverConfig.treeShake, (message) => {
81
+ terminal.log(message);
82
+ });
83
+ // create middleware -- a collection of plugins which handle incoming
84
+ // http(s) requests, routing them to static pages or JS functions.
85
+ const devServer = createDevServerMiddleware({
86
+ host: cliOptions.host,
87
+ port: metroConfig.server.port,
88
+ watchFolders: metroConfig.watchFolders,
89
+ });
90
+ const middleware = devServer.middleware;
91
+ middleware.use(indexPageMiddleware);
92
+ // merge the Metro config middleware with our middleware
93
+ const enhanceMiddleware = metroConfig.server.enhanceMiddleware;
94
+ // @ts-expect-error We want to assign to read-only `enhanceMiddleware`
95
+ metroConfig.server.enhanceMiddleware = (metroMiddleware, metroServer) => {
96
+ return middleware.use(enhanceMiddleware
97
+ ? enhanceMiddleware(metroMiddleware, metroServer)
98
+ : metroMiddleware);
99
+ };
100
+ // `createDevServerMiddleware` changed its return type in
101
+ // https://github.com/react-native-community/cli/pull/1560
102
+ let websocketEndpoints = undefined;
103
+ let messageSocketEndpoint;
104
+ if (!hasAttachToServerFunction(devServer)) {
105
+ websocketEndpoints = devServer.websocketEndpoints;
106
+ messageSocketEndpoint = devServer.messageSocketEndpoint;
107
+ // bind our `reportEvent` delegate to the Metro server
108
+ reportEventDelegate = devServer.eventsSocketEndpoint.reportEvent;
109
+ }
110
+ // start the Metro server
111
+ const serverOptions = {
112
+ host: cliOptions.host,
113
+ secure: cliOptions.https,
114
+ secureCert: cliOptions.cert,
115
+ secureKey: cliOptions.key,
116
+ websocketEndpoints,
117
+ };
118
+ const serverInstance = await (0, metro_service_1.startServer)(metroConfig, serverOptions);
119
+ if (hasAttachToServerFunction(devServer)) {
120
+ const { messageSocket, eventsSocket } = devServer.attachToServer(serverInstance);
121
+ messageSocketEndpoint = messageSocket;
122
+ // bind our `reportEvent` delegate to the Metro server
123
+ reportEventDelegate = eventsSocket.reportEvent;
124
+ }
125
+ // In Node 8, the default keep-alive for an HTTP connection is 5 seconds. In
126
+ // early versions of Node 8, this was implemented in a buggy way which caused
127
+ // some HTTP responses (like those containing large JS bundles) to be
128
+ // terminated early.
129
+ //
130
+ // As a workaround, arbitrarily increase the keep-alive from 5 to 30 seconds,
131
+ // which should be enough to send even the largest of JS bundles.
132
+ //
133
+ // For more info: https://github.com/nodejs/node/issues/13391
134
+ //
135
+ serverInstance.keepAliveTimeout = 30000;
136
+ // in interactive mode, listen for keyboard events from stdin and bind
137
+ // them to specific actions.
138
+ if (interactive) {
139
+ readline_1.default.emitKeypressEvents(process.stdin);
140
+ process.stdin.setRawMode(true);
141
+ process.stdin.on("keypress", (_key, data) => {
142
+ const { ctrl, name } = data;
143
+ if (ctrl === true) {
144
+ switch (name) {
145
+ case "c":
146
+ terminal.log(chalk_1.default.green("Exiting..."));
147
+ process.exit();
148
+ break;
149
+ case "z":
150
+ process.emit("SIGTSTP", "SIGTSTP");
151
+ break;
158
152
  }
159
- else {
160
- switch (name) {
161
- case "a": {
162
- const protocol = cliOptions.https ? "https" : "http";
163
- const host = cliOptions.host || os_1.default.hostname();
164
- const port = metroConfig.server.port;
165
- const url = `${protocol}://${host}:${port}/index.bundle`;
166
- qrcode_1.default.toString(url, { type: "terminal" }, (_err, qr) => {
167
- terminal.log("");
168
- terminal.log(url + ":");
169
- terminal.log(qr);
170
- });
171
- break;
172
- }
173
- case "d":
174
- terminal.log(chalk_1.default.green("Opening developer menu..."));
175
- messageSocketEndpoint.broadcast("devMenu", undefined);
176
- break;
177
- case "r":
178
- terminal.log(chalk_1.default.green("Reloading app..."));
179
- messageSocketEndpoint.broadcast("reload", undefined);
180
- break;
153
+ }
154
+ else {
155
+ switch (name) {
156
+ case "a": {
157
+ const protocol = cliOptions.https ? "https" : "http";
158
+ const host = cliOptions.host || os_1.default.hostname();
159
+ const port = metroConfig.server.port;
160
+ const url = `${protocol}://${host}:${port}/index.bundle`;
161
+ qrcode_1.default.toString(url, { type: "terminal" }, (_err, qr) => {
162
+ terminal.log("");
163
+ terminal.log(url + ":");
164
+ terminal.log(qr);
165
+ });
166
+ break;
181
167
  }
168
+ case "d":
169
+ terminal.log(chalk_1.default.green("Opening developer menu..."));
170
+ messageSocketEndpoint.broadcast("devMenu", undefined);
171
+ break;
172
+ case "r":
173
+ terminal.log(chalk_1.default.green("Reloading app..."));
174
+ messageSocketEndpoint.broadcast("reload", undefined);
175
+ break;
182
176
  }
183
- });
184
- }
185
- });
177
+ }
178
+ });
179
+ }
186
180
  }
187
181
  exports.rnxStart = rnxStart;
188
182
  //# sourceMappingURL=start.js.map
package/lib/start.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,0DAIgC;AAChC,kDAA0B;AAI1B,4CAAoB;AACpB,gDAAwB;AACxB,oDAA4B;AAC5B,wDAAgC;AAChC,iDAAsD;AACtD,mDAAwD;AAgCxD,SAAS,eAAe,CAAI,MAAc;IACxC,IAAI;QACF,OAAO,OAAO,CAAC,MAAM,CAAM,CAAC;KAC7B;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,KAAK,CACb,uBAAuB,MAAM,iTAAiT,CAC/U,CAAC;KACH;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,SAAqD;IAErD,OAAO,CAAC,CAAC,gBAAgB,IAAI,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,SAAsB,QAAQ,CAC5B,KAAoB,EACpB,SAAoB,EACpB,UAA2B;;QAE3B,MAAM,YAAY,GAAG,IAAA,+BAAkB,EAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAExE,wCAAwC,CAAC,CAAC;QAE5C,gDAAgD;QAChD,IAAI,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QACzC,IAAI,WAAW,EAAE;YACf,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,WAAW,EAAE;gBAChB,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CACV,6DAA6D,CAC9D,CACF,CAAC;aACH;SACF;QAED,kEAAkE;QAClE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAA,8BAAc,EAC7D,UAAU,CAAC,qBAAqB,CACjC,CAAC;QAEF,sEAAsE;QACtE,yCAAyC;QACzC,4CAA4C;QAC5C,IAAI,mBAAmB,GAAmC,SAAS,CAAC;QACpE,MAAM,QAAQ,GAAa;YACzB,MAAM,CAAC,KAAsB;gBAC3B,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,mBAAmB,EAAE;oBACvB,mBAAmB,CAAC,KAAK,CAAC,CAAC;iBAC5B;gBACD,IAAI,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;oBACrD,MAAM,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC;oBACtB,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC/B;wBACE,CAAC,GAAG,EAAE,gBAAgB,CAAC;wBACvB,CAAC,GAAG,EAAE,qBAAqB,CAAC;wBAC5B,CAAC,GAAG,EAAE,8BAA8B,CAAC;wBACrC,CAAC,QAAQ,EAAE,MAAM,CAAC;qBACnB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE;wBAC/B,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,WAAW,GAAG,CAAC,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;QAEF,qEAAqE;QACrE,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAe,EAAC,SAAS,4EAC9C,UAAU,GACV,CAAC,YAAY,CAAC,WAAW;YAC1B,CAAC,CAAC,EAAE,WAAW,EAAE,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YACzD,CAAC,CAAC,SAAS,CAAC,KACd,QAAQ,KACL,CAAC,YAAY,CAAC,UAAU;YACzB,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE;YACzC,CAAC,CAAC,SAAS,CAAC,GACX,CAAC,YAAY,CAAC,YAAY;YAC3B,CAAC,CAAC;gBACE,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CACnB;aACF;YACH,CAAC,CAAC,SAAS,CAAC,EACd,CAAC;QAEH,+DAA+D;QAC/D,IAAA,mCAAoB,EAClB,WAAW,EACX,YAAY,CAAC,wBAAwB,EACrC,YAAY,CAAC,2BAA2B,EACxC,YAAY,CAAC,oBAAoB,EACjC,YAAY,CAAC,SAAS,EACtB,CAAC,OAAe,EAAQ,EAAE;YACxB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CACF,CAAC;QAEF,qEAAqE;QACrE,kEAAkE;QAClE,MAAM,SAAS,GAAG,yBAAyB,CAAC;YAC1C,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI;YAC7B,YAAY,EAAE,WAAW,CAAC,YAAY;SACvC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACxC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEpC,wDAAwD;QACxD,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC/D,2BAA2B;QAC3B,aAAa;QACb,WAAW,CAAC,MAAM,CAAC,iBAAiB,GAAG,CACrC,eAA2B,EAC3B,WAAmB,EACnB,EAAE;YACF,OAAO,UAAU,CAAC,GAAG,CACnB,iBAAiB;gBACf,CAAC,CAAC,iBAAiB,CAAC,eAAe,EAAE,WAAW,CAAC;gBACjD,CAAC,CAAC,eAAe,CACpB,CAAC;QACJ,CAAC,CAAC;QAEF,yDAAyD;QACzD,0DAA0D;QAC1D,IAAI,kBAAkB,GAAY,SAAS,CAAC;QAC5C,IAAI,qBAAiD,CAAC;QAEtD,IAAI,qBAAqB,CAAC,SAAS,CAAC,EAAE;YACpC,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;YAClD,qBAAqB,GAAG,SAAS,CAAC,qBAAqB,CAAC;YAExD,sDAAsD;YACtD,mBAAmB,GAAG,SAAS,CAAC,oBAAoB,CAAC,WAAW,CAAC;SAClE;QAED,yBAAyB;QACzB,MAAM,aAAa,GAAG;YACpB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,UAAU,CAAC,KAAK;YACxB,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,SAAS,EAAE,UAAU,CAAC,GAAG;YACzB,kBAAkB;SACnB,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,IAAA,2BAAW,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAErE,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE;YACrC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GACnC,SAAS,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAC3C,qBAAqB,GAAG,aAAa,CAAC;YAEtC,sDAAsD;YACtD,mBAAmB,GAAG,YAAY,CAAC,WAAW,CAAC;SAChD;QAED,4EAA4E;QAC5E,6EAA6E;QAC7E,qEAAqE;QACrE,oBAAoB;QACpB,EAAE;QACF,6EAA6E;QAC7E,iEAAiE;QACjE,EAAE;QACF,6DAA6D;QAC7D,EAAE;QACF,cAAc,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAExC,sEAAsE;QACtE,4BAA4B;QAC5B,IAAI,WAAW,EAAE;YACf,kBAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAE3C,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBAC1C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;gBAC5B,IAAI,IAAI,KAAK,IAAI,EAAE;oBACjB,QAAQ,IAAI,EAAE;wBACZ,KAAK,GAAG;4BACN,QAAQ,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;4BACxC,OAAO,CAAC,IAAI,EAAE,CAAC;4BACf,MAAM;wBACR,KAAK,GAAG;4BACN,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;4BACnC,MAAM;qBACT;iBACF;qBAAM;oBACL,QAAQ,IAAI,EAAE;wBACZ,KAAK,GAAG,CAAC,CAAC;4BACR,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;4BACrD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,YAAE,CAAC,QAAQ,EAAE,CAAC;4BAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;4BACrC,MAAM,GAAG,GAAG,GAAG,QAAQ,MAAM,IAAI,IAAI,IAAI,eAAe,CAAC;4BACzD,gBAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;gCACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gCACjB,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gCACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BACnB,CAAC,CAAC,CAAC;4BACH,MAAM;yBACP;wBAED,KAAK,GAAG;4BACN,QAAQ,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;4BACvD,qBAAqB,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;4BACtD,MAAM;wBAER,KAAK,GAAG;4BACN,QAAQ,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;4BAC9C,qBAAqB,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;4BACrD,MAAM;qBACT;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CAAA;AAxMD,4BAwMC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.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.14.0",
3
+ "version": "0.14.3",
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,12 +21,12 @@
21
21
  "dependencies": {
22
22
  "@rnx-kit/config": "^0.5.0",
23
23
  "@rnx-kit/console": "^1.0.11",
24
- "@rnx-kit/dep-check": "^1.12.0",
24
+ "@rnx-kit/dep-check": "^1.12.23",
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
28
  "@rnx-kit/metro-serializer-esbuild": "^0.1.0",
29
- "@rnx-kit/metro-service": "^2.0.0",
29
+ "@rnx-kit/metro-service": "^3.0.0",
30
30
  "@rnx-kit/third-party-notices": "^1.2.13",
31
31
  "@rnx-kit/tools-language": "^1.3.0",
32
32
  "@rnx-kit/tools-node": "^1.2.7",
@@ -56,9 +56,10 @@
56
56
  "@types/metro-babel-transformer": "^0.66.0",
57
57
  "@types/metro-config": "^0.66.0",
58
58
  "@types/qrcode": "^1.4.2",
59
+ "jest": "^27.0.0",
59
60
  "jest-extended": "^2.0.0",
60
61
  "memfs": "^3.4.1",
61
- "metro-config": "^0.66.2",
62
+ "metro-config": "^0.67.0",
62
63
  "typescript": "^4.0.0"
63
64
  },
64
65
  "depcheck": {
@@ -90,7 +90,6 @@ module.exports = {
90
90
  description:
91
91
  "Enable tree shaking to remove unused code and reduce the bundle size.",
92
92
  parse: parseBoolean,
93
- default: false,
94
93
  },
95
94
  {
96
95
  name: "--unstable-transform-profile [string]",
package/src/dep-check.ts CHANGED
@@ -23,7 +23,7 @@ export function rnxDepCheck(
23
23
  ),
24
24
  loose: Boolean(args.loose),
25
25
  write: Boolean(args.write),
26
- "package-json": argv[0],
26
+ packages: argv,
27
27
  });
28
28
  }
29
29
 
package/src/start.ts CHANGED
@@ -6,6 +6,8 @@ import {
6
6
  startServer,
7
7
  } from "@rnx-kit/metro-service";
8
8
  import chalk from "chalk";
9
+ import type { Server as HttpServer } from "http";
10
+ import type { Server as HttpsServer } from "https";
9
11
  import type { ReportableEvent, Reporter } from "metro";
10
12
  import type { Middleware } from "metro-config";
11
13
  import type Server from "metro/src/Server";
@@ -20,13 +22,12 @@ type DevServerMiddleware = ReturnType<
20
22
  typeof CliServerApi["createDevServerMiddleware"]
21
23
  >;
22
24
 
23
- type DevServer = ReturnType<DevServerMiddleware["attachToServer"]>;
24
-
25
- type DevServerMiddleware7 = Pick<DevServerMiddleware, "middleware"> & {
26
- websocketEndpoints: unknown;
27
- debuggerProxyEndpoint: DevServer["debuggerProxy"];
28
- messageSocketEndpoint: DevServer["messageSocket"];
29
- eventsSocketEndpoint: DevServer["eventsSocket"];
25
+ type DevServerMiddleware6 = Pick<DevServerMiddleware, "middleware"> & {
26
+ attachToServer: (server: HttpServer | HttpsServer) => {
27
+ debuggerProxy: DevServerMiddleware["debuggerProxyEndpoint"];
28
+ eventsSocket: DevServerMiddleware["eventsSocketEndpoint"];
29
+ messageSocket: DevServerMiddleware["messageSocketEndpoint"];
30
+ };
30
31
  };
31
32
 
32
33
  export type CLIStartOptions = {
@@ -56,10 +57,10 @@ function friendlyRequire<T>(module: string): T {
56
57
  }
57
58
  }
58
59
 
59
- function hasWebsocketEndpoints(
60
- devServer: DevServerMiddleware | DevServerMiddleware7
61
- ): devServer is DevServerMiddleware7 {
62
- return !("attachToServer" in devServer);
60
+ function hasAttachToServerFunction(
61
+ devServer: DevServerMiddleware | DevServerMiddleware6
62
+ ): devServer is DevServerMiddleware6 {
63
+ return "attachToServer" in devServer;
63
64
  }
64
65
 
65
66
  export async function rnxStart(
@@ -159,8 +160,7 @@ export async function rnxStart(
159
160
 
160
161
  // merge the Metro config middleware with our middleware
161
162
  const enhanceMiddleware = metroConfig.server.enhanceMiddleware;
162
- // eslint-disable-next-line
163
- // @ts-ignore
163
+ // @ts-expect-error We want to assign to read-only `enhanceMiddleware`
164
164
  metroConfig.server.enhanceMiddleware = (
165
165
  metroMiddleware: Middleware,
166
166
  metroServer: Server
@@ -175,9 +175,9 @@ export async function rnxStart(
175
175
  // `createDevServerMiddleware` changed its return type in
176
176
  // https://github.com/react-native-community/cli/pull/1560
177
177
  let websocketEndpoints: unknown = undefined;
178
- let messageSocketEndpoint: DevServer["messageSocket"];
178
+ let messageSocketEndpoint: DevServerMiddleware["messageSocketEndpoint"];
179
179
 
180
- if (hasWebsocketEndpoints(devServer)) {
180
+ if (!hasAttachToServerFunction(devServer)) {
181
181
  websocketEndpoints = devServer.websocketEndpoints;
182
182
  messageSocketEndpoint = devServer.messageSocketEndpoint;
183
183
 
@@ -195,7 +195,7 @@ export async function rnxStart(
195
195
  };
196
196
  const serverInstance = await startServer(metroConfig, serverOptions);
197
197
 
198
- if (!hasWebsocketEndpoints(devServer)) {
198
+ if (hasAttachToServerFunction(devServer)) {
199
199
  const { messageSocket, eventsSocket } =
200
200
  devServer.attachToServer(serverInstance);
201
201
  messageSocketEndpoint = messageSocket;