mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Allow passing through optional custom transform options to Metro (#45634)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/45634 This allows the Android runtime to pass additional options to Metro. Each app can decide what to send based on the needs. The use case is to send transform.xyz=somevalue to Metro. Changelog: [Internal] Reviewed By: javache Differential Revision: D60155757 fbshipit-source-id: 006d5ff2e3f14634fb39d44b390f30da479b1faa
This commit is contained in:
committed by
Facebook GitHub Bot
parent
8effe781d3
commit
a634b57650
@@ -2141,6 +2141,7 @@ public abstract class com/facebook/react/devsupport/DevSupportManagerBase : com/
|
||||
public fun registerErrorCustomizer (Lcom/facebook/react/devsupport/interfaces/ErrorCustomizer;)V
|
||||
public fun reloadJSFromServer (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/BundleLoadCallback;)V
|
||||
public fun reloadSettings ()V
|
||||
public fun setAdditionalOptionForPackager (Ljava/lang/String;Ljava/lang/String;)V
|
||||
public fun setDevSupportEnabled (Z)V
|
||||
public fun setFpsDebugEnabled (Z)V
|
||||
public fun setHotModuleReplacementEnabled (Z)V
|
||||
@@ -2305,6 +2306,7 @@ public class com/facebook/react/devsupport/ReleaseDevSupportManager : com/facebo
|
||||
public fun registerErrorCustomizer (Lcom/facebook/react/devsupport/interfaces/ErrorCustomizer;)V
|
||||
public fun reloadJSFromServer (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/BundleLoadCallback;)V
|
||||
public fun reloadSettings ()V
|
||||
public fun setAdditionalOptionForPackager (Ljava/lang/String;Ljava/lang/String;)V
|
||||
public fun setDevSupportEnabled (Z)V
|
||||
public fun setFpsDebugEnabled (Z)V
|
||||
public fun setHotModuleReplacementEnabled (Z)V
|
||||
@@ -2424,6 +2426,7 @@ public abstract interface class com/facebook/react/devsupport/interfaces/DevSupp
|
||||
public abstract fun registerErrorCustomizer (Lcom/facebook/react/devsupport/interfaces/ErrorCustomizer;)V
|
||||
public abstract fun reloadJSFromServer (Ljava/lang/String;Lcom/facebook/react/devsupport/interfaces/BundleLoadCallback;)V
|
||||
public abstract fun reloadSettings ()V
|
||||
public abstract fun setAdditionalOptionForPackager (Ljava/lang/String;Ljava/lang/String;)V
|
||||
public abstract fun setDevSupportEnabled (Z)V
|
||||
public abstract fun setFpsDebugEnabled (Z)V
|
||||
public abstract fun setHotModuleReplacementEnabled (Z)V
|
||||
@@ -3666,8 +3669,10 @@ public abstract class com/facebook/react/packagerconnection/NotificationOnlyHand
|
||||
|
||||
public class com/facebook/react/packagerconnection/PackagerConnectionSettings {
|
||||
public fun <init> (Landroid/content/Context;)V
|
||||
public fun getAdditionalOptionsForPackager ()Ljava/util/Map;
|
||||
public fun getDebugServerHost ()Ljava/lang/String;
|
||||
public fun getPackageName ()Ljava/lang/String;
|
||||
public fun setAdditionalOptionForPackager (Ljava/lang/String;Ljava/lang/String;)V
|
||||
public fun setDebugServerHost (Ljava/lang/String;)V
|
||||
}
|
||||
|
||||
|
||||
+10
-1
@@ -385,6 +385,14 @@ public class DevServerHelper {
|
||||
private String createBundleURL(
|
||||
String mainModuleID, BundleType type, String host, boolean modulesOnly, boolean runModule) {
|
||||
boolean dev = getDevMode();
|
||||
StringBuilder additionalOptionsBuilder = new StringBuilder();
|
||||
for (Map.Entry<String, String> entry :
|
||||
mPackagerConnectionSettings.getAdditionalOptionsForPackager().entrySet()) {
|
||||
if (entry.getValue().length() == 0) {
|
||||
continue;
|
||||
}
|
||||
additionalOptionsBuilder.append("&" + entry.getKey() + "=" + Uri.encode(entry.getValue()));
|
||||
}
|
||||
return String.format(
|
||||
Locale.US,
|
||||
"http://%s/%s.%s?platform=android&dev=%s&lazy=%s&minify=%s&app=%s&modulesOnly=%s&runModule=%s",
|
||||
@@ -397,7 +405,8 @@ public class DevServerHelper {
|
||||
mPackageName,
|
||||
modulesOnly ? "true" : "false",
|
||||
runModule ? "true" : "false")
|
||||
+ (InspectorFlags.getFuseboxEnabled() ? "&excludeSource=true&sourcePaths=url-server" : "");
|
||||
+ (InspectorFlags.getFuseboxEnabled() ? "&excludeSource=true&sourcePaths=url-server" : "")
|
||||
+ additionalOptionsBuilder.toString();
|
||||
}
|
||||
|
||||
private String createBundleURL(String mainModuleID, BundleType type) {
|
||||
|
||||
+5
@@ -1183,4 +1183,9 @@ public abstract class DevSupportManagerBase implements DevSupportManager {
|
||||
public void hidePausedInDebuggerOverlay() {
|
||||
mPausedInDebuggerOverlayManager.hidePausedInDebuggerOverlay();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAdditionalOptionForPackager(String name, String value) {
|
||||
mDevSettings.getPackagerConnectionSettings().setAdditionalOptionForPackager(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
+3
@@ -211,4 +211,7 @@ public class ReleaseDevSupportManager implements DevSupportManager {
|
||||
|
||||
@Override
|
||||
public void hidePausedInDebuggerOverlay() {}
|
||||
|
||||
@Override
|
||||
public void setAdditionalOptionForPackager(String name, String value) {}
|
||||
}
|
||||
|
||||
+4
-1
@@ -106,12 +106,15 @@ public interface DevSupportManager : JSExceptionHandler {
|
||||
/** Shows the "paused in debugger" overlay with the given message. */
|
||||
public fun showPausedInDebuggerOverlay(
|
||||
message: String,
|
||||
listener: PausedInDebuggerOverlayCommandListener
|
||||
listener: PausedInDebuggerOverlayCommandListener,
|
||||
)
|
||||
|
||||
/** Hides the "paused in debugger" overlay, if currently shown. */
|
||||
public fun hidePausedInDebuggerOverlay()
|
||||
|
||||
/** Add an option to send to packager when requesting JS bundle. */
|
||||
public fun setAdditionalOptionForPackager(name: String, value: String)
|
||||
|
||||
/**
|
||||
* The PackagerLocationCustomizer allows you to have a dynamic packager location that is
|
||||
* determined right before loading the packager. Your customizer must call |callback|, as loading
|
||||
|
||||
+11
@@ -16,6 +16,8 @@ import com.facebook.common.logging.FLog;
|
||||
import com.facebook.infer.annotation.Assertions;
|
||||
import com.facebook.infer.annotation.Nullsafe;
|
||||
import com.facebook.react.modules.systeminfo.AndroidInfoHelpers;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Nullsafe(Nullsafe.Mode.LOCAL)
|
||||
public class PackagerConnectionSettings {
|
||||
@@ -25,6 +27,7 @@ public class PackagerConnectionSettings {
|
||||
private final SharedPreferences mPreferences;
|
||||
private final String mPackageName;
|
||||
private final Context mAppContext;
|
||||
private final Map<String, String> mAdditionalOptionsForPackager = new HashMap<>();
|
||||
|
||||
public PackagerConnectionSettings(Context applicationContext) {
|
||||
mPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext);
|
||||
@@ -62,4 +65,12 @@ public class PackagerConnectionSettings {
|
||||
public @Nullable String getPackageName() {
|
||||
return mPackageName;
|
||||
}
|
||||
|
||||
public void setAdditionalOptionForPackager(String key, String value) {
|
||||
mAdditionalOptionsForPackager.put(key, value);
|
||||
}
|
||||
|
||||
public Map<String, String> getAdditionalOptionsForPackager() {
|
||||
return mAdditionalOptionsForPackager;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user