code: function transformJSX(ast, pragma) {
  	assert(t.isFile(ast) || t.isProgram(ast), '<ast> must be a babel ast for transformJSX(ast: AST, pragma: String): AST');
  	assert(typeof pragma === 'string' && pragma, '<pragma> must be a non-empty string for transformJSX(ast: AST, pragma: String): AST');
  
  	const call = buildCall(pragma);
  
  	traverse(ast, {
  		JSXElement: {
  			exit(path) {
  				const openingElement = path.get('openingElement');
  				const expression = buildElementCall(call, openingElement);
  				expression.arguments = [...expression.arguments, ...path.node.children];
  				path.replaceWith(t.inherits(expression, path.node));
  			}
  		}
  	});
  	return ast;
  }
docs: Convert JSX in a babel ast to CallExpressions
  @param ast {Object} - babel ast to transform JSX in
  @param pragma {String} - pragma to use, e.g. `React.createElement`