import { isRoot } from './typeGuards.mjs'; /** @import { Node } from 'postcss' */ export const STOP = 'STOP'; /** * Iterates over each node up to the root node. * * @param {Node} node * @param {(node: Node) => void | STOP} callback * @returns {void} */ export default function eachNodeUpToRoot(node, callback) { let currentNode = node.parent; while (currentNode && !isRoot(currentNode)) { if (callback(currentNode) === STOP) break; currentNode = currentNode.parent; } }