Skip to content

Commit a7381c0

Browse files
committed
feat: add config to report recommended rules as errors; fixes #956
1 parent ca5fc32 commit a7381c0

File tree

1 file changed

+77
-60
lines changed

1 file changed

+77
-60
lines changed

src/index.js

+77-60
Original file line numberDiff line numberDiff line change
@@ -49,66 +49,8 @@ import tagLines from './rules/tagLines';
4949
import textEscaping from './rules/textEscaping';
5050
import validTypes from './rules/validTypes';
5151

52-
export default {
53-
configs: {
54-
recommended: {
55-
plugins: [
56-
'jsdoc',
57-
],
58-
rules: {
59-
'jsdoc/check-access': 'warn',
60-
'jsdoc/check-alignment': 'warn',
61-
'jsdoc/check-examples': 'off',
62-
'jsdoc/check-indentation': 'off',
63-
'jsdoc/check-line-alignment': 'off',
64-
'jsdoc/check-param-names': 'warn',
65-
'jsdoc/check-property-names': 'warn',
66-
'jsdoc/check-syntax': 'off',
67-
'jsdoc/check-tag-names': 'warn',
68-
'jsdoc/check-types': 'warn',
69-
'jsdoc/check-values': 'warn',
70-
'jsdoc/empty-tags': 'warn',
71-
'jsdoc/implements-on-classes': 'warn',
72-
'jsdoc/match-description': 'off',
73-
'jsdoc/match-name': 'off',
74-
'jsdoc/multiline-blocks': 'warn',
75-
'jsdoc/newline-after-description': 'warn',
76-
'jsdoc/no-bad-blocks': 'off',
77-
'jsdoc/no-defaults': 'off',
78-
'jsdoc/no-missing-syntax': 'off',
79-
'jsdoc/no-multi-asterisks': 'warn',
80-
'jsdoc/no-restricted-syntax': 'off',
81-
'jsdoc/no-types': 'off',
82-
'jsdoc/no-undefined-types': 'warn',
83-
'jsdoc/require-asterisk-prefix': 'off',
84-
'jsdoc/require-description': 'off',
85-
'jsdoc/require-description-complete-sentence': 'off',
86-
'jsdoc/require-example': 'off',
87-
'jsdoc/require-file-overview': 'off',
88-
'jsdoc/require-hyphen-before-param-description': 'off',
89-
'jsdoc/require-jsdoc': 'warn',
90-
'jsdoc/require-param': 'warn',
91-
'jsdoc/require-param-description': 'warn',
92-
'jsdoc/require-param-name': 'warn',
93-
'jsdoc/require-param-type': 'warn',
94-
'jsdoc/require-property': 'warn',
95-
'jsdoc/require-property-description': 'warn',
96-
'jsdoc/require-property-name': 'warn',
97-
'jsdoc/require-property-type': 'warn',
98-
'jsdoc/require-returns': 'warn',
99-
'jsdoc/require-returns-check': 'warn',
100-
'jsdoc/require-returns-description': 'warn',
101-
'jsdoc/require-returns-type': 'warn',
102-
'jsdoc/require-throws': 'off',
103-
'jsdoc/require-yields': 'warn',
104-
'jsdoc/require-yields-check': 'warn',
105-
'jsdoc/sort-tags': 'off',
106-
'jsdoc/tag-lines': 'warn',
107-
'jsdoc/text-escaping': 'off',
108-
'jsdoc/valid-types': 'warn',
109-
},
110-
},
111-
},
52+
const index = {
53+
configs: {},
11254
rules: {
11355
'check-access': checkAccess,
11456
'check-alignment': checkAlignment,
@@ -162,3 +104,78 @@ export default {
162104
'valid-types': validTypes,
163105
},
164106
};
107+
108+
for (const [
109+
config,
110+
warnOrError,
111+
] of [
112+
[
113+
'recommended',
114+
'warn',
115+
],
116+
[
117+
'recommended-error',
118+
'error',
119+
],
120+
]
121+
) {
122+
index.configs[config] = {
123+
plugins: [
124+
'jsdoc',
125+
],
126+
rules: {
127+
'jsdoc/check-access': warnOrError,
128+
'jsdoc/check-alignment': warnOrError,
129+
'jsdoc/check-examples': 'off',
130+
'jsdoc/check-indentation': 'off',
131+
'jsdoc/check-line-alignment': 'off',
132+
'jsdoc/check-param-names': warnOrError,
133+
'jsdoc/check-property-names': warnOrError,
134+
'jsdoc/check-syntax': 'off',
135+
'jsdoc/check-tag-names': warnOrError,
136+
'jsdoc/check-types': warnOrError,
137+
'jsdoc/check-values': warnOrError,
138+
'jsdoc/empty-tags': warnOrError,
139+
'jsdoc/implements-on-classes': warnOrError,
140+
'jsdoc/match-description': 'off',
141+
'jsdoc/match-name': 'off',
142+
'jsdoc/multiline-blocks': warnOrError,
143+
'jsdoc/newline-after-description': warnOrError,
144+
'jsdoc/no-bad-blocks': 'off',
145+
'jsdoc/no-defaults': 'off',
146+
'jsdoc/no-missing-syntax': 'off',
147+
'jsdoc/no-multi-asterisks': warnOrError,
148+
'jsdoc/no-restricted-syntax': 'off',
149+
'jsdoc/no-types': 'off',
150+
'jsdoc/no-undefined-types': warnOrError,
151+
'jsdoc/require-asterisk-prefix': 'off',
152+
'jsdoc/require-description': 'off',
153+
'jsdoc/require-description-complete-sentence': 'off',
154+
'jsdoc/require-example': 'off',
155+
'jsdoc/require-file-overview': 'off',
156+
'jsdoc/require-hyphen-before-param-description': 'off',
157+
'jsdoc/require-jsdoc': warnOrError,
158+
'jsdoc/require-param': warnOrError,
159+
'jsdoc/require-param-description': warnOrError,
160+
'jsdoc/require-param-name': warnOrError,
161+
'jsdoc/require-param-type': warnOrError,
162+
'jsdoc/require-property': warnOrError,
163+
'jsdoc/require-property-description': warnOrError,
164+
'jsdoc/require-property-name': warnOrError,
165+
'jsdoc/require-property-type': warnOrError,
166+
'jsdoc/require-returns': warnOrError,
167+
'jsdoc/require-returns-check': warnOrError,
168+
'jsdoc/require-returns-description': warnOrError,
169+
'jsdoc/require-returns-type': warnOrError,
170+
'jsdoc/require-throws': 'off',
171+
'jsdoc/require-yields': warnOrError,
172+
'jsdoc/require-yields-check': warnOrError,
173+
'jsdoc/sort-tags': 'off',
174+
'jsdoc/tag-lines': warnOrError,
175+
'jsdoc/text-escaping': 'off',
176+
'jsdoc/valid-types': warnOrError,
177+
},
178+
};
179+
}
180+
181+
export default index;

0 commit comments

Comments
 (0)