tailwindcss/src/util/buildSelectorVariant.js
Adam Wathan 38b4eeb288 Prettier likes parens a lot now
git blame is now broken forever.
2020-10-16 15:39:44 -04:00

21 lines
746 B
JavaScript

import parser from 'postcss-selector-parser'
import tap from 'lodash/tap'
import { useMemo } from './useMemo'
const buildSelectorVariant = useMemo(
(selector, variantName, separator, onError = () => {}) => {
return parser((selectors) => {
tap(selectors.first.filter(({ type }) => type === 'class').pop(), (classSelector) => {
if (classSelector === undefined) {
onError('Variant cannot be generated because selector contains no classes.')
return
}
classSelector.value = `${variantName}${separator}${classSelector.value}`
})
}).processSync(selector)
},
(selector, variantName, separator) => [selector, variantName, separator].join('||')
)
export default buildSelectorVariant