UNPKG

1.63 kBJavaScriptView Raw
1/**
2 * @author Toru Nagashima <https://github.com/mysticatea>
3 */
4'use strict'
5
6module.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 // Filter messages which are in disabled area.
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}