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; | |