From f05c777c6f17e5da11bfe7257b86c0f71c8024f1 Mon Sep 17 00:00:00 2001 From: szymonrybczak Date: Fri, 16 Feb 2024 13:53:43 +0100 Subject: [PATCH] fix: replace `ip` package with default value and `--host` flag --- packages/cli-doctor/package.json | 1 - packages/cli-hermes/README.md | 6 ++++++ packages/cli-hermes/package.json | 3 +-- packages/cli-hermes/src/profileHermes/downloadProfile.ts | 3 ++- packages/cli-hermes/src/profileHermes/index.ts | 7 +++++++ .../cli-hermes/src/profileHermes/metroBundleOptions.ts | 3 +++ packages/cli-hermes/src/profileHermes/sourcemapUtils.ts | 6 ++---- yarn.lock | 5 ----- 8 files changed, 21 insertions(+), 13 deletions(-) diff --git a/packages/cli-doctor/package.json b/packages/cli-doctor/package.json index 08155c690..fa09c7d5f 100644 --- a/packages/cli-doctor/package.json +++ b/packages/cli-doctor/package.json @@ -19,7 +19,6 @@ "envinfo": "^7.10.0", "execa": "^5.0.0", "hermes-profile-transformer": "^0.0.6", - "ip": "^1.1.5", "node-stream-zip": "^1.9.1", "ora": "^5.4.1", "semver": "^7.5.2", diff --git a/packages/cli-hermes/README.md b/packages/cli-hermes/README.md index 89f7f93b9..bd4d728bc 100644 --- a/packages/cli-hermes/README.md +++ b/packages/cli-hermes/README.md @@ -57,6 +57,12 @@ Specify an `applicationId` to launch after build. If not specified, `package` fr Specify an `applicationIdSuffix` to launch after build. +#### `--host ` + +The host of the packager. + +> default: localhost + ### Notes on source map This step is recommended in order for the source map to be generated: diff --git a/packages/cli-hermes/package.json b/packages/cli-hermes/package.json index 641772b8f..3ae9af2dd 100644 --- a/packages/cli-hermes/package.json +++ b/packages/cli-hermes/package.json @@ -11,8 +11,7 @@ "@react-native-community/cli-platform-android": "13.5.2", "@react-native-community/cli-tools": "13.5.2", "chalk": "^4.1.2", - "hermes-profile-transformer": "^0.0.6", - "ip": "^1.1.5" + "hermes-profile-transformer": "^0.0.6" }, "files": [ "build", diff --git a/packages/cli-hermes/src/profileHermes/downloadProfile.ts b/packages/cli-hermes/src/profileHermes/downloadProfile.ts index 68d2b88a4..70154ff31 100644 --- a/packages/cli-hermes/src/profileHermes/downloadProfile.ts +++ b/packages/cli-hermes/src/profileHermes/downloadProfile.ts @@ -59,6 +59,7 @@ export async function downloadProfile( port: string = '8081', appId?: string, appIdSuffix?: string, + host: string = 'localhost', ) { try { const androidProject = getAndroidProject(ctx); @@ -101,7 +102,7 @@ export async function downloadProfile( `adb shell run-as ${packageNameWithSuffix} cat cache/${file} > ${tempFilePath}`, ); - const bundleOptions = getMetroBundleOptions(tempFilePath); + const bundleOptions = getMetroBundleOptions(tempFilePath, host); // If path to source map is not given if (!sourcemapPath) { diff --git a/packages/cli-hermes/src/profileHermes/index.ts b/packages/cli-hermes/src/profileHermes/index.ts index 8f40b5d9b..5d362174d 100644 --- a/packages/cli-hermes/src/profileHermes/index.ts +++ b/packages/cli-hermes/src/profileHermes/index.ts @@ -10,6 +10,7 @@ type Options = { port: string; appId?: string; appIdSuffix?: string; + host?: string; }; async function profileHermes( @@ -34,6 +35,7 @@ async function profileHermes( options.port, options.appId, options.appIdSuffix, + options.host, ); } catch (err) { throw err as CLIError; @@ -78,6 +80,11 @@ export default { name: '--appIdSuffix ', description: 'Specify an applicationIdSuffix to launch after build.', }, + { + name: '--host ', + description: 'The host of the packager.', + default: 'localhost', + }, ], examples: [ { diff --git a/packages/cli-hermes/src/profileHermes/metroBundleOptions.ts b/packages/cli-hermes/src/profileHermes/metroBundleOptions.ts index 74c77c1ba..309237315 100644 --- a/packages/cli-hermes/src/profileHermes/metroBundleOptions.ts +++ b/packages/cli-hermes/src/profileHermes/metroBundleOptions.ts @@ -6,15 +6,18 @@ export interface MetroBundleOptions { platform: string; dev: boolean; minify: boolean; + host: string; } export function getMetroBundleOptions( downloadedProfileFilePath: string, + host: string, ): MetroBundleOptions { let options: MetroBundleOptions = { platform: 'android', dev: true, minify: false, + host, }; try { diff --git a/packages/cli-hermes/src/profileHermes/sourcemapUtils.ts b/packages/cli-hermes/src/profileHermes/sourcemapUtils.ts index 4a8c6107b..d7e543915 100644 --- a/packages/cli-hermes/src/profileHermes/sourcemapUtils.ts +++ b/packages/cli-hermes/src/profileHermes/sourcemapUtils.ts @@ -4,7 +4,6 @@ import fs from 'fs'; import path from 'path'; import os from 'os'; import {SourceMap} from 'hermes-profile-transformer'; -import ip from 'ip'; import {MetroBundleOptions} from './metroBundleOptions'; function getTempFilePath(filename: string) { @@ -31,12 +30,11 @@ function writeJsonSync(targetPath: string, data: any) { async function getSourcemapFromServer( port: string, - {platform, dev, minify}: MetroBundleOptions, + {platform, dev, minify, host}: MetroBundleOptions, ): Promise { logger.debug('Getting source maps from Metro packager server'); - const IP_ADDRESS = ip.address(); - const requestURL = `http://${IP_ADDRESS}:${port}/index.map?platform=${platform}&dev=${dev}&minify=${minify}`; + const requestURL = `http://${host}:${port}/index.map?platform=${platform}&dev=${dev}&minify=${minify}`; logger.debug(`Downloading from ${requestURL}`); try { const {data} = await fetch(requestURL); diff --git a/yarn.lock b/yarn.lock index de5a89981..032293ff5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6798,11 +6798,6 @@ ip-regex@^2.1.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - ip@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da"