Refactor massageAst releated code (#18733)
This commit is contained in:
1 parent
183c115148
commit
56860a7c58
22 files changed
+250
-188
No files matched your search
@@ -0,0 +1,53 @@
|
||||
import htmlWhitespace from "../../utilities/html-whitespace.js";
|
||||
|
||||
function massageAstNode(original, cloned, parent) {
|
||||
// (Glimmer/HTML) ignore TextNode
|
||||
if (original.type === "TextNode") {
|
||||
const trimmed = original.chars.trim();
|
||||
if (!trimmed) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// CSS will be formatted
|
||||
if (
|
||||
parent.tag === "style" &&
|
||||
parent.children.length === 1 &&
|
||||
parent.children[0] === original
|
||||
) {
|
||||
cloned.chars = "";
|
||||
} else {
|
||||
cloned.chars = htmlWhitespace.split(trimmed).join(" ");
|
||||
}
|
||||
}
|
||||
|
||||
if (original.type === "ElementNode") {
|
||||
delete cloned.startTag;
|
||||
delete cloned.openTag;
|
||||
delete cloned.parts;
|
||||
delete cloned.endTag;
|
||||
delete cloned.closeTag;
|
||||
delete cloned.nameNode;
|
||||
delete cloned.body;
|
||||
delete cloned.blockParamNodes;
|
||||
delete cloned.params;
|
||||
delete cloned.path;
|
||||
}
|
||||
|
||||
if (original.type === "Block") {
|
||||
delete cloned.blockParamNodes;
|
||||
delete cloned.params;
|
||||
}
|
||||
|
||||
// `class` is reformatted
|
||||
if (original.type === "AttrNode" && original.name.toLowerCase() === "class") {
|
||||
delete cloned.value;
|
||||
}
|
||||
|
||||
if (original.type === "PathExpression") {
|
||||
cloned.head = original.head.original;
|
||||
}
|
||||
}
|
||||
|
||||
massageAstNode.ignoredProperties = new Set(["loc", "selfClosing"]);
|
||||
|
||||
export { massageAstNode };
|
||||
Reference in new issue
Block a user