2018-03-24 02:02:59 +00:00
|
|
|
import reactNative, { Platform, NativeModules } from 'react-native';
|
|
|
|
import RNRestart from 'react-native-restart'; // Import package from node modules
|
|
|
|
|
|
|
|
const bridgeNode = global.__bridgeNode;
|
|
|
|
|
2018-03-24 06:45:45 +00:00
|
|
|
// https://github.com/facebook/react-native/blob/master/React/Modules/RCTDevSettings.mm
|
2018-03-24 02:02:59 +00:00
|
|
|
if (Platform.OS === 'ios' && !bridgeNode) {
|
|
|
|
NativeModules.RCTDevSettings.setIsDebuggingRemotely(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (bridgeNode) {
|
|
|
|
bridgeNode.provideReload(RNRestart.Restart);
|
2018-03-24 07:12:46 +00:00
|
|
|
bridgeNode.provideReactNativeModule(reactNative);
|
2018-03-24 07:13:58 +00:00
|
|
|
|
|
|
|
// keep alive
|
|
|
|
setInterval(() => {
|
2018-03-24 07:14:42 +00:00
|
|
|
// I don't do anything...
|
|
|
|
// BUT i am needed - otherwise RN's batched bridge starts to hang in detox... ???
|
2018-03-24 07:13:58 +00:00
|
|
|
}, 60);
|
2018-03-24 02:02:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export default {
|
2018-03-24 07:09:45 +00:00
|
|
|
/**
|
|
|
|
* Makes the main module to be tested accessible to nodejs
|
|
|
|
* @param moduleExports
|
|
|
|
*/
|
2018-03-24 02:02:59 +00:00
|
|
|
provideModule(moduleExports) {
|
|
|
|
if (bridgeNode) {
|
|
|
|
bridgeNode.provideModule(moduleExports);
|
|
|
|
bridgeNode.ready();
|
|
|
|
}
|
|
|
|
},
|
2018-03-24 07:09:45 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Makes the root component accessible to nodejs - e.g. bridge.root.setState({ ... });
|
|
|
|
* @param rootComponent
|
|
|
|
*/
|
2018-03-24 02:02:59 +00:00
|
|
|
provideRoot(rootComponent) {
|
|
|
|
if (bridgeNode) {
|
|
|
|
bridgeNode.provideRoot(rootComponent);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
};
|