mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
* remove `lodash` usage * implement custom cloneDeep to replace lodash's * drop lodash in processPlugins * add `toPath` utility * add `tap` utility * add `cloneDeep` utility * drop lodash in evaluateTailwindFunctions * add `defaults` utility * drop lodash from `resolveConfig` * remove `lodash` dependency
44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
import dlv from 'dlv'
|
|
import escapeClassName from '../src/util/escapeClassName'
|
|
|
|
export default function (plugin, config) {
|
|
const addedUtilities = []
|
|
|
|
const getConfigValue = (path, defaultValue) => dlv(config, path, defaultValue)
|
|
const pluginApi = {
|
|
config: getConfigValue,
|
|
e: escapeClassName,
|
|
theme: (path, defaultValue) => getConfigValue(`theme.${path}`, defaultValue),
|
|
variants: (path, defaultValue) => {
|
|
if (Array.isArray(config.variants)) {
|
|
return config.variants
|
|
}
|
|
|
|
return getConfigValue(`variants.${path}`, defaultValue)
|
|
},
|
|
addUtilities(utilities, variants) {
|
|
addedUtilities.push([utilities, variants])
|
|
},
|
|
corePlugins(corePlugin) {
|
|
if (config.corePlugins === undefined) {
|
|
return false
|
|
}
|
|
|
|
if (Array.isArray(config.corePlugins)) {
|
|
return config.corePlugins.includes(corePlugin)
|
|
}
|
|
|
|
return config.corePlugins[corePlugin] !== false
|
|
},
|
|
}
|
|
|
|
plugin(pluginApi)
|
|
|
|
return {
|
|
utilities: addedUtilities.map(([utilities, variants]) => [
|
|
Object.assign({}, ...(Array.isArray(utilities) ? utilities : [utilities])),
|
|
variants,
|
|
]),
|
|
}
|
|
}
|