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