| Index: node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/stringify.js
|
| diff --git a/node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/stringify.js b/node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/stringify.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..47a2ef93630379289a97e578b2a261a5f664900d
|
| --- /dev/null
|
| +++ b/node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/stringify.js
|
| @@ -0,0 +1,93 @@
|
| +var ElementType = require("domelementtype"),
|
| + isTag = ElementType.isTag;
|
| +
|
| +module.exports = {
|
| + getInnerHTML: getInnerHTML,
|
| + getOuterHTML: getOuterHTML,
|
| + getText: getText
|
| +};
|
| +
|
| +function getInnerHTML(elem){
|
| + return elem.children ? elem.children.map(getOuterHTML).join("") : "";
|
| +}
|
| +
|
| +//boolean attributes without a value (taken from MatthewMueller/cheerio)
|
| +var booleanAttribs = {
|
| + __proto__: null,
|
| + async: true,
|
| + autofocus: true,
|
| + autoplay: true,
|
| + checked: true,
|
| + controls: true,
|
| + defer: true,
|
| + disabled: true,
|
| + hidden: true,
|
| + loop: true,
|
| + multiple: true,
|
| + open: true,
|
| + readonly: true,
|
| + required: true,
|
| + scoped: true,
|
| + selected: true
|
| +};
|
| +
|
| +var emptyTags = {
|
| + __proto__: null,
|
| + area: true,
|
| + base: true,
|
| + basefont: true,
|
| + br: true,
|
| + col: true,
|
| + frame: true,
|
| + hr: true,
|
| + img: true,
|
| + input: true,
|
| + isindex: true,
|
| + link: true,
|
| + meta: true,
|
| + param: true,
|
| + embed: true
|
| +};
|
| +
|
| +function getOuterHTML(elem){
|
| + switch(elem.type){
|
| + case ElementType.Text:
|
| + return elem.data;
|
| + case ElementType.Comment:
|
| + return "<!--" + elem.data + "-->";
|
| + case ElementType.Directive:
|
| + return "<" + elem.data + ">";
|
| + case ElementType.CDATA:
|
| + return "<!CDATA " + getInnerHTML(elem) + "]]>";
|
| + }
|
| +
|
| + var ret = "<" + elem.name;
|
| + if("attribs" in elem){
|
| + for(var attr in elem.attribs){
|
| + if(elem.attribs.hasOwnProperty(attr)){
|
| + ret += " " + attr;
|
| + var value = elem.attribs[attr];
|
| + if(value == null){
|
| + if( !(attr in booleanAttribs) ){
|
| + ret += "=\"\"";
|
| + }
|
| + } else {
|
| + ret += "=\"" + value + "\"";
|
| + }
|
| + }
|
| + }
|
| + }
|
| +
|
| + if (elem.name in emptyTags && elem.children.length === 0) {
|
| + return ret + " />";
|
| + } else {
|
| + return ret + ">" + getInnerHTML(elem) + "</" + elem.name + ">";
|
| + }
|
| +}
|
| +
|
| +function getText(elem){
|
| + if(Array.isArray(elem)) return elem.map(getText).join("");
|
| + if(isTag(elem) || elem.type === ElementType.CDATA) return getText(elem.children);
|
| + if(elem.type === ElementType.Text) return elem.data;
|
| + return "";
|
| +}
|
|
|