Spaces:
Running
Running
function stringifyNode(node, custom) { | |
var type = node.type | |
var value = node.value | |
var buf | |
var customResult | |
if (custom && (customResult = custom(node)) !== undefined) { | |
return customResult | |
} else if (type === 'word' || type === 'space') { | |
return value | |
} else if (type === 'string') { | |
buf = node.quote || '' | |
return buf + value + (node.unclosed ? '' : buf) | |
} else if (type === 'comment') { | |
return '/*' + value + (node.unclosed ? '' : '*/') | |
} else if (type === 'div') { | |
return (node.before || '') + value + (node.after || '') | |
} else if (Array.isArray(node.nodes)) { | |
buf = stringify(node.nodes, custom) | |
if (type !== 'function') { | |
return buf | |
} | |
return value + '(' + (node.before || '') + buf + (node.after || '') + (node.unclosed ? '' : ')') | |
} | |
return value | |
} | |
function stringify(nodes, custom) { | |
var result, i | |
if (Array.isArray(nodes)) { | |
result = '' | |
for (i = nodes.length - 1; ~i; i -= 1) { | |
result = stringifyNode(nodes[i], custom) + result | |
} | |
return result | |
} | |
return stringifyNode(nodes, custom) | |
} | |
module.exports = stringify | |