lib/selector-unique-matches.js
var processSelectors = require('./process-selectors');
/**
* Returns the matches of the first capture group in the given regular
* expression in the specified rules (AST), without repetition
*
* @example
* var rules = getRulesFromCode('[href] { background: red }');
* var regexp = /\[(\w+)\]/g; // Notice the parenthesis!
* selectorUniqueMatches(rules, regexp);
* //> ['href']
*
* @param {Object[]} rules
* @param {RegExp} regexp
* @return {string[]}
*/
function selectorUniqueMatches(rules, regexp) {
var resultSet = {};
processSelectors(rules, function(selector) {
var match;
while (!!(match = regexp.exec(selector))) {
resultSet[match[1]] = true;
}
});
return Object.keys(resultSet);
}
module.exports = selectorUniqueMatches;