@rnx-kit/cli 0.18.14 → 0.18.17
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/README.md +26 -20
- package/lib/bin/context.d.ts +1 -1
- package/lib/bin/context.js +10 -10
- package/lib/bin/externalCommands.js +2 -2
- package/lib/bin/rnx-cli.js +4 -4
- package/lib/build/android.d.ts +1 -1
- package/lib/build/android.js +2 -2
- package/lib/build/apple.d.ts +1 -1
- package/lib/build/apple.js +2 -2
- package/lib/build/ios.d.ts +2 -2
- package/lib/build/ios.js +6 -2
- package/lib/build/macos.d.ts +2 -2
- package/lib/build/macos.js +19 -14
- package/lib/build/types.d.ts +11 -1
- package/lib/build/windows.d.ts +11 -0
- package/lib/build/windows.js +116 -0
- package/lib/build.d.ts +4 -4
- package/lib/build.js +20 -12
- package/lib/bundle/cliOptions.d.ts +1 -1
- package/lib/bundle/cliOptions.js +5 -5
- package/lib/bundle/kit-config.d.ts +1 -1
- package/lib/bundle/kit-config.js +2 -2
- package/lib/bundle/metro.d.ts +1 -1
- package/lib/bundle/metro.js +2 -2
- package/lib/bundle/overrides.d.ts +1 -1
- package/lib/bundle.d.ts +4 -4
- package/lib/bundle.js +13 -13
- package/lib/clean.d.ts +1 -1
- package/lib/clean.js +2 -2
- package/lib/helpers/externals.d.ts +1 -1
- package/lib/helpers/metro-config.js +2 -2
- package/lib/index.d.ts +8 -8
- package/lib/index.js +32 -32
- package/lib/ram-bundle.d.ts +5 -5
- package/lib/ram-bundle.js +9 -9
- package/lib/run/android.d.ts +1 -1
- package/lib/run/android.js +2 -2
- package/lib/run/ios.d.ts +1 -1
- package/lib/run/ios.js +2 -2
- package/lib/run/macos.d.ts +1 -1
- package/lib/run/macos.js +2 -2
- package/lib/run/windows.d.ts +6 -0
- package/lib/run/windows.js +13 -0
- package/lib/run.d.ts +6 -6
- package/lib/run.js +13 -10
- package/lib/serve/keyboard.d.ts +1 -1
- package/lib/serve/keyboard.js +1 -1
- package/lib/serve/kit-config.js +2 -2
- package/lib/start.d.ts +2 -2
- package/lib/start.js +28 -21
- package/package.json +12 -12
package/lib/start.js
CHANGED
|
@@ -38,18 +38,18 @@ exports.rnxStart = rnxStart;
|
|
|
38
38
|
const logger = __importStar(require("@rnx-kit/console"));
|
|
39
39
|
const metro_service_1 = require("@rnx-kit/metro-service");
|
|
40
40
|
const path = __importStar(require("node:path"));
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
const
|
|
41
|
+
const externals_ts_1 = require("./helpers/externals.js");
|
|
42
|
+
const metro_config_ts_1 = require("./helpers/metro-config.js");
|
|
43
|
+
const parsers_ts_1 = require("./helpers/parsers.js");
|
|
44
|
+
const help_ts_1 = require("./serve/help.js");
|
|
45
|
+
const keyboard_ts_1 = require("./serve/keyboard.js");
|
|
46
|
+
const kit_config_ts_1 = require("./serve/kit-config.js");
|
|
47
47
|
function hasAttachToServerFunction(devServer) {
|
|
48
48
|
return "attachToServer" in devServer;
|
|
49
49
|
}
|
|
50
50
|
async function rnxStart(_argv, ctx, args) {
|
|
51
|
-
const serverConfig = (0,
|
|
52
|
-
const { createDevServerMiddleware, indexPageMiddleware } = (0,
|
|
51
|
+
const serverConfig = (0, kit_config_ts_1.getKitServerConfig)(args);
|
|
52
|
+
const { createDevServerMiddleware, indexPageMiddleware } = (0, externals_ts_1.requireExternal)("@react-native-community/cli-server-api", ctx.root, ctx.reactNativePath);
|
|
53
53
|
// interactive mode requires raw access to stdin
|
|
54
54
|
let interactive = args.interactive;
|
|
55
55
|
if (interactive) {
|
|
@@ -82,7 +82,7 @@ async function rnxStart(_argv, ctx, args) {
|
|
|
82
82
|
const terminal = (0, metro_service_1.makeTerminal)(projectRoot);
|
|
83
83
|
// customize the metro config to include plugins, presets, etc.
|
|
84
84
|
const log = (message) => terminal.log(message);
|
|
85
|
-
(0,
|
|
85
|
+
(0, metro_config_ts_1.customizeMetroConfig)(metroConfig, serverConfig, log);
|
|
86
86
|
const { port } = metroConfig.server;
|
|
87
87
|
const scheme = args.https === true ? "https" : "http";
|
|
88
88
|
const serverStatus = await (0, metro_service_1.isDevServerRunning)(scheme, args.host, port, projectRoot);
|
|
@@ -104,7 +104,7 @@ async function rnxStart(_argv, ctx, args) {
|
|
|
104
104
|
const coreDevMiddleware = (() => {
|
|
105
105
|
try {
|
|
106
106
|
// https://github.com/facebook/react-native/blob/7888338295476f4d4f00733309e54b8d22318e1e/packages/community-cli-plugin/src/commands/start/runServer.js#L115
|
|
107
|
-
const { createDevMiddleware } = (0,
|
|
107
|
+
const { createDevMiddleware } = (0, externals_ts_1.requireExternal)("@react-native/dev-middleware", ctx.root, ctx.reactNativePath);
|
|
108
108
|
return createDevMiddleware({
|
|
109
109
|
projectRoot,
|
|
110
110
|
serverBaseUrl: devServerUrl,
|
|
@@ -141,15 +141,22 @@ async function rnxStart(_argv, ctx, args) {
|
|
|
141
141
|
// bind our `reportEvent` delegate to the Metro server
|
|
142
142
|
reportEventDelegate = devServer.eventsSocketEndpoint.reportEvent;
|
|
143
143
|
}
|
|
144
|
-
const help = (0,
|
|
144
|
+
const help = (0, help_ts_1.makeHelp)(terminal, { hasDebugger: Boolean(coreDevMiddleware) });
|
|
145
145
|
const terminalReporter = (0, metro_service_1.makeReporter)(args.customLogReporterPath, terminal, projectRoot);
|
|
146
146
|
// @ts-expect-error We want to override `reporter`
|
|
147
147
|
metroConfig.reporter = {
|
|
148
148
|
update(event) {
|
|
149
149
|
terminalReporter.update(event);
|
|
150
150
|
reportEventDelegate?.(event);
|
|
151
|
-
|
|
152
|
-
|
|
151
|
+
switch (event.type) {
|
|
152
|
+
case "dep_graph_loading":
|
|
153
|
+
if (interactive) {
|
|
154
|
+
help();
|
|
155
|
+
}
|
|
156
|
+
break;
|
|
157
|
+
case "server_listening":
|
|
158
|
+
logger.info(`Dev server is listening on ${scheme}://${event.address}:${event.port}`);
|
|
159
|
+
break;
|
|
153
160
|
}
|
|
154
161
|
},
|
|
155
162
|
};
|
|
@@ -206,7 +213,7 @@ async function rnxStart(_argv, ctx, args) {
|
|
|
206
213
|
// in interactive mode, listen for keyboard events from stdin and bind
|
|
207
214
|
// them to specific actions.
|
|
208
215
|
if (interactive) {
|
|
209
|
-
(0,
|
|
216
|
+
(0, keyboard_ts_1.attachKeyHandlers)(serverInstance, {
|
|
210
217
|
devServerUrl,
|
|
211
218
|
help,
|
|
212
219
|
messageSocketEndpoint,
|
|
@@ -226,7 +233,7 @@ exports.rnxStartCommand = {
|
|
|
226
233
|
{
|
|
227
234
|
name: "--port <number>",
|
|
228
235
|
description: "Host port to use when listening for incoming server requests",
|
|
229
|
-
parse:
|
|
236
|
+
parse: parsers_ts_1.asNumber,
|
|
230
237
|
default: 8081,
|
|
231
238
|
},
|
|
232
239
|
{
|
|
@@ -237,27 +244,27 @@ exports.rnxStartCommand = {
|
|
|
237
244
|
{
|
|
238
245
|
name: "--project-root <path>",
|
|
239
246
|
description: "Path to the root of your react-native project; the bundle server uses this path to resolve all web requests",
|
|
240
|
-
parse:
|
|
247
|
+
parse: parsers_ts_1.asResolvedPath,
|
|
241
248
|
},
|
|
242
249
|
{
|
|
243
250
|
name: "--watch-folders <paths>",
|
|
244
251
|
description: "Additional folders which will be added to the watched files list, comma-separated; by default, Metro watches all project files",
|
|
245
|
-
parse: (val) => (0,
|
|
252
|
+
parse: (val) => (0, parsers_ts_1.asStringArray)(val).map(parsers_ts_1.asResolvedPath),
|
|
246
253
|
},
|
|
247
254
|
{
|
|
248
255
|
name: "--asset-plugins <list>",
|
|
249
256
|
description: "Additional asset plugins to be used by Metro's Babel transformer; comma-separated list containing plugin module names or absolute paths to plugin packages",
|
|
250
|
-
parse:
|
|
257
|
+
parse: parsers_ts_1.asStringArray,
|
|
251
258
|
},
|
|
252
259
|
{
|
|
253
260
|
name: "--source-exts <list>",
|
|
254
261
|
description: "Additional source file extensions to include when generating bundles; comma-separated list, excluding the leading dot",
|
|
255
|
-
parse:
|
|
262
|
+
parse: parsers_ts_1.asStringArray,
|
|
256
263
|
},
|
|
257
264
|
{
|
|
258
265
|
name: "--max-workers <number>",
|
|
259
266
|
description: "Specifies the maximum number of parallel worker threads to use for transforming files; defaults to the number of cores available on your machine",
|
|
260
|
-
parse:
|
|
267
|
+
parse: parsers_ts_1.asNumber,
|
|
261
268
|
},
|
|
262
269
|
{
|
|
263
270
|
name: "--reset-cache",
|
|
@@ -282,7 +289,7 @@ exports.rnxStartCommand = {
|
|
|
282
289
|
{
|
|
283
290
|
name: "--config <string>",
|
|
284
291
|
description: "Path to the Metro configuration file",
|
|
285
|
-
parse:
|
|
292
|
+
parse: parsers_ts_1.asResolvedPath,
|
|
286
293
|
},
|
|
287
294
|
{
|
|
288
295
|
name: "--no-interactive",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rnx-kit/cli",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.17",
|
|
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#readme",
|
|
6
6
|
"license": "MIT",
|
|
@@ -40,22 +40,22 @@
|
|
|
40
40
|
"test": "rnx-kit-scripts test"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@rnx-kit/align-deps": "^3.
|
|
43
|
+
"@rnx-kit/align-deps": "^3.3.3",
|
|
44
44
|
"@rnx-kit/config": "^0.7.0",
|
|
45
45
|
"@rnx-kit/console": "^2.0.0",
|
|
46
46
|
"@rnx-kit/metro-plugin-cyclic-dependencies-detector": "^2.0.0",
|
|
47
47
|
"@rnx-kit/metro-plugin-duplicates-checker": "^3.0.0",
|
|
48
|
-
"@rnx-kit/metro-plugin-typescript": "^0.5.
|
|
48
|
+
"@rnx-kit/metro-plugin-typescript": "^0.5.3",
|
|
49
49
|
"@rnx-kit/metro-serializer": "^2.0.0",
|
|
50
|
-
"@rnx-kit/metro-serializer-esbuild": "^0.2.
|
|
51
|
-
"@rnx-kit/metro-service": "^4.
|
|
50
|
+
"@rnx-kit/metro-serializer-esbuild": "^0.2.8",
|
|
51
|
+
"@rnx-kit/metro-service": "^4.1.3",
|
|
52
52
|
"@rnx-kit/third-party-notices": "^2.0.0",
|
|
53
|
-
"@rnx-kit/tools-android": "^0.2.
|
|
54
|
-
"@rnx-kit/tools-apple": "^0.2.
|
|
53
|
+
"@rnx-kit/tools-android": "^0.2.2",
|
|
54
|
+
"@rnx-kit/tools-apple": "^0.2.2",
|
|
55
55
|
"@rnx-kit/tools-filesystem": "^0.1.0",
|
|
56
|
-
"@rnx-kit/tools-language": "^3.0.
|
|
57
|
-
"@rnx-kit/tools-node": "^3.0.
|
|
58
|
-
"@rnx-kit/tools-react-native": "^2.
|
|
56
|
+
"@rnx-kit/tools-language": "^3.0.1",
|
|
57
|
+
"@rnx-kit/tools-node": "^3.0.3",
|
|
58
|
+
"@rnx-kit/tools-react-native": "^2.3.2",
|
|
59
59
|
"commander": "^11.1.0",
|
|
60
60
|
"ora": "^5.4.1",
|
|
61
61
|
"qrcode": "^1.5.0"
|
|
@@ -76,12 +76,13 @@
|
|
|
76
76
|
"@babel/core": "^7.20.0",
|
|
77
77
|
"@babel/preset-env": "^7.20.0",
|
|
78
78
|
"@react-native-community/cli-types": "^20.0.0",
|
|
79
|
+
"@react-native-windows/cli": "^0.79.0",
|
|
79
80
|
"@rnx-kit/eslint-config": "*",
|
|
80
81
|
"@rnx-kit/jest-preset": "*",
|
|
81
82
|
"@rnx-kit/scripts": "*",
|
|
82
83
|
"@rnx-kit/tsconfig": "*",
|
|
83
84
|
"@types/connect": "^3.4.36",
|
|
84
|
-
"@types/node": "^
|
|
85
|
+
"@types/node": "^24.0.0",
|
|
85
86
|
"@types/qrcode": "^1.4.2",
|
|
86
87
|
"markdown-table": "^3.0.0",
|
|
87
88
|
"metro": "^0.83.1",
|
|
@@ -89,7 +90,6 @@
|
|
|
89
90
|
"metro-config": "^0.83.1",
|
|
90
91
|
"react": "19.1.0",
|
|
91
92
|
"react-native": "^0.81.0",
|
|
92
|
-
"tsx": "^4.15.0",
|
|
93
93
|
"type-fest": "^4.0.0"
|
|
94
94
|
},
|
|
95
95
|
"engines": {
|