Skip to content

Commit 482d0a5

Browse files
committed
chore: move utils.<someSetting> to settings.<someSetting>
1 parent ac7212f commit 482d0a5

File tree

4 files changed

+30
-78
lines changed

4 files changed

+30
-78
lines changed

src/iterateJsdoc.js

Lines changed: 11 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -27,27 +27,15 @@ const curryUtils = (
2727
jsdoc,
2828
{
2929
tagNamePreference,
30-
exampleCodeRegex,
31-
rejectExampleCodeRegex,
3230
additionalTagNames,
33-
baseConfig,
34-
configFile,
35-
captionRequired,
36-
matchingFileName,
37-
eslintrcForExamples,
38-
allowInlineConfig,
3931
allowEmptyNamepaths,
40-
reportUnusedDisableDirectives,
41-
noDefaultExampleRules,
4232
overrideReplacesDocs,
4333
implementsReplacesDocs,
4434
augmentsExtendsReplacesDocs,
4535
allowOverrideWithoutParam,
4636
allowImplementsWithoutParam,
4737
allowAugmentsExtendsWithoutParam,
48-
checkSeesForNamepaths,
49-
forceRequireReturn,
50-
avoidExampleOnConstructors
38+
checkSeesForNamepaths
5139
},
5240
ancestors,
5341
sourceCode,
@@ -83,18 +71,6 @@ const curryUtils = (
8371
return jsdocUtils.getPreferredTagName(name, tagNamePreference);
8472
};
8573

86-
utils.getExampleCodeRegex = () => {
87-
return exampleCodeRegex;
88-
};
89-
90-
utils.getRejectExampleCodeRegex = () => {
91-
return rejectExampleCodeRegex;
92-
};
93-
94-
utils.getMatchingFileName = () => {
95-
return matchingFileName;
96-
};
97-
9874
utils.isValidTag = (name) => {
9975
return jsdocUtils.isValidTag(name, additionalTagNames);
10076
};
@@ -107,34 +83,6 @@ const curryUtils = (
10783
return jsdocUtils.hasTag(jsdoc, name);
10884
};
10985

110-
utils.useEslintrcForExamples = () => {
111-
return eslintrcForExamples;
112-
};
113-
114-
utils.allowInlineConfig = () => {
115-
return allowInlineConfig;
116-
};
117-
118-
utils.reportUnusedDisableDirectives = () => {
119-
return reportUnusedDisableDirectives;
120-
};
121-
122-
utils.hasNoDefaultExampleRules = () => {
123-
return noDefaultExampleRules;
124-
};
125-
126-
utils.getBaseConfig = () => {
127-
return baseConfig;
128-
};
129-
130-
utils.getConfigFile = () => {
131-
return configFile;
132-
};
133-
134-
utils.isCaptionRequired = () => {
135-
return captionRequired;
136-
};
137-
13886
// These settings are deprecated and may be removed in the future along with this method.
13987
utils.avoidDocsParamOnly = () => {
14088
// These three checks are all for deprecated settings and may be removed in the future
@@ -188,10 +136,6 @@ const curryUtils = (
188136
return jsdocUtils.isTagWithType(tagName);
189137
};
190138

191-
utils.avoidExampleOnConstructors = () => {
192-
return avoidExampleOnConstructors;
193-
};
194-
195139
utils.passesEmptyNamepathCheck = (tag) => {
196140
return !tag.name && allowEmptyNamepaths &&
197141
jsdocUtils.isPotentiallyEmptyNamepathTag(tag.tag);
@@ -211,10 +155,6 @@ const curryUtils = (
211155
});
212156
};
213157

214-
utils.isForceRequireReturn = () => {
215-
return forceRequireReturn;
216-
};
217-
218158
utils.filterTags = (filter) => {
219159
return (jsdoc.tags || []).filter(filter);
220160
};
@@ -310,7 +250,14 @@ export {
310250
parseComment
311251
};
312252

313-
export default (iterator, opts = {}) => {
253+
/**
254+
* @typedef {ReturnType<typeof curryUtils>} Utils
255+
* @typedef {ReturnType<typeof getSettings>} Settings
256+
*
257+
* @param {(arg: {utils: Utils, settings: Settings}) => any} iterator
258+
* @param {{returns?: any}} opts
259+
*/
260+
export default function iterateJsdoc (iterator, opts = {}) {
314261
return {
315262
/**
316263
* The entrypoint for the JSDoc rule.
@@ -396,6 +343,7 @@ export default (iterator, opts = {}) => {
396343
jsdocNode,
397344
node,
398345
report,
346+
settings,
399347
sourceCode,
400348
utils
401349
});
@@ -424,4 +372,4 @@ export default (iterator, opts = {}) => {
424372
},
425373
meta: opts.meta
426374
};
427-
};
375+
}

src/rules/checkExamples.js

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,19 @@ const countChars = (str, ch) => {
1515

1616
export default iterateJsdoc(({
1717
report,
18-
utils
18+
utils,
19+
settings
1920
}) => {
20-
let exampleCodeRegex = utils.getExampleCodeRegex();
21-
let rejectExampleCodeRegex = utils.getRejectExampleCodeRegex();
22-
const noDefaultExampleRules = utils.hasNoDefaultExampleRules();
23-
const eslintrcForExamples = utils.useEslintrcForExamples();
24-
const filename = utils.getMatchingFileName();
25-
const baseConfig = utils.getBaseConfig();
26-
const configFile = utils.getConfigFile();
27-
const allowInlineConfig = utils.allowInlineConfig();
28-
const reportUnusedDisableDirectives = utils.reportUnusedDisableDirectives();
21+
let {exampleCodeRegex, rejectExampleCodeRegex} = settings;
22+
const {
23+
noDefaultExampleRules,
24+
eslintrcForExamples,
25+
matchingFileName: filename,
26+
baseConfig,
27+
configFile,
28+
allowInlineConfig,
29+
reportUnusedDisableDirectives
30+
} = settings;
2931

3032
// Make this configurable?
3133
const rulePaths = [];
@@ -69,7 +71,7 @@ export default iterateJsdoc(({
6971
let source = tag.source.slice(initialTagLength);
7072
const match = source.match(hasCaptionRegex);
7173

72-
if (utils.isCaptionRequired() && !match) {
74+
if (settings.captionRequired && !match) {
7375
report('Caption is expected for examples.', null, tag);
7476
}
7577

src/rules/requireExample.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import iterateJsdoc from '../iterateJsdoc';
44
export default iterateJsdoc(({
55
jsdoc,
66
report,
7-
utils
7+
utils,
8+
settings
89
}) => {
910
if (utils.avoidDocs()) {
1011
return;
@@ -16,7 +17,7 @@ export default iterateJsdoc(({
1617
tag: targetTagName
1718
});
1819

19-
if (utils.avoidExampleOnConstructors() && (
20+
if (settings.avoidExampleOnConstructors && (
2021
utils.hasATag([
2122
'class',
2223
'constructor'

src/rules/requireReturns.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ const canSkip = (utils) => {
3939

4040
export default iterateJsdoc(({
4141
report,
42-
utils
42+
utils,
43+
settings
4344
}) => {
4445
// A preflight check. We do not need to run a deep check
4546
// in case the @returns comment is optional or undefined.
@@ -58,7 +59,7 @@ export default iterateJsdoc(({
5859
const [tag] = tags;
5960
const missingReturnTag = typeof tag === 'undefined' || tag === null;
6061
if (missingReturnTag &&
61-
(utils.hasReturnValue() || utils.isForceRequireReturn())
62+
(utils.hasReturnValue() || settings.forceRequireReturn)
6263
) {
6364
report('Missing JSDoc @' + tagName + ' declaration.');
6465
}

0 commit comments

Comments
 (0)