validators.js
1.87 KB
1
2
3
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
"use strict";
// These validator functions answer the question “Is the config valid?” – return
// `false` if the options DO conflict with Prettier, and `true` if they don’t.
module.exports = {
"arrow-body-style": checkEslintPluginPrettier,
curly({ options }) {
if (options.length === 0) {
return true;
}
const firstOption = options[0];
return firstOption !== "multi-line" && firstOption !== "multi-or-nest";
},
"lines-around-comment"({ options }) {
if (options.length === 0) {
return false;
}
const firstOption = options[0];
return Boolean(
firstOption &&
firstOption.allowBlockStart &&
firstOption.allowBlockEnd &&
firstOption.allowObjectStart &&
firstOption.allowObjectEnd &&
firstOption.allowArrayStart &&
firstOption.allowArrayEnd
);
},
"no-confusing-arrow"({ options }) {
if (options.length === 0) {
return false;
}
const firstOption = options[0];
return firstOption ? firstOption.allowParens === false : false;
},
"no-tabs"({ options }) {
if (options.length === 0) {
return false;
}
const firstOption = options[0];
return Boolean(firstOption && firstOption.allowIndentationTabs);
},
"prefer-arrow-callback": checkEslintPluginPrettier,
"vue/html-self-closing"({ options }) {
if (options.length === 0) {
return false;
}
const firstOption = options[0];
return Boolean(
firstOption && firstOption.html && firstOption.html.void === "any"
// Enable when Prettier supports SVG: https://github.com/prettier/prettier/issues/5322
// && firstOption.svg === "any"
);
},
};
function checkEslintPluginPrettier({ source: currentSource }, enabledRules) {
return !enabledRules.some(
({ ruleName, source }) =>
ruleName === "prettier/prettier" && currentSource === source
);
}