1234567891011121314151617181920212223242526272829 |
- 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;
|