isInDocument.cjs 740 B

123456789101112131415161718192021222324252627282930
  1. // NOTICE: This file is generated by Rollup. To modify it,
  2. // please instead edit the ESM counterpart and rebuild with Rollup (npm run build).
  3. 'use strict';
  4. const postcss = require('postcss');
  5. const typeGuards = require('./typeGuards.cjs');
  6. /**
  7. * @param {Node} node
  8. * @returns {boolean}
  9. */
  10. function isInDocument(node) {
  11. let current = node;
  12. while (current) {
  13. if (typeGuards.isDocument(current)) return true;
  14. // Check for unofficial 'document' property from parsers like postcss-html
  15. if ('document' in current && current.document instanceof postcss.Node && typeGuards.isDocument(current.document))
  16. return true;
  17. if (!current.parent) break;
  18. current = current.parent;
  19. }
  20. return false;
  21. }
  22. module.exports = isInDocument;