1*8a424bebSJames Ideimport { createInspectorDeviceClass } from './device'; 2*8a424bebSJames Ideimport { ExpoInspectorProxy } from './proxy'; 303d43e7dSCedric van Puttenimport { MetroBundlerDevServer } from '../MetroBundlerDevServer'; 45234fe38SCedric van Puttenimport { 55234fe38SCedric van Putten importMetroInspectorDeviceFromProject, 65234fe38SCedric van Putten importMetroInspectorProxyFromProject, 75234fe38SCedric van Putten} from '../resolveFromProject'; 85234fe38SCedric van Putten 95234fe38SCedric van Puttenexport { ExpoInspectorProxy } from './proxy'; 105234fe38SCedric van Putten 115234fe38SCedric van Puttenconst debug = require('debug')('expo:metro:inspector-proxy') as typeof console.log; 125234fe38SCedric van Putten 1303d43e7dSCedric van Puttenexport function createInspectorProxy(metroBundler: MetroBundlerDevServer, projectRoot: string) { 1433bd1a45SCedric van Putten debug('Expo inspector proxy enabled'); 155234fe38SCedric van Putten 165234fe38SCedric van Putten // Import the installed `metro-inspector-proxy` from the project 175234fe38SCedric van Putten // We use these base classes to extend functionality 185234fe38SCedric van Putten const { InspectorProxy: MetroInspectorProxy } = importMetroInspectorProxyFromProject(projectRoot); 195234fe38SCedric van Putten // The device is slightly more complicated, we need to extend that class 205234fe38SCedric van Putten const ExpoInspectorDevice = createInspectorDeviceClass( 2103d43e7dSCedric van Putten metroBundler, 225234fe38SCedric van Putten importMetroInspectorDeviceFromProject(projectRoot) 235234fe38SCedric van Putten ); 245234fe38SCedric van Putten 255234fe38SCedric van Putten const inspectorProxy = new ExpoInspectorProxy( 265234fe38SCedric van Putten new MetroInspectorProxy(projectRoot), 275234fe38SCedric van Putten ExpoInspectorDevice 285234fe38SCedric van Putten ); 295234fe38SCedric van Putten 305234fe38SCedric van Putten return inspectorProxy; 315234fe38SCedric van Putten} 32