aboutsummaryrefslogtreecommitdiff
path: root/node_modules/css-select/index.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
commitde98e0b232509d5f40c135d540a70e415272ff85 (patch)
treea79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/css-select/index.js
parente0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff)
node_modules
Diffstat (limited to 'node_modules/css-select/index.js')
-rw-r--r--node_modules/css-select/index.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/node_modules/css-select/index.js b/node_modules/css-select/index.js
new file mode 100644
index 000000000..4179d196b
--- /dev/null
+++ b/node_modules/css-select/index.js
@@ -0,0 +1,59 @@
+"use strict";
+
+module.exports = CSSselect;
+
+var Pseudos = require("./lib/pseudos.js"),
+ DomUtils = require("domutils"),
+ findOne = DomUtils.findOne,
+ findAll = DomUtils.findAll,
+ getChildren = DomUtils.getChildren,
+ removeSubsets = DomUtils.removeSubsets,
+ falseFunc = require("boolbase").falseFunc,
+ compile = require("./lib/compile.js"),
+ compileUnsafe = compile.compileUnsafe,
+ compileToken = compile.compileToken;
+
+function getSelectorFunc(searchFunc){
+ return function select(query, elems, options){
+ if(typeof query !== "function") query = compileUnsafe(query, options, elems);
+ if(!Array.isArray(elems)) elems = getChildren(elems);
+ else elems = removeSubsets(elems);
+ return searchFunc(query, elems);
+ };
+}
+
+var selectAll = getSelectorFunc(function selectAll(query, elems){
+ return (query === falseFunc || !elems || elems.length === 0) ? [] : findAll(query, elems);
+});
+
+var selectOne = getSelectorFunc(function selectOne(query, elems){
+ return (query === falseFunc || !elems || elems.length === 0) ? null : findOne(query, elems);
+});
+
+function is(elem, query, options){
+ return (typeof query === "function" ? query : compile(query, options))(elem);
+}
+
+/*
+ the exported interface
+*/
+function CSSselect(query, elems, options){
+ return selectAll(query, elems, options);
+}
+
+CSSselect.compile = compile;
+CSSselect.filters = Pseudos.filters;
+CSSselect.pseudos = Pseudos.pseudos;
+
+CSSselect.selectAll = selectAll;
+CSSselect.selectOne = selectOne;
+
+CSSselect.is = is;
+
+//legacy methods (might be removed)
+CSSselect.parse = compile;
+CSSselect.iterate = selectAll;
+
+//hooks
+CSSselect._compileUnsafe = compileUnsafe;
+CSSselect._compileToken = compileToken;