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