|
1 | 1 | // Copyright (c) 2015-present, salesforce.com, inc. All rights reserved |
2 | 2 | // Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license |
3 | 3 |
|
4 | | -const { Right, Left, fromNullable } = require('data.either') |
5 | | -const { List, Map, OrderedSet } = require('immutable-ext') |
| 4 | +const Either = require('data.either') |
| 5 | +const { Right, Left, fromNullable } = Either |
| 6 | +const { List, Map, OrderedSet, Set } = require('immutable-ext') |
6 | 7 |
|
7 | 8 | const { toTree } = require('./tree') |
8 | 9 | const { find } = require('./utils') |
@@ -83,9 +84,16 @@ module.exports = comments => { |
83 | 84 | const findAllBySelector = selector => |
84 | 85 | utils.filter(comment => selectorMatches('selector', selector, comment)) |
85 | 86 |
|
86 | | - // findFirstVariant :: String -> Either Null Variant |
87 | | - const findFirstVariant = selector => |
88 | | - find(variants(comments), v => getSelector(v) === selector) |
| 87 | + // findFirstVariants :: String -> Either Null Variant |
| 88 | + const findFirstVariants = selector => |
| 89 | + Either.of(selector.split(',')) |
| 90 | + .map(xs => xs.map(x => x.trim())) |
| 91 | + .map(xs => Set(xs)) |
| 92 | + .map(selectors => |
| 93 | + variants(comments) |
| 94 | + .filter(v => |
| 95 | + selectors.has(getSelector(v)))) |
| 96 | + .map(xs => xs.toList()) |
89 | 97 |
|
90 | 98 | // findVariants :: Component -> List Variant |
91 | 99 | const findVariants = comp => |
@@ -128,7 +136,7 @@ module.exports = comments => { |
128 | 136 | findModifier, |
129 | 137 | findComponent, |
130 | 138 | findUtility, |
131 | | - findFirstVariant, |
| 139 | + findFirstVariants, |
132 | 140 | findAllByRestrict, |
133 | 141 | findAllBySelector, |
134 | 142 | findVariants |
|
0 commit comments