index.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 _utils = require("../../utils");
  8. var _stylelint = require("stylelint");
  9. var ruleName = (0, _utils.namespace)("at-else-empty-line-before");
  10. exports.ruleName = ruleName;
  11. var messages = _stylelint.utils.ruleMessages(ruleName, {
  12. rejected: "Unexpected empty line before @else"
  13. });
  14. exports.messages = messages;
  15. var meta = {
  16. url: (0, _utils.ruleUrl)(ruleName)
  17. };
  18. exports.meta = meta;
  19. function rule(expectation, _, context) {
  20. return function (root, result) {
  21. var validOptions = _stylelint.utils.validateOptions(result, ruleName, {
  22. actual: expectation,
  23. possible: ["never"]
  24. });
  25. if (!validOptions) {
  26. return;
  27. }
  28. root.walkAtRules(function (atrule) {
  29. if (atrule.name !== "else") {
  30. return;
  31. }
  32. // Don't need to ignore "the first rule in a stylesheet", etc, cases
  33. // because @else should always go after @if
  34. if (!(0, _utils.hasEmptyLine)(atrule.raws.before)) {
  35. return;
  36. }
  37. if (context.fix) {
  38. atrule.raws.before = " ";
  39. return;
  40. }
  41. _stylelint.utils.report({
  42. message: messages.rejected,
  43. node: atrule,
  44. result: result,
  45. ruleName: ruleName
  46. });
  47. });
  48. };
  49. }
  50. rule.ruleName = ruleName;
  51. rule.messages = messages;
  52. rule.meta = meta;