import type {ReactBuildType} from 'react-devtools-shared/src/backend/types';
function reduceReactBuild(
currentReactBuildType: null | ReactBuildType,
nextReactBuildType: ReactBuildType,
): ReactBuildType {
if (
currentReactBuildType === null ||
currentReactBuildType === 'production'
) {
return nextReactBuildType;
}
return nextReactBuildType === 'production'
? currentReactBuildType
: nextReactBuildType;
}
export function createReactRendererListener(target: {
postMessage: Function,
...
}): ({reactBuildType: ReactBuildType}) => void {
let displayedReactBuild: null | ReactBuildType = null;
return function ({reactBuildType}) {
displayedReactBuild = reduceReactBuild(displayedReactBuild, reactBuildType);
target.postMessage(
{
source: 'react-devtools-hook',
payload: {
type: 'react-renderer-attached',
reactBuildType: displayedReactBuild,
},
},
'*',
);
};
}