@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/CHANGELOG.md +7 -0
- package/coverage/clover.xml +2 -2
- package/coverage/lcov-report/index.html +1 -1
- package/coverage/lcov-report/src/bundle/index.html +1 -1
- package/coverage/lcov-report/src/bundle/kit-config.ts.html +1 -1
- package/coverage/lcov-report/src/bundle/metro.ts.html +1 -1
- package/coverage/lcov-report/src/bundle/overrides.ts.html +1 -1
- package/coverage/lcov-report/src/bundler-plugin-defaults.ts.html +1 -1
- package/coverage/lcov-report/src/copy-assets.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/metro-config.ts.html +1 -1
- package/coverage/lcov-report/src/typescript/index.html +1 -1
- package/coverage/lcov-report/src/typescript/project-cache.ts.html +1 -1
- package/lib/bundle/kit-config.js +6 -1
- package/lib/bundle/kit-config.js.map +1 -1
- package/lib/bundle/metro.js +15 -23
- package/lib/bundle/metro.js.map +1 -1
- package/lib/bundle.js +8 -19
- package/lib/bundle.js.map +1 -1
- package/lib/clean.js +106 -117
- package/lib/clean.js.map +1 -1
- package/lib/copy-assets.js +194 -210
- package/lib/copy-assets.js.map +1 -1
- package/lib/dep-check.js +12 -7
- package/lib/dep-check.js.map +1 -1
- package/lib/serve/kit-config.js +6 -1
- package/lib/serve/kit-config.js.map +1 -1
- package/lib/start.d.ts.map +1 -1
- package/lib/start.js +147 -152
- package/lib/start.js.map +1 -1
- package/package.json +4 -3
- package/src/start.ts +15 -14
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
|
|
33
|
-
return
|
|
23
|
+
function hasAttachToServerFunction(devServer) {
|
|
24
|
+
return "attachToServer" in devServer;
|
|
34
25
|
}
|
|
35
|
-
function rnxStart(_argv, cliConfig, cliOptions) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
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)
|
|
68
|
+
: undefined),
|
|
69
|
+
reporter,
|
|
70
|
+
...(serverConfig.sourceExts
|
|
77
71
|
? { sourceExts: serverConfig.sourceExts }
|
|
78
|
-
: undefined)
|
|
72
|
+
: undefined),
|
|
73
|
+
...(serverConfig.assetPlugins
|
|
79
74
|
? {
|
|
80
75
|
assetPlugins: serverConfig.assetPlugins.map((p) => require.resolve(p)),
|
|
81
76
|
}
|
|
82
|
-
: undefined)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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":"
|
|
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.
|
|
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": "^
|
|
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.
|
|
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
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
|
60
|
-
devServer: DevServerMiddleware |
|
|
61
|
-
): devServer is
|
|
62
|
-
return
|
|
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:
|
|
178
|
+
let messageSocketEndpoint: DevServerMiddleware["messageSocketEndpoint"];
|
|
178
179
|
|
|
179
|
-
if (
|
|
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 (
|
|
198
|
+
if (hasAttachToServerFunction(devServer)) {
|
|
198
199
|
const { messageSocket, eventsSocket } =
|
|
199
200
|
devServer.attachToServer(serverInstance);
|
|
200
201
|
messageSocketEndpoint = messageSocket;
|