eslint-plugin-jsdoc 63.0.10 → 63.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/WarnSettings.cjs +1 -8
- package/dist/WarnSettings.cjs.map +1 -1
- package/dist/alignTransform.cjs +6 -10
- package/dist/alignTransform.cjs.map +1 -1
- package/dist/buildForbidRuleDefinition.cjs +3 -10
- package/dist/buildForbidRuleDefinition.cjs.map +1 -1
- package/dist/buildRejectOrPreferRuleDefinition.cjs +7 -14
- package/dist/buildRejectOrPreferRuleDefinition.cjs.map +1 -1
- package/dist/defaultTagOrder.cjs +1 -8
- package/dist/defaultTagOrder.cjs.map +1 -1
- package/dist/exportParser.cjs +6 -14
- package/dist/exportParser.cjs.map +1 -1
- package/dist/generateDocs.cjs +36 -44
- package/dist/generateDocs.cjs.map +1 -1
- package/dist/generateOptions.cjs +15 -18
- package/dist/generateOptions.cjs.map +1 -1
- package/dist/generateRule.cjs +24 -24
- package/dist/generateRule.cjs.map +1 -1
- package/dist/generateRuleTypes.cjs +6 -9
- package/dist/generateRuleTypes.cjs.map +1 -1
- package/dist/getDefaultTagStructureForMode.cjs +1 -8
- package/dist/getDefaultTagStructureForMode.cjs.map +1 -1
- package/dist/getJsdocProcessorPlugin.cjs +20 -28
- package/dist/getJsdocProcessorPlugin.cjs.map +1 -1
- package/dist/index-cjs.cjs +152 -159
- package/dist/index-cjs.cjs.map +1 -1
- package/dist/index-esm.cjs +16 -27
- package/dist/index-esm.cjs.map +1 -1
- package/dist/index.cjs +159 -172
- package/dist/index.cjs.map +1 -1
- package/dist/iterateJsdoc.cjs +22 -32
- package/dist/iterateJsdoc.cjs.map +1 -1
- package/dist/jsdocUtils.cjs +18 -86
- package/dist/jsdocUtils.cjs.map +1 -1
- package/dist/rules/checkAccess.cjs +2 -10
- package/dist/rules/checkAccess.cjs.map +1 -1
- package/dist/rules/checkAlignment.cjs +2 -10
- package/dist/rules/checkAlignment.cjs.map +1 -1
- package/dist/rules/checkExamples.cjs +6 -15
- package/dist/rules/checkExamples.cjs.map +1 -1
- package/dist/rules/checkIndentation.cjs +2 -9
- package/dist/rules/checkIndentation.cjs.map +1 -1
- package/dist/rules/checkLineAlignment.cjs +6 -14
- package/dist/rules/checkLineAlignment.cjs.map +1 -1
- package/dist/rules/checkParamNames.cjs +2 -9
- package/dist/rules/checkParamNames.cjs.map +1 -1
- package/dist/rules/checkPropertyNames.cjs +2 -9
- package/dist/rules/checkPropertyNames.cjs.map +1 -1
- package/dist/rules/checkSyntax.cjs +2 -10
- package/dist/rules/checkSyntax.cjs.map +1 -1
- package/dist/rules/checkTagNames.cjs +4 -11
- package/dist/rules/checkTagNames.cjs.map +1 -1
- package/dist/rules/checkTemplateNames.cjs +12 -21
- package/dist/rules/checkTemplateNames.cjs.map +1 -1
- package/dist/rules/checkTypes.cjs +4 -10
- package/dist/rules/checkTypes.cjs.map +1 -1
- package/dist/rules/checkValues.cjs +9 -17
- package/dist/rules/checkValues.cjs.map +1 -1
- package/dist/rules/convertToJsdocComments.cjs +13 -19
- package/dist/rules/convertToJsdocComments.cjs.map +1 -1
- package/dist/rules/emptyTags.cjs +2 -10
- package/dist/rules/emptyTags.cjs.map +1 -1
- package/dist/rules/escapeInlineTags.cjs +2 -10
- package/dist/rules/escapeInlineTags.cjs.map +1 -1
- package/dist/rules/implementsOnClasses.cjs +2 -10
- package/dist/rules/implementsOnClasses.cjs.map +1 -1
- package/dist/rules/importsAsDependencies.cjs +12 -20
- package/dist/rules/importsAsDependencies.cjs.map +1 -1
- package/dist/rules/informativeDocs.cjs +4 -12
- package/dist/rules/informativeDocs.cjs.map +1 -1
- package/dist/rules/linesBeforeBlock.cjs +2 -9
- package/dist/rules/linesBeforeBlock.cjs.map +1 -1
- package/dist/rules/matchDescription.cjs +2 -9
- package/dist/rules/matchDescription.cjs.map +1 -1
- package/dist/rules/matchName.cjs +2 -10
- package/dist/rules/matchName.cjs.map +1 -1
- package/dist/rules/multilineBlocks.cjs +2 -9
- package/dist/rules/multilineBlocks.cjs.map +1 -1
- package/dist/rules/noBadBlocks.cjs +4 -11
- package/dist/rules/noBadBlocks.cjs.map +1 -1
- package/dist/rules/noBlankBlockDescriptions.cjs +2 -10
- package/dist/rules/noBlankBlockDescriptions.cjs.map +1 -1
- package/dist/rules/noBlankBlocks.cjs +2 -10
- package/dist/rules/noBlankBlocks.cjs.map +1 -1
- package/dist/rules/noDefaults.cjs +2 -10
- package/dist/rules/noDefaults.cjs.map +1 -1
- package/dist/rules/noMissingSyntax.cjs +2 -9
- package/dist/rules/noMissingSyntax.cjs.map +1 -1
- package/dist/rules/noMultiAsterisks.cjs +2 -10
- package/dist/rules/noMultiAsterisks.cjs.map +1 -1
- package/dist/rules/noRestrictedSyntax.cjs +2 -9
- package/dist/rules/noRestrictedSyntax.cjs.map +1 -1
- package/dist/rules/noTypes.cjs +2 -9
- package/dist/rules/noTypes.cjs.map +1 -1
- package/dist/rules/noUndefinedTypes.cjs +13 -21
- package/dist/rules/noUndefinedTypes.cjs.map +1 -1
- package/dist/rules/preferImportTag.cjs +21 -28
- package/dist/rules/preferImportTag.cjs.map +1 -1
- package/dist/rules/requireAsteriskPrefix.cjs +2 -10
- package/dist/rules/requireAsteriskPrefix.cjs.map +1 -1
- package/dist/rules/requireDescription.cjs +2 -9
- package/dist/rules/requireDescription.cjs.map +1 -1
- package/dist/rules/requireDescriptionCompleteSentence.cjs +7 -15
- package/dist/rules/requireDescriptionCompleteSentence.cjs.map +1 -1
- package/dist/rules/requireExample.cjs +2 -10
- package/dist/rules/requireExample.cjs.map +1 -1
- package/dist/rules/requireFileOverview.cjs +2 -10
- package/dist/rules/requireFileOverview.cjs.map +1 -1
- package/dist/rules/requireHyphenBeforeParamDescription.cjs +2 -10
- package/dist/rules/requireHyphenBeforeParamDescription.cjs.map +1 -1
- package/dist/rules/requireJsdoc.cjs +17 -25
- package/dist/rules/requireJsdoc.cjs.map +1 -1
- package/dist/rules/requireParam.cjs +2 -9
- package/dist/rules/requireParam.cjs.map +1 -1
- package/dist/rules/requireParamDescription.cjs +2 -10
- package/dist/rules/requireParamDescription.cjs.map +1 -1
- package/dist/rules/requireParamName.cjs +2 -10
- package/dist/rules/requireParamName.cjs.map +1 -1
- package/dist/rules/requireParamType.cjs +2 -10
- package/dist/rules/requireParamType.cjs.map +1 -1
- package/dist/rules/requireProperty.cjs +2 -10
- package/dist/rules/requireProperty.cjs.map +1 -1
- package/dist/rules/requirePropertyDescription.cjs +2 -10
- package/dist/rules/requirePropertyDescription.cjs.map +1 -1
- package/dist/rules/requirePropertyName.cjs +2 -10
- package/dist/rules/requirePropertyName.cjs.map +1 -1
- package/dist/rules/requirePropertyType.cjs +2 -10
- package/dist/rules/requirePropertyType.cjs.map +1 -1
- package/dist/rules/requireRejects.cjs +2 -9
- package/dist/rules/requireRejects.cjs.map +1 -1
- package/dist/rules/requireReturns.cjs +4 -11
- package/dist/rules/requireReturns.cjs.map +1 -1
- package/dist/rules/requireReturnsCheck.cjs +8 -15
- package/dist/rules/requireReturnsCheck.cjs.map +1 -1
- package/dist/rules/requireReturnsDescription.cjs +2 -10
- package/dist/rules/requireReturnsDescription.cjs.map +1 -1
- package/dist/rules/requireReturnsType.cjs +2 -10
- package/dist/rules/requireReturnsType.cjs.map +1 -1
- package/dist/rules/requireTags.cjs +2 -9
- package/dist/rules/requireTags.cjs.map +1 -1
- package/dist/rules/requireTemplate.cjs +5 -13
- package/dist/rules/requireTemplate.cjs.map +1 -1
- package/dist/rules/requireThrows.cjs +2 -9
- package/dist/rules/requireThrows.cjs.map +1 -1
- package/dist/rules/requireYields.cjs +2 -9
- package/dist/rules/requireYields.cjs.map +1 -1
- package/dist/rules/requireYieldsCheck.cjs +2 -9
- package/dist/rules/requireYieldsCheck.cjs.map +1 -1
- package/dist/rules/sortTags.cjs +4 -12
- package/dist/rules/sortTags.cjs.map +1 -1
- package/dist/rules/tagLines.cjs +2 -9
- package/dist/rules/tagLines.cjs.map +1 -1
- package/dist/rules/textEscaping.cjs +2 -9
- package/dist/rules/textEscaping.cjs.map +1 -1
- package/dist/rules/tsMethodSignatureStyle.cjs +10 -18
- package/dist/rules/tsMethodSignatureStyle.cjs.map +1 -1
- package/dist/rules/tsNoEmptyObjectType.cjs +5 -13
- package/dist/rules/tsNoEmptyObjectType.cjs.map +1 -1
- package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs +8 -16
- package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs.map +1 -1
- package/dist/rules/tsPreferFunctionType.cjs +8 -16
- package/dist/rules/tsPreferFunctionType.cjs.map +1 -1
- package/dist/rules/typeFormatting.cjs +9 -17
- package/dist/rules/typeFormatting.cjs.map +1 -1
- package/dist/rules/validTypes.cjs +10 -18
- package/dist/rules/validTypes.cjs.map +1 -1
- package/dist/tagNames.cjs +4 -9
- package/dist/tagNames.cjs.map +1 -1
- package/dist/utils/hasReturnValue.cjs +1 -8
- package/dist/utils/hasReturnValue.cjs.map +1 -1
- package/package.json +21 -21
- package/src/rules/checkTemplateNames.js +0 -1
- package/src/rules/requireJsdoc.js +0 -1
package/dist/jsdocUtils.cjs
CHANGED
|
@@ -1,29 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.hasParams = exports.hasATag = exports.getTagsByType = exports.getTags = exports.getTagStructureForMode = exports.getTagDescription = exports.getRegexFromString = exports.getPreferredTagNameSimple = exports.getPreferredTagName = exports.getJsdocTagsDeep = exports.getJSDocCommentBlocks = exports.getInlineTags = exports.getIndent = exports.getFunctionParameterNames = exports.getDocumentNamepathDefiningTags = exports.getContextObject = exports.getAllTags = exports.forEachPreferredTag = exports.flattenRoots = exports.filterTags = exports.exemptSpeciaMethods = exports.enforcedContexts = exports.dropPathSegmentQuotes = exports.comparePaths = void 0;
|
|
7
|
-
Object.defineProperty(exports, "hasReturnValue", {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
get: function () {
|
|
10
|
-
return _hasReturnValue.hasReturnValue;
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
exports.hasThrowValue = exports.hasTag = void 0;
|
|
14
|
-
Object.defineProperty(exports, "hasValueOrExecutorHasNonEmptyResolveValue", {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () {
|
|
17
|
-
return _hasReturnValue.hasValueOrExecutorHasNonEmptyResolveValue;
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
exports.tagMustHaveTypePosition = exports.tagMustHaveNamePosition = exports.tagMissingRequiredTypeOrNamepath = exports.tagMightHaveTypePosition = exports.tagMightHaveNamepath = exports.tagMightHaveNamePosition = exports.tagMightHaveNameOrNamepath = exports.tagMightHaveName = exports.tagMightHaveEitherTypeOrNamePosition = exports.strictNativeTypes = exports.setTagStructure = exports.rewireByParsedType = exports.pathDoesNotBeginWith = exports.parseClosureTemplateTag = exports.overrideTagStructure = exports.mayBeUndefinedTypeTag = exports.isValidTag = exports.isSetter = exports.isNamepathReferencingTag = exports.isNamepathOrUrlReferencingTag = exports.isNameOrNamepathDefiningTag = exports.isGetter = exports.isConstructor = exports.hasYieldValue = void 0;
|
|
21
|
-
var _getDefaultTagStructureForMode = _interopRequireDefault(require("./getDefaultTagStructureForMode.cjs"));
|
|
22
|
-
var _tagNames = require("./tagNames.cjs");
|
|
23
|
-
var _WarnSettings = _interopRequireDefault(require("./WarnSettings.cjs"));
|
|
24
|
-
var _jsdoccomment = require("@es-joy/jsdoccomment");
|
|
25
|
-
var _hasReturnValue = require("./utils/hasReturnValue.cjs");
|
|
26
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
1
|
+
import getDefaultTagStructureForMode from './getDefaultTagStructureForMode.js';
|
|
2
|
+
import { closureTags, jsdocTags, typeScriptTags } from './tagNames.js';
|
|
3
|
+
import WarnSettings from './WarnSettings.js';
|
|
4
|
+
import { parseComment, stringify, tryParse } from '@es-joy/jsdoccomment';
|
|
5
|
+
|
|
27
6
|
/**
|
|
28
7
|
* @typedef {number} Integer
|
|
29
8
|
*/
|
|
@@ -45,7 +24,7 @@ let tagStructure;
|
|
|
45
24
|
* @returns {void}
|
|
46
25
|
*/
|
|
47
26
|
const setTagStructure = mode => {
|
|
48
|
-
tagStructure = (
|
|
27
|
+
tagStructure = getDefaultTagStructureForMode(mode);
|
|
49
28
|
};
|
|
50
29
|
|
|
51
30
|
/**
|
|
@@ -96,7 +75,6 @@ const setTagStructure = mode => {
|
|
|
96
75
|
*/
|
|
97
76
|
|
|
98
77
|
/** @type {FlattenRoots} */
|
|
99
|
-
exports.setTagStructure = setTagStructure;
|
|
100
78
|
const flattenRoots = (params, root = '') => {
|
|
101
79
|
let hasRestElement = false;
|
|
102
80
|
let hasPropertyRest = false;
|
|
@@ -168,7 +146,6 @@ const flattenRoots = (params, root = '') => {
|
|
|
168
146
|
* import('@typescript-eslint/types').TSESTree.TSPropertySignature} propSignature
|
|
169
147
|
* @returns {undefined|string|[string, string[]]}
|
|
170
148
|
*/
|
|
171
|
-
exports.flattenRoots = flattenRoots;
|
|
172
149
|
const getPropertiesFromPropertySignature = propSignature => {
|
|
173
150
|
if (propSignature.type === 'TSIndexSignature' || propSignature.type === 'TSConstructSignatureDeclaration' || propSignature.type === 'TSCallSignatureDeclaration') {
|
|
174
151
|
return undefined;
|
|
@@ -358,7 +335,6 @@ const getFunctionParameterNames = (functionNode, checkDefaultObjects, ignoreInte
|
|
|
358
335
|
* @param {ESTreeOrTypeScriptNode} functionNode
|
|
359
336
|
* @returns {Integer}
|
|
360
337
|
*/
|
|
361
|
-
exports.getFunctionParameterNames = getFunctionParameterNames;
|
|
362
338
|
const hasParams = functionNode => {
|
|
363
339
|
// Should also check `functionNode.value.params` if supporting `MethodDefinition`
|
|
364
340
|
return /** @type {import('@typescript-eslint/types').TSESTree.FunctionDeclaration} */functionNode.params.length;
|
|
@@ -375,7 +351,6 @@ const hasParams = functionNode => {
|
|
|
375
351
|
* type: string
|
|
376
352
|
* }[]}
|
|
377
353
|
*/
|
|
378
|
-
exports.hasParams = hasParams;
|
|
379
354
|
const getJsdocTagsDeep = (jsdoc, targetTagName) => {
|
|
380
355
|
const ret = [];
|
|
381
356
|
for (const [idx, {
|
|
@@ -394,8 +369,7 @@ const getJsdocTagsDeep = (jsdoc, targetTagName) => {
|
|
|
394
369
|
}
|
|
395
370
|
return ret;
|
|
396
371
|
};
|
|
397
|
-
|
|
398
|
-
const modeWarnSettings = (0, _WarnSettings.default)();
|
|
372
|
+
const modeWarnSettings = WarnSettings();
|
|
399
373
|
|
|
400
374
|
/**
|
|
401
375
|
* @param {ParserMode|undefined} mode
|
|
@@ -406,11 +380,11 @@ const getTagNamesForMode = (mode, context) => {
|
|
|
406
380
|
switch (mode) {
|
|
407
381
|
case 'closure':
|
|
408
382
|
case 'permissive':
|
|
409
|
-
return
|
|
383
|
+
return closureTags;
|
|
410
384
|
case 'jsdoc':
|
|
411
|
-
return
|
|
385
|
+
return jsdocTags;
|
|
412
386
|
case 'typescript':
|
|
413
|
-
return
|
|
387
|
+
return typeScriptTags;
|
|
414
388
|
default:
|
|
415
389
|
if (!modeWarnSettings.hasBeenWarned(context, 'mode')) {
|
|
416
390
|
context.report({
|
|
@@ -430,7 +404,7 @@ const getTagNamesForMode = (mode, context) => {
|
|
|
430
404
|
}
|
|
431
405
|
|
|
432
406
|
// We'll avoid breaking too many other rules
|
|
433
|
-
return
|
|
407
|
+
return jsdocTags;
|
|
434
408
|
}
|
|
435
409
|
};
|
|
436
410
|
|
|
@@ -488,7 +462,6 @@ const getTagDescription = (tg, returnArray) => {
|
|
|
488
462
|
* replacement?: string|undefined;
|
|
489
463
|
* }}
|
|
490
464
|
*/
|
|
491
|
-
exports.getTagDescription = getTagDescription;
|
|
492
465
|
const getPreferredTagNameSimple = (name, mode, tagPreference = {},
|
|
493
466
|
// @ts-expect-error Just a no-op
|
|
494
467
|
// eslint-disable-next-line unicorn/no-object-as-default-parameter -- Ok
|
|
@@ -532,7 +505,6 @@ context = {
|
|
|
532
505
|
* @param {string[]} definedTags
|
|
533
506
|
* @returns {boolean}
|
|
534
507
|
*/
|
|
535
|
-
exports.getPreferredTagNameSimple = getPreferredTagNameSimple;
|
|
536
508
|
const isValidTag = (context, mode, name, definedTags) => {
|
|
537
509
|
const tagNames = getTagNamesForMode(mode, context);
|
|
538
510
|
const validTagNames = Object.keys(tagNames).concat(Object.values(tagNames).flat());
|
|
@@ -546,7 +518,6 @@ const isValidTag = (context, mode, name, definedTags) => {
|
|
|
546
518
|
* @param {string} targetTagName
|
|
547
519
|
* @returns {boolean}
|
|
548
520
|
*/
|
|
549
|
-
exports.isValidTag = isValidTag;
|
|
550
521
|
const hasTag = (jsdoc, targetTagName) => {
|
|
551
522
|
const targetTagLower = targetTagName.toLowerCase();
|
|
552
523
|
return jsdoc.tags.some(doc => {
|
|
@@ -559,7 +530,6 @@ const hasTag = (jsdoc, targetTagName) => {
|
|
|
559
530
|
* @param {(tag: import('@es-joy/jsdoccomment').JsdocTagWithInline) => boolean} filter
|
|
560
531
|
* @returns {import('@es-joy/jsdoccomment').JsdocTagWithInline[]}
|
|
561
532
|
*/
|
|
562
|
-
exports.hasTag = hasTag;
|
|
563
533
|
const filterTags = (jsdoc, filter) => {
|
|
564
534
|
return jsdoc.tags.filter(tag => {
|
|
565
535
|
return filter(tag);
|
|
@@ -571,7 +541,6 @@ const filterTags = (jsdoc, filter) => {
|
|
|
571
541
|
* @param {string} tagName
|
|
572
542
|
* @returns {import('comment-parser').Spec[]}
|
|
573
543
|
*/
|
|
574
|
-
exports.filterTags = filterTags;
|
|
575
544
|
const getTags = (jsdoc, tagName) => {
|
|
576
545
|
return filterTags(jsdoc, item => {
|
|
577
546
|
return item.tag === tagName;
|
|
@@ -598,7 +567,6 @@ const getTags = (jsdoc, tagName) => {
|
|
|
598
567
|
* tagName: string
|
|
599
568
|
* }}
|
|
600
569
|
*/
|
|
601
|
-
exports.getTags = getTags;
|
|
602
570
|
const getPreferredTagName = (jsdoc, {
|
|
603
571
|
allowObjectReturn = false,
|
|
604
572
|
context,
|
|
@@ -640,7 +608,6 @@ const getPreferredTagName = (jsdoc, {
|
|
|
640
608
|
* @param {boolean} [cfg.skipReportingBlockedTag]
|
|
641
609
|
* @returns {void}
|
|
642
610
|
*/
|
|
643
|
-
exports.getPreferredTagName = getPreferredTagName;
|
|
644
611
|
const forEachPreferredTag = (jsdoc, tagName, arrayHandler, {
|
|
645
612
|
context,
|
|
646
613
|
mode,
|
|
@@ -682,7 +649,6 @@ const forEachPreferredTag = (jsdoc, tagName, arrayHandler, {
|
|
|
682
649
|
* line?: number | undefined; column?: number | undefined;
|
|
683
650
|
* })[]}
|
|
684
651
|
*/
|
|
685
|
-
exports.forEachPreferredTag = forEachPreferredTag;
|
|
686
652
|
const getInlineTags = jsdoc => {
|
|
687
653
|
return [...jsdoc.inlineTags.map(inlineTag => {
|
|
688
654
|
// Tags don't have source or line numbers, so add before returning
|
|
@@ -735,7 +701,6 @@ const getInlineTags = jsdoc => {
|
|
|
735
701
|
* line?: number | undefined; column?: number | undefined;
|
|
736
702
|
* })[]}
|
|
737
703
|
*/
|
|
738
|
-
exports.getInlineTags = getInlineTags;
|
|
739
704
|
const getAllTags = jsdoc => {
|
|
740
705
|
return [...jsdoc.tags, ...getInlineTags(jsdoc)];
|
|
741
706
|
};
|
|
@@ -745,7 +710,6 @@ const getAllTags = jsdoc => {
|
|
|
745
710
|
* @param {string[]} targetTagNames
|
|
746
711
|
* @returns {boolean}
|
|
747
712
|
*/
|
|
748
|
-
exports.getAllTags = getAllTags;
|
|
749
713
|
const hasATag = (jsdoc, targetTagNames) => {
|
|
750
714
|
return targetTagNames.some(targetTagName => {
|
|
751
715
|
return hasTag(jsdoc, targetTagName);
|
|
@@ -760,7 +724,6 @@ const hasATag = (jsdoc, targetTagNames) => {
|
|
|
760
724
|
* @returns {boolean}
|
|
761
725
|
* true in case a defined type is undeclared; otherwise false.
|
|
762
726
|
*/
|
|
763
|
-
exports.hasATag = hasATag;
|
|
764
727
|
const mayBeUndefinedTypeTag = (tag, mode) => {
|
|
765
728
|
// The function should not continue in the event the type is not defined...
|
|
766
729
|
if (typeof tag === 'undefined' || tag === null) {
|
|
@@ -776,7 +739,7 @@ const mayBeUndefinedTypeTag = (tag, mode) => {
|
|
|
776
739
|
}
|
|
777
740
|
let parsedTypes;
|
|
778
741
|
try {
|
|
779
|
-
parsedTypes =
|
|
742
|
+
parsedTypes = tryParse(tagType, mode === 'permissive' ? undefined : [mode]);
|
|
780
743
|
} catch {
|
|
781
744
|
// Ignore
|
|
782
745
|
}
|
|
@@ -797,7 +760,6 @@ const mayBeUndefinedTypeTag = (tag, mode) => {
|
|
|
797
760
|
* @param {string} tag
|
|
798
761
|
* @returns {Map<string, string|string[]|boolean|undefined>}
|
|
799
762
|
*/
|
|
800
|
-
exports.mayBeUndefinedTypeTag = mayBeUndefinedTypeTag;
|
|
801
763
|
const ensureMap = (map, tag) => {
|
|
802
764
|
if (!map.has(tag)) {
|
|
803
765
|
map.set(tag, new Map());
|
|
@@ -845,9 +807,8 @@ const overrideTagStructure = (structuredTags, tagMap = tagStructure) => {
|
|
|
845
807
|
* @param {import('./iterateJsdoc.js').StructuredTags} structuredTags
|
|
846
808
|
* @returns {import('./getDefaultTagStructureForMode.js').TagStructure}
|
|
847
809
|
*/
|
|
848
|
-
exports.overrideTagStructure = overrideTagStructure;
|
|
849
810
|
const getTagStructureForMode = (mode, structuredTags) => {
|
|
850
|
-
const tagStruct = (
|
|
811
|
+
const tagStruct = getDefaultTagStructureForMode(mode);
|
|
851
812
|
try {
|
|
852
813
|
overrideTagStructure(structuredTags, tagStruct);
|
|
853
814
|
/* c8 ignore next 3 */
|
|
@@ -862,7 +823,6 @@ const getTagStructureForMode = (mode, structuredTags) => {
|
|
|
862
823
|
* @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap
|
|
863
824
|
* @returns {boolean}
|
|
864
825
|
*/
|
|
865
|
-
exports.getTagStructureForMode = getTagStructureForMode;
|
|
866
826
|
const isNameOrNamepathDefiningTag = (tag, tagMap = tagStructure) => {
|
|
867
827
|
const tagStruct = ensureMap(tagMap, tag);
|
|
868
828
|
return /** @type {(string|boolean|undefined)[]} */['name-defining', 'namepath-defining'].includes(/** @type {string|boolean|undefined} */
|
|
@@ -873,12 +833,11 @@ const isNameOrNamepathDefiningTag = (tag, tagMap = tagStructure) => {
|
|
|
873
833
|
* @param {import('eslint').SourceCode} sourceCode
|
|
874
834
|
* @returns {import('@es-joy/jsdoccomment').JsdocBlockWithInline[]}
|
|
875
835
|
*/
|
|
876
|
-
exports.isNameOrNamepathDefiningTag = isNameOrNamepathDefiningTag;
|
|
877
836
|
const getJSDocCommentBlocks = sourceCode => {
|
|
878
837
|
return sourceCode.getAllComments().filter(comment => {
|
|
879
838
|
return /^\*(?!\*)/v.test(comment.value);
|
|
880
839
|
}).map(commentNode => {
|
|
881
|
-
return
|
|
840
|
+
return parseComment(commentNode, '');
|
|
882
841
|
});
|
|
883
842
|
};
|
|
884
843
|
|
|
@@ -886,7 +845,6 @@ const getJSDocCommentBlocks = sourceCode => {
|
|
|
886
845
|
* @param {import('eslint').SourceCode} sourceCode
|
|
887
846
|
* @returns {import('comment-parser').Spec[]}
|
|
888
847
|
*/
|
|
889
|
-
exports.getJSDocCommentBlocks = getJSDocCommentBlocks;
|
|
890
848
|
const getDocumentNamepathDefiningTags = sourceCode => {
|
|
891
849
|
return getJSDocCommentBlocks(sourceCode).flatMap(doc => {
|
|
892
850
|
return doc.tags.filter(({
|
|
@@ -902,7 +860,6 @@ const getDocumentNamepathDefiningTags = sourceCode => {
|
|
|
902
860
|
* @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap
|
|
903
861
|
* @returns {boolean}
|
|
904
862
|
*/
|
|
905
|
-
exports.getDocumentNamepathDefiningTags = getDocumentNamepathDefiningTags;
|
|
906
863
|
const isNamepathReferencingTag = (tag, tagMap = tagStructure) => {
|
|
907
864
|
const tagStruct = ensureMap(tagMap, tag);
|
|
908
865
|
return tagStruct.get('namepathRole') === 'namepath-referencing';
|
|
@@ -913,7 +870,6 @@ const isNamepathReferencingTag = (tag, tagMap = tagStructure) => {
|
|
|
913
870
|
* @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap
|
|
914
871
|
* @returns {boolean}
|
|
915
872
|
*/
|
|
916
|
-
exports.isNamepathReferencingTag = isNamepathReferencingTag;
|
|
917
873
|
const isNamepathOrUrlReferencingTag = (tag, tagMap = tagStructure) => {
|
|
918
874
|
const tagStruct = ensureMap(tagMap, tag);
|
|
919
875
|
return tagStruct.get('namepathRole') === 'namepath-or-url-referencing';
|
|
@@ -924,7 +880,6 @@ const isNamepathOrUrlReferencingTag = (tag, tagMap = tagStructure) => {
|
|
|
924
880
|
* @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap
|
|
925
881
|
* @returns {boolean|undefined}
|
|
926
882
|
*/
|
|
927
|
-
exports.isNamepathOrUrlReferencingTag = isNamepathOrUrlReferencingTag;
|
|
928
883
|
const tagMustHaveTypePosition = (tag, tagMap = tagStructure) => {
|
|
929
884
|
const tagStruct = ensureMap(tagMap, tag);
|
|
930
885
|
return /** @type {boolean|undefined} */tagStruct.get('typeRequired');
|
|
@@ -935,7 +890,6 @@ const tagMustHaveTypePosition = (tag, tagMap = tagStructure) => {
|
|
|
935
890
|
* @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap
|
|
936
891
|
* @returns {boolean|string}
|
|
937
892
|
*/
|
|
938
|
-
exports.tagMustHaveTypePosition = tagMustHaveTypePosition;
|
|
939
893
|
const tagMightHaveTypePosition = (tag, tagMap = tagStructure) => {
|
|
940
894
|
if (tagMustHaveTypePosition(tag, tagMap)) {
|
|
941
895
|
return true;
|
|
@@ -944,7 +898,6 @@ const tagMightHaveTypePosition = (tag, tagMap = tagStructure) => {
|
|
|
944
898
|
const ret = /** @type {boolean|undefined} */tagStruct.get('typeAllowed');
|
|
945
899
|
return ret === undefined ? true : ret;
|
|
946
900
|
};
|
|
947
|
-
exports.tagMightHaveTypePosition = tagMightHaveTypePosition;
|
|
948
901
|
const namepathTypes = new Set(['name-defining', 'namepath-defining', 'namepath-referencing']);
|
|
949
902
|
|
|
950
903
|
/**
|
|
@@ -963,7 +916,6 @@ const tagMightHaveNamePosition = (tag, tagMap = tagStructure) => {
|
|
|
963
916
|
* @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap
|
|
964
917
|
* @returns {boolean}
|
|
965
918
|
*/
|
|
966
|
-
exports.tagMightHaveNamePosition = tagMightHaveNamePosition;
|
|
967
919
|
const tagMightHaveNameOrNamepath = (tag, tagMap = tagStructure) => {
|
|
968
920
|
const tagStruct = ensureMap(tagMap, tag);
|
|
969
921
|
const nampathRole = tagStruct.get('namepathRole');
|
|
@@ -975,7 +927,6 @@ const tagMightHaveNameOrNamepath = (tag, tagMap = tagStructure) => {
|
|
|
975
927
|
* @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap
|
|
976
928
|
* @returns {boolean}
|
|
977
929
|
*/
|
|
978
|
-
exports.tagMightHaveNameOrNamepath = tagMightHaveNameOrNamepath;
|
|
979
930
|
const tagMightHaveNamepath = (tag, tagMap = tagStructure) => {
|
|
980
931
|
const tagStruct = ensureMap(tagMap, tag);
|
|
981
932
|
const nampathRole = tagStruct.get('namepathRole');
|
|
@@ -987,7 +938,6 @@ const tagMightHaveNamepath = (tag, tagMap = tagStructure) => {
|
|
|
987
938
|
* @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap
|
|
988
939
|
* @returns {boolean}
|
|
989
940
|
*/
|
|
990
|
-
exports.tagMightHaveNamepath = tagMightHaveNamepath;
|
|
991
941
|
const tagMightHaveName = (tag, tagMap = tagStructure) => {
|
|
992
942
|
const tagStruct = ensureMap(tagMap, tag);
|
|
993
943
|
const nampathRole = tagStruct.get('namepathRole');
|
|
@@ -999,7 +949,6 @@ const tagMightHaveName = (tag, tagMap = tagStructure) => {
|
|
|
999
949
|
* @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap
|
|
1000
950
|
* @returns {boolean|undefined}
|
|
1001
951
|
*/
|
|
1002
|
-
exports.tagMightHaveName = tagMightHaveName;
|
|
1003
952
|
const tagMustHaveNamePosition = (tag, tagMap = tagStructure) => {
|
|
1004
953
|
const tagStruct = ensureMap(tagMap, tag);
|
|
1005
954
|
return /** @type {boolean|undefined} */tagStruct.get('nameRequired');
|
|
@@ -1010,7 +959,6 @@ const tagMustHaveNamePosition = (tag, tagMap = tagStructure) => {
|
|
|
1010
959
|
* @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap
|
|
1011
960
|
* @returns {boolean}
|
|
1012
961
|
*/
|
|
1013
|
-
exports.tagMustHaveNamePosition = tagMustHaveNamePosition;
|
|
1014
962
|
const tagMightHaveEitherTypeOrNamePosition = (tag, tagMap) => {
|
|
1015
963
|
return Boolean(tagMightHaveTypePosition(tag, tagMap)) || tagMightHaveNameOrNamepath(tag, tagMap);
|
|
1016
964
|
};
|
|
@@ -1020,7 +968,6 @@ const tagMightHaveEitherTypeOrNamePosition = (tag, tagMap) => {
|
|
|
1020
968
|
* @param {import('./getDefaultTagStructureForMode.js').TagStructure} tagMap
|
|
1021
969
|
* @returns {boolean|undefined}
|
|
1022
970
|
*/
|
|
1023
|
-
exports.tagMightHaveEitherTypeOrNamePosition = tagMightHaveEitherTypeOrNamePosition;
|
|
1024
971
|
const tagMustHaveEitherTypeOrNamePosition = (tag, tagMap) => {
|
|
1025
972
|
const tagStruct = ensureMap(tagMap, tag);
|
|
1026
973
|
return /** @type {boolean} */tagStruct.get('typeOrNameRequired');
|
|
@@ -1047,7 +994,6 @@ const tagMissingRequiredTypeOrNamepath = (tag, tagMap = tagStructure) => {
|
|
|
1047
994
|
* @param {boolean} [checkYieldReturnValue]
|
|
1048
995
|
* @returns {boolean}
|
|
1049
996
|
*/
|
|
1050
|
-
exports.tagMissingRequiredTypeOrNamepath = tagMissingRequiredTypeOrNamepath;
|
|
1051
997
|
const hasNonFunctionYield = (node, checkYieldReturnValue) => {
|
|
1052
998
|
/* eslint-enable complexity -- Temporary */
|
|
1053
999
|
if (!node) {
|
|
@@ -1222,7 +1168,6 @@ const hasYieldValue = (node, checkYieldReturnValue) => {
|
|
|
1222
1168
|
* @param {boolean} [innerFunction]
|
|
1223
1169
|
* @returns {boolean}
|
|
1224
1170
|
*/
|
|
1225
|
-
exports.hasYieldValue = hasYieldValue;
|
|
1226
1171
|
const hasThrowValue = (node, innerFunction) => {
|
|
1227
1172
|
if (!node) {
|
|
1228
1173
|
return false;
|
|
@@ -1304,7 +1249,6 @@ const isInlineTag = (tag) => {
|
|
|
1304
1249
|
* @param {string} str
|
|
1305
1250
|
* @returns {string[]}
|
|
1306
1251
|
*/
|
|
1307
|
-
exports.hasThrowValue = hasThrowValue;
|
|
1308
1252
|
const splitTopLevelCommas = str => {
|
|
1309
1253
|
const parts = [];
|
|
1310
1254
|
let depth = 0;
|
|
@@ -1354,7 +1298,6 @@ const parseClosureTemplateTag = tag => {
|
|
|
1354
1298
|
* }} settings
|
|
1355
1299
|
* @returns {(string|import('./iterateJsdoc.js').ContextObject)[]}
|
|
1356
1300
|
*/
|
|
1357
|
-
exports.parseClosureTemplateTag = parseClosureTemplateTag;
|
|
1358
1301
|
const enforcedContexts = (context, defaultContexts, settings) => {
|
|
1359
1302
|
const contexts = context.options[0]?.contexts || settings.contexts || (defaultContexts === true ? ['ArrowFunctionExpression', 'FunctionDeclaration', 'FunctionExpression', 'TSDeclareFunction'] : defaultContexts);
|
|
1360
1303
|
return contexts;
|
|
@@ -1366,7 +1309,6 @@ const enforcedContexts = (context, defaultContexts, settings) => {
|
|
|
1366
1309
|
* @param {import('@es-joy/jsdoccomment').CommentHandler} [handler]
|
|
1367
1310
|
* @returns {import('eslint').Rule.RuleListener}
|
|
1368
1311
|
*/
|
|
1369
|
-
exports.enforcedContexts = enforcedContexts;
|
|
1370
1312
|
const getContextObject = (contexts, checkJsdoc, handler) => {
|
|
1371
1313
|
/** @type {import('eslint').Rule.RuleListener} */
|
|
1372
1314
|
const properties = {};
|
|
@@ -1420,7 +1362,6 @@ const getContextObject = (contexts, checkJsdoc, handler) => {
|
|
|
1420
1362
|
}
|
|
1421
1363
|
return properties;
|
|
1422
1364
|
};
|
|
1423
|
-
exports.getContextObject = getContextObject;
|
|
1424
1365
|
const tagsWithNamesAndDescriptions = new Set(['arg', 'argument', 'param', 'prop', 'property', 'return',
|
|
1425
1366
|
// These two are parsed by our custom parser as though having a `name`
|
|
1426
1367
|
'returns', 'template']);
|
|
@@ -1468,7 +1409,6 @@ const getTagsByType = (context, mode, tags) => {
|
|
|
1468
1409
|
* }} sourceCode
|
|
1469
1410
|
* @returns {string}
|
|
1470
1411
|
*/
|
|
1471
|
-
exports.getTagsByType = getTagsByType;
|
|
1472
1412
|
const getIndent = sourceCode => {
|
|
1473
1413
|
return (sourceCode.text.match(/^\n*([ \t]+)/v)?.[1] ?? '') + ' ';
|
|
1474
1414
|
};
|
|
@@ -1477,7 +1417,6 @@ const getIndent = sourceCode => {
|
|
|
1477
1417
|
* @param {import('eslint').Rule.Node|null} node
|
|
1478
1418
|
* @returns {boolean}
|
|
1479
1419
|
*/
|
|
1480
|
-
exports.getIndent = getIndent;
|
|
1481
1420
|
const isConstructor = node => {
|
|
1482
1421
|
return node?.type === 'MethodDefinition' && node.kind === 'constructor' || /** @type {import('@typescript-eslint/types').TSESTree.MethodDefinition} */node?.parent?.kind === 'constructor';
|
|
1483
1422
|
};
|
|
@@ -1486,7 +1425,6 @@ const isConstructor = node => {
|
|
|
1486
1425
|
* @param {import('eslint').Rule.Node|null} node
|
|
1487
1426
|
* @returns {boolean}
|
|
1488
1427
|
*/
|
|
1489
|
-
exports.isConstructor = isConstructor;
|
|
1490
1428
|
const isGetter = node => {
|
|
1491
1429
|
return node !== null &&
|
|
1492
1430
|
/**
|
|
@@ -1500,7 +1438,6 @@ const isGetter = node => {
|
|
|
1500
1438
|
* @param {import('eslint').Rule.Node|null} node
|
|
1501
1439
|
* @returns {boolean}
|
|
1502
1440
|
*/
|
|
1503
|
-
exports.isGetter = isGetter;
|
|
1504
1441
|
const isSetter = node => {
|
|
1505
1442
|
return node !== null &&
|
|
1506
1443
|
/**
|
|
@@ -1514,7 +1451,6 @@ const isSetter = node => {
|
|
|
1514
1451
|
* @param {import('eslint').Rule.Node} node
|
|
1515
1452
|
* @returns {boolean}
|
|
1516
1453
|
*/
|
|
1517
|
-
exports.isSetter = isSetter;
|
|
1518
1454
|
const hasAccessorPair = node => {
|
|
1519
1455
|
const {
|
|
1520
1456
|
key,
|
|
@@ -1575,7 +1511,6 @@ const exemptSpeciaMethods = (jsdoc, node, context, schema) => {
|
|
|
1575
1511
|
* @param {string} str
|
|
1576
1512
|
* @returns {string}
|
|
1577
1513
|
*/
|
|
1578
|
-
exports.exemptSpeciaMethods = exemptSpeciaMethods;
|
|
1579
1514
|
const dropPathSegmentQuotes = str => {
|
|
1580
1515
|
return str.replaceAll(/\.(['"])(.*)\1/gv, '.$2');
|
|
1581
1516
|
};
|
|
@@ -1584,7 +1519,6 @@ const dropPathSegmentQuotes = str => {
|
|
|
1584
1519
|
* @param {string} name
|
|
1585
1520
|
* @returns {(otherPathName: string) => boolean}
|
|
1586
1521
|
*/
|
|
1587
|
-
exports.dropPathSegmentQuotes = dropPathSegmentQuotes;
|
|
1588
1522
|
const comparePaths = name => {
|
|
1589
1523
|
return otherPathName => {
|
|
1590
1524
|
return otherPathName === name || dropPathSegmentQuotes(otherPathName) === dropPathSegmentQuotes(name);
|
|
@@ -1599,7 +1533,6 @@ const comparePaths = name => {
|
|
|
1599
1533
|
*/
|
|
1600
1534
|
|
|
1601
1535
|
/** @type {PathDoesNotBeginWith} */
|
|
1602
|
-
exports.comparePaths = comparePaths;
|
|
1603
1536
|
const pathDoesNotBeginWith = (name, otherPathName) => {
|
|
1604
1537
|
return !name.startsWith(otherPathName) && !dropPathSegmentQuotes(name).startsWith(dropPathSegmentQuotes(otherPathName));
|
|
1605
1538
|
};
|
|
@@ -1609,7 +1542,6 @@ const pathDoesNotBeginWith = (name, otherPathName) => {
|
|
|
1609
1542
|
* @param {string} [requiredFlags]
|
|
1610
1543
|
* @returns {RegExp}
|
|
1611
1544
|
*/
|
|
1612
|
-
exports.pathDoesNotBeginWith = pathDoesNotBeginWith;
|
|
1613
1545
|
const getRegexFromString = (regexString, requiredFlags) => {
|
|
1614
1546
|
const match = regexString.match(/^\/(.*)\/([gimyvus]*)$/vs);
|
|
1615
1547
|
let flags = 'v';
|
|
@@ -1624,8 +1556,7 @@ const getRegexFromString = (regexString, requiredFlags) => {
|
|
|
1624
1556
|
flags = uniqueFlags.join('');
|
|
1625
1557
|
return new RegExp(regex, flags);
|
|
1626
1558
|
};
|
|
1627
|
-
|
|
1628
|
-
const strictNativeTypes = exports.strictNativeTypes = ['undefined', 'null', 'boolean', 'number', 'bigint', 'string', 'symbol', 'object', 'Array', 'Function', 'Date', 'RegExp'];
|
|
1559
|
+
const strictNativeTypes = ['undefined', 'null', 'boolean', 'number', 'bigint', 'string', 'symbol', 'object', 'Array', 'Function', 'Date', 'RegExp'];
|
|
1629
1560
|
|
|
1630
1561
|
/**
|
|
1631
1562
|
* @param {import('@es-joy/jsdoccomment').JsdocBlockWithInline} jsdoc
|
|
@@ -1635,7 +1566,7 @@ const strictNativeTypes = exports.strictNativeTypes = ['undefined', 'null', 'boo
|
|
|
1635
1566
|
* @param {string} typeBracketSpacing
|
|
1636
1567
|
*/
|
|
1637
1568
|
const rewireByParsedType = (jsdoc, tag, parsedType, indent, typeBracketSpacing = '') => {
|
|
1638
|
-
const typeLines =
|
|
1569
|
+
const typeLines = stringify(parsedType).split('\n');
|
|
1639
1570
|
const firstTypeLine = typeLines.shift();
|
|
1640
1571
|
const lastTypeLine = typeLines.pop();
|
|
1641
1572
|
const beginNameOrDescIdx = tag.source.findIndex(({
|
|
@@ -1782,5 +1713,6 @@ const rewireByParsedType = (jsdoc, tag, parsedType, indent, typeBracketSpacing =
|
|
|
1782
1713
|
jsdoc.source.push(initialEndSource);
|
|
1783
1714
|
}
|
|
1784
1715
|
};
|
|
1785
|
-
|
|
1716
|
+
export { comparePaths, dropPathSegmentQuotes, enforcedContexts, exemptSpeciaMethods, filterTags, flattenRoots, forEachPreferredTag, getAllTags, getContextObject, getDocumentNamepathDefiningTags, getFunctionParameterNames, getIndent, getInlineTags, getJSDocCommentBlocks, getJsdocTagsDeep, getPreferredTagName, getPreferredTagNameSimple, getRegexFromString, getTagDescription, getTags, getTagsByType, getTagStructureForMode, hasATag, hasParams, hasTag, hasThrowValue, hasYieldValue, isConstructor, isGetter, isNameOrNamepathDefiningTag, isNamepathOrUrlReferencingTag, isNamepathReferencingTag, isSetter, isValidTag, mayBeUndefinedTypeTag, overrideTagStructure, parseClosureTemplateTag, pathDoesNotBeginWith, rewireByParsedType, setTagStructure, strictNativeTypes, tagMightHaveEitherTypeOrNamePosition, tagMightHaveName, tagMightHaveNameOrNamepath, tagMightHaveNamepath, tagMightHaveNamePosition, tagMightHaveTypePosition, tagMissingRequiredTypeOrNamepath, tagMustHaveNamePosition, tagMustHaveTypePosition };
|
|
1717
|
+
export { hasReturnValue, hasValueOrExecutorHasNonEmptyResolveValue } from './utils/hasReturnValue.js';
|
|
1786
1718
|
//# sourceMappingURL=jsdocUtils.cjs.map
|