Index: tools/vulcanize/node_modules/vulcanize/node_modules/cheerio/node_modules/cheerio-select/node_modules/CSSselect/node_modules/domutils/lib/querying.js |
diff --git a/tools/vulcanize/node_modules/vulcanize/node_modules/cheerio/node_modules/cheerio-select/node_modules/CSSselect/node_modules/domutils/lib/querying.js b/tools/vulcanize/node_modules/vulcanize/node_modules/cheerio/node_modules/cheerio-select/node_modules/CSSselect/node_modules/domutils/lib/querying.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..187f31e6c14cac1989b4df7288e5fc829525a135 |
--- /dev/null |
+++ b/tools/vulcanize/node_modules/vulcanize/node_modules/cheerio/node_modules/cheerio-select/node_modules/CSSselect/node_modules/domutils/lib/querying.js |
@@ -0,0 +1,76 @@ |
+exports.find = function(test, arr, recurse, limit){ |
+ var result = [], childs; |
+ |
+ for(var i = 0, j = arr.length; i < j; i++){ |
+ if(test(arr[i])){ |
+ result.push(arr[i]); |
+ if(--limit <= 0) break; |
+ } |
+ |
+ childs = this.getChildren(arr[i]); |
+ if(recurse && childs && childs.length > 0){ |
+ childs = this.find(test, childs, recurse, limit); |
+ result = result.concat(childs); |
+ limit -= childs.length; |
+ if(limit <= 0) break; |
+ } |
+ } |
+ |
+ return result; |
+}; |
+ |
+exports.findOneChild = function(test, arr){ |
+ for(var i = 0, l = arr.length; i < l; i++){ |
+ if(test(arr[i])) return arr[i]; |
+ } |
+ |
+ return null; |
+}; |
+ |
+exports.findOne = function(test, arr){ |
+ var elem = null; |
+ |
+ for(var i = 0, l = arr.length; i < l && !elem; i++){ |
+ if(test(arr[i])){ |
+ elem = arr[i]; |
+ } else if(arr[i].children && arr[i].children.length > 0){ |
+ elem = this.findOne(test, arr[i].children); |
+ } |
+ } |
+ |
+ return elem; |
+}; |
+ |
+exports.findAll = function(test, elems){ |
+ var result = []; |
+ for(var i = 0, j = elems.length; i < j; i++){ |
+ if(test(elems[i])) result.push(elems[i]); |
+ |
+ var childs = this.getChildren(elems[i]); |
+ if(childs && childs.length){ |
+ result = result.concat(this.findAll(test, childs)); |
+ } |
+ } |
+ return result; |
+}; |
+ |
+exports.filter = function(test, element, recurse, limit){ |
+ if(!Array.isArray(element)) element = [element]; |
+ |
+ if(typeof limit !== "number" || !isFinite(limit)){ |
+ if(recurse === false){ |
+ return element.filter(test); |
+ } else { |
+ return this.findAll(test, element); |
+ } |
+ } else if(limit === 1){ |
+ if(recurse === false){ |
+ element = this.findOneChild(test, element); |
+ } else { |
+ element = this.findOne(test, element); |
+ } |
+ return element ? [element] : []; |
+ } else { |
+ return this.find(test, element, recurse !== false, limit); |
+ } |
+}; |