| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | "use strict";var cssesc = require("cssesc");var stringify;function escape(str, stringType) {	return cssesc(str, {		quotes: stringType === "\"" ? "double" : "single"	});}function stringifyWithoutBeforeAfter(tree) {	switch(tree.type) {	case "values":		return tree.nodes.map(stringify).join(",");	case "value":		return tree.nodes.map(stringify).join("");	case "item":		return tree.name;	case "nested-item":		return tree.name + "(" + tree.nodes.map(stringify).join(",") + ")";	case "invalid":		return tree.value;	case "comment":		return "/*" + tree.content + "*/";	case "string":		switch(tree.stringType) {		case "'":			return "'" + escape(tree.value, "'") + "'";		case "\"":			return "\"" + escape(tree.value, "\"") + "\"";		}		/* istanbul ignore next */		throw new Error("Invalid stringType");	case "url":		var start = "url(" + (tree.innerSpacingBefore || "");		var end = (tree.innerSpacingAfter || "") + ")";		switch(tree.stringType) {		case "'":			return start + "'" + tree.url.replace(/(\\)/g, "\\$1").replace(/'/g, "\\'") + "'" + end;		case "\"":			return start + "\"" + tree.url.replace(/(\\)/g, "\\$1").replace(/"/g, "\\\"") + "\"" + end;		default:			return start + tree.url.replace(/("|'|\)|\\)/g, "\\$1") + end;		}	}}stringify = function stringify(tree) {	var str = stringifyWithoutBeforeAfter(tree);	if(tree.before) {		str = tree.before + str;	}	if(tree.after) {		str = str + tree.after;	}	return str;};module.exports = stringify;
 |