2 const cssSyntax = require("./css-syntax");
4 function stringify (document, builder) {
5 if (document.source.syntax) {
6 return document.source.syntax.stringify(document, builder);
8 const firstOriginalRoot = document.nodes.find(root => root.source && root.source.syntax);
10 document.nodes.forEach((root, i) => {
11 let syntax = root.source && root.source.syntax;
13 if (root.raws.beforeStart) {
14 builder(root.raws.beforeStart, root, "beforeStart");
16 defaultSyntax = syntax;
18 if (!i && firstOriginalRoot) {
19 builder(firstOriginalRoot.raws.beforeStart, root, "beforeStart");
20 firstOriginalRoot.raws.beforeStart = "";
22 syntax = defaultSyntax || (
23 defaultSyntax = firstOriginalRoot
24 ? firstOriginalRoot.source.syntax
28 if (root.source && root.source.isHTMLAttribute) {
29 return syntax.stringify(root, string => {
33 string.replace(/[\r\n\t\s]+/g, " "),
35 Array.from(arguments).slice(1)
40 syntax.stringify(root, builder);
43 builder(document.raws.afterEnd, document, "afterEnd");
47 module.exports = stringify;