1import type { Protocol } from 'devtools-protocol'; 2 3import { CdpMessage, DebuggerRequest, InspectorHandler } from './types'; 4import { MetroBundlerDevServer } from '../../MetroBundlerDevServer'; 5import { ExpoDebuggerInfo } from '../device'; 6 7export class PageReloadHandler implements InspectorHandler { 8 constructor(private readonly metroBundler: MetroBundlerDevServer) {} 9 10 onDebuggerMessage(message: DebuggerRequest<PageReload>, { socket }: ExpoDebuggerInfo) { 11 if (message.method === 'Page.reload') { 12 this.metroBundler.broadcastMessage('reload'); 13 socket.send(JSON.stringify({ id: message.id })); 14 return true; 15 } 16 17 return false; 18 } 19} 20 21/** @see https://chromedevtools.github.io/devtools-protocol/1-2/Page/#method-reload */ 22export type PageReload = CdpMessage<'Page.reload', Protocol.Page.ReloadRequest, never>; 23