UNPKG

1.19 kBJavaScriptView Raw
1'use strict';
2
3const mediaQueryListCommaWhitespaceChecker = require('../mediaQueryListCommaWhitespaceChecker');
4const ruleMessages = require('../../utils/ruleMessages');
5const validateOptions = require('../../utils/validateOptions');
6const whitespaceChecker = require('../../utils/whitespaceChecker');
7
8const ruleName = 'media-query-list-comma-newline-before';
9
10const messages = ruleMessages(ruleName, {
11 expectedBefore: () => 'Expected newline before ","',
12 expectedBeforeMultiLine: () => 'Expected newline before "," in a multi-line list',
13 rejectedBeforeMultiLine: () => 'Unexpected whitespace before "," in a multi-line list',
14});
15
16function rule(expectation) {
17 const checker = whitespaceChecker('newline', expectation, messages);
18
19 return (root, result) => {
20 const validOptions = validateOptions(result, ruleName, {
21 actual: expectation,
22 possible: ['always', 'always-multi-line', 'never-multi-line'],
23 });
24
25 if (!validOptions) {
26 return;
27 }
28
29 mediaQueryListCommaWhitespaceChecker({
30 root,
31 result,
32 locationChecker: checker.beforeAllowingIndentation,
33 checkedRuleName: ruleName,
34 });
35 };
36}
37
38rule.ruleName = ruleName;
39rule.messages = messages;
40module.exports = rule;