index.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports["default"] = rule;
  6. exports.ruleName = exports.meta = exports.messages = void 0;
  7. var _stylelint = require("stylelint");
  8. var _utils = require("../../utils");
  9. var ruleName = (0, _utils.namespace)("at-extend-no-missing-placeholder");
  10. exports.ruleName = ruleName;
  11. var messages = _stylelint.utils.ruleMessages(ruleName, {
  12. rejected: "Expected a placeholder selector (e.g. %placeholder) to be used in @extend"
  13. });
  14. exports.messages = messages;
  15. var meta = {
  16. url: (0, _utils.ruleUrl)(ruleName)
  17. };
  18. exports.meta = meta;
  19. function rule(actual) {
  20. return function (root, result) {
  21. var validOptions = _stylelint.utils.validateOptions(result, ruleName, {
  22. actual: actual
  23. });
  24. if (!validOptions) {
  25. return;
  26. }
  27. root.walkAtRules("extend", function (atrule) {
  28. var isPlaceholder = atrule.params.trim()[0] === "%";
  29. var isInterpolation = /^#{.+}/.test(atrule.params.trim());
  30. if (!isPlaceholder && !isInterpolation) {
  31. _stylelint.utils.report({
  32. ruleName: ruleName,
  33. result: result,
  34. node: atrule,
  35. message: messages.rejected
  36. });
  37. }
  38. });
  39. };
  40. }
  41. rule.ruleName = ruleName;
  42. rule.messages = messages;
  43. rule.meta = meta;