diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/css-select/index.js | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/css-select/index.js')
| -rw-r--r-- | node_modules/css-select/index.js | 59 |
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 00000000..4179d196 --- /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; |
