Spaces:
Sleeping
Sleeping
| 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 | |