1 | 'use strict';
|
2 |
|
3 | const _ = require('lodash');
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 | module.exports = function (violation) {
|
31 | const ruleName = violation.ruleName;
|
32 | const result = violation.result;
|
33 | const message = violation.message;
|
34 | const line = violation.line;
|
35 | const node = violation.node;
|
36 | const index = violation.index;
|
37 | const word = violation.word;
|
38 |
|
39 | result.stylelint = result.stylelint || {
|
40 | ruleSeverities: {},
|
41 | customMessages: {},
|
42 | };
|
43 |
|
44 |
|
45 | if (result.stylelint.quiet && result.stylelint.ruleSeverities[ruleName] !== 'error') {
|
46 | return;
|
47 | }
|
48 |
|
49 |
|
50 |
|
51 | const startLine = line || node.positionBy({ index }).line;
|
52 |
|
53 | if (result.stylelint.disabledRanges && !result.stylelint.ignoreDisables) {
|
54 | const ranges = result.stylelint.disabledRanges[ruleName] || result.stylelint.disabledRanges.all;
|
55 |
|
56 | for (const range of ranges) {
|
57 | if (
|
58 |
|
59 |
|
60 |
|
61 | range.start <= startLine &&
|
62 | (range.end === undefined || range.end >= startLine) &&
|
63 | (!range.rules || range.rules.includes(ruleName))
|
64 | ) {
|
65 | return;
|
66 | }
|
67 | }
|
68 | }
|
69 |
|
70 |
|
71 | const severity = _.get(result.stylelint, ['ruleSeverities', ruleName], 'ignore');
|
72 |
|
73 | if (!result.stylelint.stylelintError && severity === 'error') {
|
74 | result.stylelint.stylelintError = true;
|
75 | }
|
76 |
|
77 |
|
78 | const warningProperties = {
|
79 | severity,
|
80 | rule: ruleName,
|
81 | };
|
82 |
|
83 | if (node) {
|
84 | warningProperties.node = node;
|
85 | }
|
86 |
|
87 | if (index) {
|
88 | warningProperties.index = index;
|
89 | }
|
90 |
|
91 | if (word) {
|
92 | warningProperties.word = word;
|
93 | }
|
94 |
|
95 | const warningMessage = _.get(result.stylelint, ['customMessages', ruleName], message);
|
96 |
|
97 | result.warn(warningMessage, warningProperties);
|
98 | };
|