export type ExtensionBridgeConnectionType =
| 'react-devtools-extension-bridge-connection-ready'
| 'react-devtools-extension-bridge-connection-disconnected';
export const EXTENSION_BRIDGE_CONNECTION_READY: ExtensionBridgeConnectionType =
'react-devtools-extension-bridge-connection-ready';
export const EXTENSION_BRIDGE_CONNECTION_DISCONNECTED: ExtensionBridgeConnectionType =
'react-devtools-extension-bridge-connection-disconnected';
export function getExtensionBridgeConnectionType(
message: mixed,
): ExtensionBridgeConnectionType | null {
if (
message === null ||
typeof message !== 'object' ||
!('source' in message) ||
message.source !== 'react-devtools-background' ||
!('payload' in message)
) {
return null;
}
const payload = message.payload;
if (payload === null || typeof payload !== 'object' || !('type' in payload)) {
return null;
}
const type = payload.type;
if (type === EXTENSION_BRIDGE_CONNECTION_READY) {
return EXTENSION_BRIDGE_CONNECTION_READY;
}
if (type === EXTENSION_BRIDGE_CONNECTION_DISCONNECTED) {
return EXTENSION_BRIDGE_CONNECTION_DISCONNECTED;
}
return null;
}