123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /**
- * @param {import('postcss').Container[]} nodes
- * @param {any} source
- * @param {any} raws
- * @returns {import('postcss').Container[]}
- */ "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- Object.defineProperty(exports, "default", {
- enumerable: true,
- get: function() {
- return cloneNodes;
- }
- });
- 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)=>{
- var _node_raws_tailwind;
- // Do not traverse nodes that have opted
- // to preserve their original source
- let shouldPreserveSource = ((_node_raws_tailwind = node.raws.tailwind) === null || _node_raws_tailwind === void 0 ? void 0 : _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) {
- var _node_each;
- (_node_each = node.each) === null || _node_each === void 0 ? void 0 : _node_each.call(node, (child)=>traverse(child, onNode));
- }
- }
|