function replaceReactDOMReferences()

in transforms/React-DOM-to-react-dom-factories.js [145:172]


  function replaceReactDOMReferences(j, root) {
    let hasModifications = false;

    // matches 'React.DOM'
    const isReactDOMIdentifier = path =>
      path.node.name === DOMModuleName &&
      (path.parent.node.type === 'MemberExpression' &&
        path.parent.node.object.name === 'React');

    root
      .find(j.Identifier)
      .filter(isReactDOMIdentifier)
      .forEach(path => {
        hasModifications = true;
        const DOMargs = path.parent.parent.parent.node.arguments;
        const DOMFactoryPath = path.parent.parent.node.property;
        const DOMFactoryType = DOMFactoryPath.name;

        // React.DOM.div(... -> React.DOM.createElement(...
        path.parent.parent.node.property = j.identifier('createElement');
        // React.DOM.createElement(... -> React.createElement(...
        j(path.parent).replaceWith(j.identifier('React'));
        // React.createElement(... -> React.createElement('div'...
        DOMargs.unshift(j.literal(DOMFactoryType));
      });

    return hasModifications;
  }