text: 'use strict'
  
  module.exports = one
  
  var u = require('unist-builder')
  var all = require('./all')
  
  var own = {}.hasOwnProperty
  
  // Transform an unknown node.
  function unknown(h, node) {
    if (text(node)) {
      return h.augment(node, u('text', node.value))
    }
  
    return h(node, 'div', all(h, node))
  }
  
  // Visit a node.
  function one(h, node, parent) {
    var type = node && node.type
    var fn = own.call(h.handlers, type) ? h.handlers[type] : null
  
    // Fail on non-nodes.
    if (!type) {
      throw new Error('Expected node, got `' + node + '`')
    }
  
    return (typeof fn === 'function' ? fn : unknown)(h, node, parent)
  }
  
  // Check if the node should be renderered as a text node.
  function text(node) {
    var data = node.data || {}
  
    if (
      own.call(data, 'hName') ||
      own.call(data, 'hProperties') ||
      own.call(data, 'hChildren')
    ) {
      return false
    }
  
    return 'value' in node
  }
  