+++ /dev/null
-"use strict";
-
-const _ = require("lodash");
-const beforeBlockString = require("../../utils/beforeBlockString");
-const blockString = require("../../utils/blockString");
-const isSingleLineString = require("../../utils/isSingleLineString");
-const report = require("../../utils/report");
-const ruleMessages = require("../../utils/ruleMessages");
-const validateOptions = require("../../utils/validateOptions");
-
-const ruleName = "declaration-block-single-line-max-declarations";
-
-const messages = ruleMessages(ruleName, {
- expected: max =>
- `Expected no more than ${max} ${max === 1 ? "declaration" : "declarations"}`
-});
-
-const rule = function(quantity) {
- return (root, result) => {
- const validOptions = validateOptions(result, ruleName, {
- actual: quantity,
- possible: [_.isNumber]
- });
- if (!validOptions) {
- return;
- }
-
- root.walkRules(rule => {
- if (!isSingleLineString(blockString(rule))) {
- return;
- }
- if (!rule.nodes) {
- return;
- }
-
- const decls = rule.nodes.filter(node => node.type === "decl");
-
- if (decls.length <= quantity) {
- return;
- }
-
- report({
- message: messages.expected(quantity),
- node: rule,
- index: beforeBlockString(rule, { noRawBefore: true }).length,
- result,
- ruleName
- });
- });
- };
-};
-
-rule.ruleName = ruleName;
-rule.messages = messages;
-module.exports = rule;