Commit 56fb7860 authored by Dmitry's avatar Dmitry

documentAdapter оформлен как класс

parent 5ee757c6
...@@ -2,72 +2,75 @@ ...@@ -2,72 +2,75 @@
const idlUtils = require("../living/generated/utils"); const idlUtils = require("../living/generated/utils");
// Tree traversing class DocumentAdapter {
exports.getFirstChild = function (node) { getFirstChild (node) {
return node.childNodes[0]; return node.childNodes[0];
}; }
exports.getChildNodes = function (node) { getChildNodes (node) {
// parse5 treats template elements specially, assuming you return an array whose single item is the document fragment // parse5 treats template elements specially, assuming you return an array whose single item is the document fragment
const children = node._templateContents ? [node._templateContents] : []; const children = node._templateContents ? [node._templateContents] : [];
if (children.length === 0) { if (children.length === 0) {
for (let i = 0; i < node.childNodes.length; ++i) { for (let i = 0; i < node.childNodes.length; ++i) {
children.push(idlUtils.implForWrapper(node.childNodes[i])); children.push(idlUtils.implForWrapper(node.childNodes[i]));
}
} }
return children;
}
getParentNode (node) {
return node.parentNode;
}
getAttrList (node) {
return node.attributes;
}
// Node data
getTagName (element) {
return element.tagName.toLowerCase();
} }
return children;
}; getNamespaceURI (element) {
return element.namespaceURI || "http://www.w3.org/1999/xhtml";
exports.getParentNode = function (node) { }
return node.parentNode;
}; getTextNodeContent (textNode) {
return textNode.nodeValue;
exports.getAttrList = function (node) { }
return node.attributes;
}; getCommentNodeContent (commentNode) {
return commentNode.nodeValue;
// Node data }
exports.getTagName = function (element) {
return element.tagName.toLowerCase(); getDocumentTypeNodeName (doctypeNode) {
}; return doctypeNode.name;
}
exports.getNamespaceURI = function (element) {
return element.namespaceURI || "http://www.w3.org/1999/xhtml"; getDocumentTypeNodePublicId (doctypeNode) {
}; return doctypeNode.publicId || null;
}
exports.getTextNodeContent = function (textNode) {
return textNode.nodeValue; getDocumentTypeNodeSystemId (doctypeNode) {
}; return doctypeNode.systemId || null;
}
exports.getCommentNodeContent = function (commentNode) {
return commentNode.nodeValue; // Node types
}; isTextNode (node) {
return node.nodeName === "#text";
exports.getDocumentTypeNodeName = function (doctypeNode) { }
return doctypeNode.name;
}; isCommentNode (node) {
return node.nodeName === "#comment";
exports.getDocumentTypeNodePublicId = function (doctypeNode) { }
return doctypeNode.publicId || null;
}; isDocumentTypeNode (node) {
return node.nodeType === 10;
exports.getDocumentTypeNodeSystemId = function (doctypeNode) { }
return doctypeNode.systemId || null;
}; isElementNode (node) {
return Boolean(node.tagName);
// Node types }
exports.isTextNode = function (node) { }
return node.nodeName === "#text";
}; module.exports = DocumentAdapter;
exports.isCommentNode = function (node) {
return node.nodeName === "#comment";
};
exports.isDocumentTypeNode = function (node) {
return node.nodeType === 10;
};
exports.isElementNode = function (node) {
return Boolean(node.tagName);
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment