diff --git a/packages/react-cosmos-renderer/src/rendererConnect/createWebSocketsConnect.ts b/packages/react-cosmos-renderer/src/rendererConnect/createWebSocketsConnect.ts index fbcf6d92f9..131b582fe4 100644 --- a/packages/react-cosmos-renderer/src/rendererConnect/createWebSocketsConnect.ts +++ b/packages/react-cosmos-renderer/src/rendererConnect/createWebSocketsConnect.ts @@ -1,10 +1,17 @@ import { RendererConnect, RendererRequest, + RendererResponse, SocketMessage, rendererSocketMessage, } from 'react-cosmos-core'; +declare global { + interface Window { + cosmosRendererResponse?: (msg: RendererResponse) => void; + } +} + export function createWebSocketsConnect(url: string): RendererConnect { let pendingMessages: SocketMessage[] = []; @@ -24,6 +31,11 @@ export function createWebSocketsConnect(url: string): RendererConnect { } else { pendingMessages.push(socketMessage); } + + // Allow headless browsers to capture renderer responses + if (window.cosmosRendererResponse) { + window.cosmosRendererResponse(rendererResponse); + } }, onMessage(onMessage) {