Files
tailwindcss/src/util/createUtilityPlugin.js
T
Adam Wathan 0cc1f73226 Prettier likes parens a lot now
git blame is now broken forever.
2020-10-16 15:39:44 -04:00

24 lines
799 B
JavaScript

import identity from 'lodash/identity'
import fromPairs from 'lodash/fromPairs'
import toPairs from 'lodash/toPairs'
import castArray from 'lodash/castArray'
import nameClass from './nameClass'
export default function createUtilityPlugin(themeKey, utilityVariations) {
return function ({ addUtilities, variants, theme }) {
const utilities = utilityVariations.map(
([classPrefix, properties, transformValue = identity]) => {
return fromPairs(
toPairs(theme(themeKey)).map(([key, value]) => {
return [
nameClass(classPrefix, key),
fromPairs(castArray(properties).map((property) => [property, transformValue(value)])),
]
})
)
}
)
return addUtilities(utilities, variants(themeKey))
}
}