Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3032)

Unified Diff: tools/vulcanize/node_modules/vulcanize/node_modules/cheerio/node_modules/cheerio-select/node_modules/CSSselect/node_modules/domutils/lib/querying.js

Issue 125733002: Add vulcanize to tools. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
+ }
+};

Powered by Google App Engine
This is Rietveld 408576698