parseMediaQuery.js 654 B

123456789101112131415161718192021222324252627
  1. 'use strict';
  2. const { parse, isMediaQueryInvalid } = require('@csstools/media-query-list-parser');
  3. /**
  4. * @param {import('postcss').AtRule} atRule
  5. * @param {import('stylelint').PostcssResult} result
  6. * @returns {ReturnType<typeof parse>}
  7. */
  8. module.exports = function parseMediaQuery(atRule, result) {
  9. const source = atRule.params;
  10. const mediaQueries = parse(source, {
  11. preserveInvalidMediaQueries: true,
  12. });
  13. mediaQueries.forEach((mediaQuery) => {
  14. if (isMediaQueryInvalid(mediaQuery)) {
  15. result.warn(`Cannot parse media query`, {
  16. node: atRule,
  17. word: source,
  18. stylelintType: 'parseError',
  19. });
  20. }
  21. });
  22. return mediaQueries;
  23. };