Skip to main content
Glama
cloneNodes.js1.33 kB
/** * @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)) } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MatheusgVentura/Project-One'

If you have feedback or need assistance with the MCP directory API, please join our Discord server