44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
import reactNative, { Platform, NativeModules } from 'react-native';
|
|
import RNRestart from 'react-native-restart'; // Import package from node modules
|
|
|
|
const bridgeNode = global.__bridgeNode;
|
|
|
|
// https://github.com/facebook/react-native/blob/master/React/Modules/RCTDevSettings.mm
|
|
if (Platform.OS === 'ios' && !bridgeNode) {
|
|
NativeModules.RCTDevSettings.setIsDebuggingRemotely(true);
|
|
}
|
|
|
|
if (bridgeNode) {
|
|
bridgeNode.provideReload(RNRestart.Restart);
|
|
bridgeNode.provideReactNativeModule(reactNative);
|
|
|
|
// keep alive
|
|
setInterval(() => {
|
|
// I don't do anything lol
|
|
// BUT i am needed - otherwise RN's batch bridge starts to hang in detox... ???
|
|
}, 60);
|
|
}
|
|
|
|
export default {
|
|
/**
|
|
* Makes the main module to be tested accessible to nodejs
|
|
* @param moduleExports
|
|
*/
|
|
provideModule(moduleExports) {
|
|
if (bridgeNode) {
|
|
bridgeNode.provideModule(moduleExports);
|
|
bridgeNode.ready();
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Makes the root component accessible to nodejs - e.g. bridge.root.setState({ ... });
|
|
* @param rootComponent
|
|
*/
|
|
provideRoot(rootComponent) {
|
|
if (bridgeNode) {
|
|
bridgeNode.provideRoot(rootComponent);
|
|
}
|
|
},
|
|
};
|