mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
aeef7b511e
Summary: Developer tools have a lot of dependencies on the bridge, so for now I'm just disabling them in bridgeless mode entirely by guarding everything in `setUpDeveloperTools` with the `RN$Bridgeless` flag. Also consolidating some of the stuff Dan added to `InitializeCore` for hot reloading in here. Reviewed By: zackargyle Differential Revision: D15797924 fbshipit-source-id: 360ea81a2844e49f7281eed259fc16a541148ac2
55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow strict-local
|
|
* @format
|
|
*/
|
|
'use strict';
|
|
|
|
import Platform from '../Utilities/Platform';
|
|
|
|
/**
|
|
* Sets up developer tools for React Native.
|
|
* You can use this module directly, or just require InitializeCore.
|
|
*/
|
|
if (__DEV__) {
|
|
// TODO (T45803484) Enable devtools for bridgeless RN
|
|
if (!global.RN$Bridgeless) {
|
|
if (!global.__RCTProfileIsProfiling) {
|
|
// not when debugging in chrome
|
|
// TODO(t12832058) This check is broken
|
|
if (!window.document) {
|
|
require('./Devtools/setupDevtools');
|
|
}
|
|
|
|
// Set up inspector
|
|
const JSInspector = require('../JSInspector/JSInspector');
|
|
JSInspector.registerAgent(require('../JSInspector/NetworkAgent'));
|
|
}
|
|
|
|
if (!Platform.isTesting) {
|
|
const logToConsole = require('./Devtools/logToConsole');
|
|
['log', 'warn', 'info', 'trace'].forEach(level => {
|
|
const originalFunction = console[level];
|
|
// $FlowFixMe Overwrite console methods
|
|
console[level] = function(...args) {
|
|
logToConsole(level, args);
|
|
originalFunction.apply(console, args);
|
|
};
|
|
});
|
|
}
|
|
|
|
// This is used by the require.js polyfill for hot reloading.
|
|
// TODO(t9759686) Scan polyfills for dependencies, too
|
|
const reload = require('../NativeModules/specs/NativeDevSettings').default
|
|
.reload;
|
|
if (typeof reload !== 'function') {
|
|
throw new Error('Could not find the reload() implementation.');
|
|
}
|
|
(require: any).reload = reload; // flowlint-line unclear-type: off
|
|
}
|
|
}
|