1 |
|
2 |
|
3 |
|
4 | 'use strict'
|
5 |
|
6 | module.exports = {
|
7 | preprocess (code) {
|
8 | return [code]
|
9 | },
|
10 |
|
11 | postprocess (messages) {
|
12 | const state = {
|
13 | block: {
|
14 | disableAll: false,
|
15 | disableRules: new Set()
|
16 | },
|
17 | line: {
|
18 | disableAll: false,
|
19 | disableRules: new Set()
|
20 | }
|
21 | }
|
22 |
|
23 |
|
24 | return messages[0].filter(message => {
|
25 | if (message.ruleId === 'vue/comment-directive') {
|
26 | const rules = message.message.split(' ')
|
27 | const type = rules.shift()
|
28 | const group = rules.shift()
|
29 | switch (type) {
|
30 | case '--':
|
31 | state[group].disableAll = true
|
32 | break
|
33 | case '++':
|
34 | state[group].disableAll = false
|
35 | break
|
36 | case '-':
|
37 | for (const rule of rules) {
|
38 | state[group].disableRules.add(rule)
|
39 | }
|
40 | break
|
41 | case '+':
|
42 | for (const rule of rules) {
|
43 | state[group].disableRules.delete(rule)
|
44 | }
|
45 | break
|
46 | case 'clear':
|
47 | state.block.disableAll = false
|
48 | state.block.disableRules.clear()
|
49 | state.line.disableAll = false
|
50 | state.line.disableRules.clear()
|
51 | break
|
52 | }
|
53 | return false
|
54 | } else {
|
55 | return !(
|
56 | state.block.disableAll ||
|
57 | state.line.disableAll ||
|
58 | state.block.disableRules.has(message.ruleId) ||
|
59 | state.line.disableRules.has(message.ruleId)
|
60 | )
|
61 | }
|
62 | })
|
63 | },
|
64 |
|
65 | supportsAutofix: true
|
66 | }
|