Skip to content

Commit

Permalink
[index] abstracted away some shared logic in select(All|One)
Browse files Browse the repository at this point in the history
  • Loading branch information
fb55 committed Oct 16, 2013
1 parent 7468da8 commit 042aed7
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions index.js
Expand Up @@ -10,17 +10,21 @@ var Pseudos = require("./lib/pseudos.js"),
falseFunc = require("./lib/basefunctions.js").falseFunc,
compile = require("./lib/compile.js");

function selectAll(query, elems, options){
if(typeof query !== "function") query = compile(query, options);
if(!Array.isArray(elems)) elems = getChildren(elems);
return (!elems || query === falseFunc) ? [] : findAll(query, elems);
function getSelectorFunc(searchFunc){
return function select(query, elems, options){
if(typeof query !== "function") query = compile(query, options);
if(!Array.isArray(elems)) elems = getChildren(elems);
return searchFunc(query, elems);
};
}

function selectOne(query, elems, options){
if(typeof query !== "function") query = compile(query, options);
if(!Array.isArray(elems)) elems = getChildren(elems);
return (!elems || query === falseFunc) ? null : findOne(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);
Expand Down

0 comments on commit 042aed7

Please sign in to comment.