function onvisit(node) {
  if (
    (node.type === 'mdxjsEsm' ||
      node.type === 'mdxTextExpression' ||
      node.type === 'mdxFlowExpression' ||
      node.type === 'mdxJsxAttribute' ||
      node.type === 'mdxJsxAttributeValueExpression' ||
      node.type === 'mdxJsxExpressionAttribute') &&
    node.data &&
    'estree' in node.data &&
    node.data.estree
  ) {
    node.data.estree = undefined
  }

  if (node.type === 'mdxJsxTextElement' || node.type === 'mdxJsxFlowElement') {
    let index = -1

    while (++index < node.attributes.length) {
      const child = node.attributes[index]

      onvisit(child)

      if (child.value && typeof child.value === 'object') {
        onvisit(child.value)
      }
    }
  }
}
@param {MdxJsxAttribute | MdxJsxAttributeValueExpression | MdxJsxExpressionAttribute | Nodes} node
  Node.
@returns {undefined}
  Nothing.