@rnx-kit/cli 0.14.1 → 0.14.2

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,159 +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
- // @ts-expect-error We want to assign to read-only `enhanceMiddleware`
99
- metroConfig.server.enhanceMiddleware = (metroMiddleware, metroServer) => {
100
- return middleware.use(enhanceMiddleware
101
- ? enhanceMiddleware(metroMiddleware, metroServer)
102
- : metroMiddleware);
103
- };
104
- // `createDevServerMiddleware` changed its return type in
105
- // https://github.com/react-native-community/cli/pull/1560
106
- let websocketEndpoints = undefined;
107
- let messageSocketEndpoint;
108
- if (hasWebsocketEndpoints(devServer)) {
109
- websocketEndpoints = devServer.websocketEndpoints;
110
- messageSocketEndpoint = devServer.messageSocketEndpoint;
111
- // bind our `reportEvent` delegate to the Metro server
112
- reportEventDelegate = devServer.eventsSocketEndpoint.reportEvent;
113
- }
114
- // start the Metro server
115
- const serverOptions = {
116
- host: cliOptions.host,
117
- secure: cliOptions.https,
118
- secureCert: cliOptions.cert,
119
- secureKey: cliOptions.key,
120
- websocketEndpoints,
121
- };
122
- const serverInstance = yield (0, metro_service_1.startServer)(metroConfig, serverOptions);
123
- if (!hasWebsocketEndpoints(devServer)) {
124
- const { messageSocket, eventsSocket } = devServer.attachToServer(serverInstance);
125
- messageSocketEndpoint = messageSocket;
126
- // bind our `reportEvent` delegate to the Metro server
127
- reportEventDelegate = eventsSocket.reportEvent;
128
- }
129
- // In Node 8, the default keep-alive for an HTTP connection is 5 seconds. In
130
- // early versions of Node 8, this was implemented in a buggy way which caused
131
- // some HTTP responses (like those containing large JS bundles) to be
132
- // terminated early.
133
- //
134
- // As a workaround, arbitrarily increase the keep-alive from 5 to 30 seconds,
135
- // which should be enough to send even the largest of JS bundles.
136
- //
137
- // For more info: https://github.com/nodejs/node/issues/13391
138
- //
139
- serverInstance.keepAliveTimeout = 30000;
140
- // in interactive mode, listen for keyboard events from stdin and bind
141
- // them to specific actions.
142
- if (interactive) {
143
- readline_1.default.emitKeypressEvents(process.stdin);
144
- process.stdin.setRawMode(true);
145
- process.stdin.on("keypress", (_key, data) => {
146
- const { ctrl, name } = data;
147
- if (ctrl === true) {
148
- switch (name) {
149
- case "c":
150
- terminal.log(chalk_1.default.green("Exiting..."));
151
- process.exit();
152
- break;
153
- case "z":
154
- process.emit("SIGTSTP", "SIGTSTP");
155
- break;
156
- }
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;
157
152
  }
158
- else {
159
- switch (name) {
160
- case "a": {
161
- const protocol = cliOptions.https ? "https" : "http";
162
- const host = cliOptions.host || os_1.default.hostname();
163
- const port = metroConfig.server.port;
164
- const url = `${protocol}://${host}:${port}/index.bundle`;
165
- qrcode_1.default.toString(url, { type: "terminal" }, (_err, qr) => {
166
- terminal.log("");
167
- terminal.log(url + ":");
168
- terminal.log(qr);
169
- });
170
- break;
171
- }
172
- case "d":
173
- terminal.log(chalk_1.default.green("Opening developer menu..."));
174
- messageSocketEndpoint.broadcast("devMenu", undefined);
175
- break;
176
- case "r":
177
- terminal.log(chalk_1.default.green("Reloading app..."));
178
- messageSocketEndpoint.broadcast("reload", undefined);
179
- 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;
180
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;
181
176
  }
182
- });
183
- }
184
- });
177
+ }
178
+ });
179
+ }
185
180
  }
186
181
  exports.rnxStart = rnxStart;
187
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":"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"}
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.1",
3
+ "version": "0.14.2",
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",
@@ -26,7 +26,7 @@
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": {
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(
@@ -174,9 +175,9 @@ export async function rnxStart(
174
175
  // `createDevServerMiddleware` changed its return type in
175
176
  // https://github.com/react-native-community/cli/pull/1560
176
177
  let websocketEndpoints: unknown = undefined;
177
- let messageSocketEndpoint: DevServer["messageSocket"];
178
+ let messageSocketEndpoint: DevServerMiddleware["messageSocketEndpoint"];
178
179
 
179
- if (hasWebsocketEndpoints(devServer)) {
180
+ if (!hasAttachToServerFunction(devServer)) {
180
181
  websocketEndpoints = devServer.websocketEndpoints;
181
182
  messageSocketEndpoint = devServer.messageSocketEndpoint;
182
183
 
@@ -194,7 +195,7 @@ export async function rnxStart(
194
195
  };
195
196
  const serverInstance = await startServer(metroConfig, serverOptions);
196
197
 
197
- if (!hasWebsocketEndpoints(devServer)) {
198
+ if (hasAttachToServerFunction(devServer)) {
198
199
  const { messageSocket, eventsSocket } =
199
200
  devServer.attachToServer(serverInstance);
200
201
  messageSocketEndpoint = messageSocket;