| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- '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 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
- }
|