1import { 2 importMetroInspectorDeviceFromProject, 3 importMetroInspectorProxyFromProject, 4} from '../resolveFromProject'; 5import { createInspectorDeviceClass } from './device'; 6import { ExpoInspectorProxy } from './proxy'; 7 8export { ExpoInspectorProxy } from './proxy'; 9 10const debug = require('debug')('expo:metro:inspector-proxy') as typeof console.log; 11 12export function createInspectorProxy(projectRoot: string) { 13 debug('Experimental inspector proxy enabled'); 14 15 // Import the installed `metro-inspector-proxy` from the project 16 // We use these base classes to extend functionality 17 const { InspectorProxy: MetroInspectorProxy } = importMetroInspectorProxyFromProject(projectRoot); 18 // The device is slightly more complicated, we need to extend that class 19 const ExpoInspectorDevice = createInspectorDeviceClass( 20 importMetroInspectorDeviceFromProject(projectRoot) 21 ); 22 23 const inspectorProxy = new ExpoInspectorProxy( 24 new MetroInspectorProxy(projectRoot), 25 ExpoInspectorDevice 26 ); 27 28 return inspectorProxy; 29} 30