/
githubmirror
/
tailwindcss
Обзор
Документация
Войти
/
githubmirror
/
tailwindcss
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v3.4.19
src/util/cloneNodes.js
49 строк
1 KB
Jordan Pittman
Fix source maps of variant utilities that come from an `@layer` rule (#12508)
01 дек 2023, 19:46
01 дек 2023, 19:46
2dcb1fc
Код
Авторство
О чём код?
/** * @param {import('postcss').Container[]} nodes * @param {any} source * @param {any} raws * @returns {import('postcss').Container[]} */ export default function cloneNodes(nodes, source = undefined, raws = undefined) { return nodes.map((node) => { let cloned = node.clone() if (raws !== undefined) { cloned.raws.tailwind = { ...cloned.raws.tailwind, ...raws, } } if (source !== undefined) { traverse(cloned, (node) => { // Do not traverse nodes that have opted // to preserve their original source let shouldPreserveSource = node.raws.tailwind?.preserveSource === true && node.source if (shouldPreserveSource) { return false } // Otherwise we can safely replace the source // And continue traversing node.source = source }) } return cloned }) } /** * Traverse a tree of nodes and don't traverse children if the callback * returns false. Ideally we'd use Container#walk instead of this * function but it stops traversing siblings too. * * @param {import('postcss').Container} node * @param {(node: import('postcss').Container) => boolean} onNode */ function traverse(node, onNode) { if (onNode(node) !== false) { node.each?.((child) => traverse(child, onNode)) } }