index.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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)("dollar-variable-default");
  10. exports.ruleName = ruleName;
  11. var messages = _stylelint.utils.ruleMessages(ruleName, {
  12. expected: function expected(variable) {
  13. return "Expected !default flag for \"".concat(variable, "\"");
  14. }
  15. });
  16. exports.messages = messages;
  17. var meta = {
  18. url: (0, _utils.ruleUrl)(ruleName)
  19. };
  20. exports.meta = meta;
  21. function rule(primaryOption, secondaryOptions) {
  22. return function (root, result) {
  23. var validOptions = _stylelint.utils.validateOptions(result, ruleName, {
  24. actual: primaryOption
  25. }, {
  26. actual: secondaryOptions,
  27. possible: {
  28. ignore: ["local"]
  29. },
  30. optional: true
  31. });
  32. if (!validOptions) {
  33. return;
  34. }
  35. root.walkDecls(function (decl) {
  36. // not variable
  37. if (decl.prop[0] !== "$") {
  38. return;
  39. }
  40. // "ignore" options
  41. if ((0, _utils.optionsHaveIgnored)(secondaryOptions, "local") && decl.parent.type !== "root") {
  42. return;
  43. }
  44. if (decl.value.toLowerCase().includes("!default")) {
  45. return;
  46. }
  47. _stylelint.utils.report({
  48. message: messages.expected(decl.prop),
  49. node: decl,
  50. result: result,
  51. ruleName: ruleName
  52. });
  53. });
  54. };
  55. }
  56. rule.ruleName = ruleName;
  57. rule.messages = messages;
  58. rule.meta = meta;