isInDocument.mjs 531 B

12345678910111213141516171819202122232425
  1. import { Node } from 'postcss';
  2. import { isDocument } from './typeGuards.mjs';
  3. /**
  4. * @param {Node} node
  5. * @returns {boolean}
  6. */
  7. export default function isInDocument(node) {
  8. let current = node;
  9. while (current) {
  10. if (isDocument(current)) return true;
  11. // Check for unofficial 'document' property from parsers like postcss-html
  12. if ('document' in current && current.document instanceof Node && isDocument(current.document))
  13. return true;
  14. if (!current.parent) break;
  15. current = current.parent;
  16. }
  17. return false;
  18. }