mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: Changelog: [Internal][iOS] Modularlize RCTBridgeModule.h 1/n - Move RCTBundleManager.h to its own file in ReactInternal target # Why clean up RCTBridgeModule.h? Clean up one unnecessary import of RCTBridgeModule.h. RCTBridgeModule includes a lot of header files, and this header is imported everywhere. The ultimate goal is that files (especially React Native infra files) should only import only what they need and not import the entirely of RCTBridgeModule.h whenever possible. This way, certain headers that are Bridge-only can be compiled out of the new architecture with a flag. The other benefit of splitting up the headers like this is that it'll be much easier for developers to navigate between the .h and .mm files. Reviewed By: philIip Differential Revision: D38943262 fbshipit-source-id: 90876324de9fae25bf33c7aef820a32d7c6ce2f8
79 lines
2.1 KiB
Objective-C
79 lines
2.1 KiB
Objective-C
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#import "RCTBundleManager.h"
|
|
#import "RCTAssert.h"
|
|
#import "RCTBridge+Private.h"
|
|
#import "RCTBridge.h"
|
|
|
|
@implementation RCTBundleManager {
|
|
__weak RCTBridge *_bridge;
|
|
RCTBridgelessBundleURLGetter _bridgelessBundleURLGetter;
|
|
RCTBridgelessBundleURLSetter _bridgelessBundleURLSetter;
|
|
RCTBridgelessBundleURLGetter _bridgelessBundleURLDefaultGetter;
|
|
}
|
|
|
|
- (void)setBridge:(RCTBridge *)bridge
|
|
{
|
|
_bridge = bridge;
|
|
}
|
|
|
|
- (void)setBridgelessBundleURLGetter:(RCTBridgelessBundleURLGetter)getter
|
|
andSetter:(RCTBridgelessBundleURLSetter)setter
|
|
andDefaultGetter:(RCTBridgelessBundleURLGetter)defaultGetter
|
|
{
|
|
_bridgelessBundleURLGetter = getter;
|
|
_bridgelessBundleURLSetter = setter;
|
|
_bridgelessBundleURLDefaultGetter = defaultGetter;
|
|
}
|
|
|
|
- (void)setBundleURL:(NSURL *)bundleURL
|
|
{
|
|
if (_bridge) {
|
|
_bridge.bundleURL = bundleURL;
|
|
return;
|
|
}
|
|
|
|
RCTAssert(
|
|
_bridgelessBundleURLSetter != nil,
|
|
@"RCTBundleManager: In bridgeless mode, RCTBridgelessBundleURLSetter must not be nil.");
|
|
_bridgelessBundleURLSetter(bundleURL);
|
|
}
|
|
|
|
- (NSURL *)bundleURL
|
|
{
|
|
if (_bridge) {
|
|
return _bridge.bundleURL;
|
|
}
|
|
|
|
RCTAssert(
|
|
_bridgelessBundleURLGetter != nil,
|
|
@"RCTBundleManager: In bridgeless mode, RCTBridgelessBundleURLGetter must not be nil.");
|
|
|
|
return _bridgelessBundleURLGetter();
|
|
}
|
|
|
|
- (void)resetBundleURL
|
|
{
|
|
RCTBridge *strongBridge = _bridge;
|
|
if (strongBridge) {
|
|
strongBridge.bundleURL = [strongBridge.delegate sourceURLForBridge:strongBridge];
|
|
return;
|
|
}
|
|
|
|
RCTAssert(
|
|
_bridgelessBundleURLDefaultGetter != nil,
|
|
@"RCTBundleManager: In bridgeless mode, default RCTBridgelessBundleURLGetter must not be nil.");
|
|
RCTAssert(
|
|
_bridgelessBundleURLSetter != nil,
|
|
@"RCTBundleManager: In bridgeless mode, RCTBridgelessBundleURLSetter must not be nil.");
|
|
|
|
_bridgelessBundleURLSetter(_bridgelessBundleURLDefaultGetter());
|
|
}
|
|
|
|
@end
|