blob: bf4c8ee6cc74de2c3ce128736e4d15a1e29fc795 [file] [log] [blame]
{"version":3,"sources":["../../src/rules/checkTypes.js"],"names":["strictNativeTypes","adjustNames","type","preferred","isGenericMatch","nodeName","node","parentNode","ret","meta","syntax","dotBracketEnd","match","slice","length","bracketEnd","endsWith","name","replace","jsdocNode","sourceCode","report","utils","settings","context","jsdocTagsWithPossibleType","filterTags","tag","tagMightHaveTypePosition","preferredTypes","options","noDefaults","unifyParentAndChildTypeChecks","exemptTagContexts","getPreferredTypeInfo","parentName","hasMatchingPreferredType","typeName","Object","keys","parentType","_","get","some","checkPostFix","syn","undefined","directNameMatch","unifiedSyntaxParentMatch","forEach","jsdocTag","invalidTypes","typeAst","error","includes","preferredSetting","push","reportSettings","strictNativeType","toLowerCase","fixedType","tagName","badType","preferredType","message","fix","fixer","replaceText","getText","tagValue","types","iterateAllJsdocs","fixable","schema","additionalProperties","properties","items","oneOf"],"mappings":"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","sourcesContent":["import _ from 'lodash';\nimport {parse, traverse, publish} from 'jsdoctypeparser';\nimport iterateJsdoc from '../iterateJsdoc';\n\nconst strictNativeTypes = [\n 'undefined',\n 'null',\n 'boolean',\n 'number',\n 'bigint',\n 'string',\n 'symbol',\n 'object',\n 'Array',\n 'Function',\n 'Date',\n 'RegExp',\n];\n\nconst adjustNames = (type, preferred, isGenericMatch, nodeName, node, parentNode) => {\n let ret = preferred;\n if (isGenericMatch) {\n if (preferred === '[]') {\n parentNode.meta.syntax = 'SQUARE_BRACKET';\n ret = 'Array';\n } else {\n const dotBracketEnd = preferred.match(/\\.(?:<>)?$/u);\n if (dotBracketEnd) {\n parentNode.meta.syntax = 'ANGLE_BRACKET_WITH_DOT';\n ret = preferred.slice(0, -dotBracketEnd[0].length);\n } else {\n const bracketEnd = preferred.endsWith('<>');\n if (bracketEnd) {\n parentNode.meta.syntax = 'ANGLE_BRACKET';\n ret = preferred.slice(0, -2);\n }\n }\n }\n } else if (type === 'ANY') {\n node.type = 'NAME';\n }\n node.name = ret.replace(/(?:\\.|<>|\\.<>|\\[\\])$/u, '');\n\n // For bare pseudo-types like `<>`\n if (!ret) {\n node.name = nodeName;\n }\n};\n\nexport default iterateJsdoc(({\n jsdocNode,\n sourceCode,\n report,\n utils,\n settings,\n context,\n}) => {\n const jsdocTagsWithPossibleType = utils.filterTags((tag) => {\n return utils.tagMightHaveTypePosition(tag.tag);\n });\n\n const {preferredTypes} = settings;\n const {\n noDefaults,\n unifyParentAndChildTypeChecks,\n exemptTagContexts = [],\n } = context.options[0] || {};\n\n const getPreferredTypeInfo = (type, nodeName, parentName, parentNode) => {\n let hasMatchingPreferredType;\n let isGenericMatch;\n let typeName = nodeName;\n if (Object.keys(preferredTypes).length) {\n const parentType = parentName === 'subject';\n if (unifyParentAndChildTypeChecks || parentType) {\n const syntax = _.get(parentNode, 'meta.syntax');\n\n [\n ['.', 'ANGLE_BRACKET_WITH_DOT'],\n ['.<>', 'ANGLE_BRACKET_WITH_DOT'],\n ['<>', 'ANGLE_BRACKET'],\n ].some(([checkPostFix, syn]) => {\n isGenericMatch = _.get(\n preferredTypes,\n nodeName + checkPostFix,\n ) !== undefined &&\n syntax === syn;\n if (isGenericMatch) {\n typeName += checkPostFix;\n }\n\n return isGenericMatch;\n });\n if (!isGenericMatch && parentType) {\n [\n ['[]', 'SQUARE_BRACKET'],\n ['.', 'ANGLE_BRACKET_WITH_DOT'],\n ['.<>', 'ANGLE_BRACKET_WITH_DOT'],\n ['<>', 'ANGLE_BRACKET'],\n ].some(([checkPostFix, syn]) => {\n isGenericMatch = _.get(preferredTypes, checkPostFix) !== undefined &&\n syntax === syn;\n if (isGenericMatch) {\n typeName = checkPostFix;\n }\n\n return isGenericMatch;\n });\n }\n }\n const directNameMatch = _.get(preferredTypes, nodeName) !== undefined;\n const unifiedSyntaxParentMatch = parentType && directNameMatch && unifyParentAndChildTypeChecks;\n isGenericMatch = isGenericMatch || unifiedSyntaxParentMatch;\n\n hasMatchingPreferredType = isGenericMatch ||\n directNameMatch && !parentType;\n }\n\n return [hasMatchingPreferredType, typeName, isGenericMatch];\n };\n\n jsdocTagsWithPossibleType.forEach((jsdocTag) => {\n const invalidTypes = [];\n let typeAst;\n\n try {\n typeAst = parse(jsdocTag.type);\n } catch (error) {\n return;\n }\n\n traverse(typeAst, (node, parentName, parentNode) => {\n const {type, name} = node;\n if (!['NAME', 'ANY'].includes(type)) {\n return;\n }\n let nodeName = type === 'ANY' ? '*' : name;\n\n const [hasMatchingPreferredType, typeName, isGenericMatch] = getPreferredTypeInfo(type, nodeName, parentName, parentNode);\n\n let preferred;\n if (hasMatchingPreferredType) {\n const preferredSetting = preferredTypes[typeName];\n nodeName = typeName === '[]' ? typeName : nodeName;\n\n if (!preferredSetting) {\n invalidTypes.push([nodeName]);\n } else if (typeof preferredSetting === 'string') {\n preferred = preferredSetting;\n invalidTypes.push([nodeName, preferred]);\n } else if (typeof preferredSetting === 'object') {\n preferred = _.get(preferredSetting, 'replacement');\n invalidTypes.push([\n nodeName,\n preferred,\n _.get(preferredSetting, 'message'),\n ]);\n } else {\n utils.reportSettings(\n 'Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object.',\n );\n\n return;\n }\n } else if (!noDefaults && type === 'NAME') {\n for (const strictNativeType of strictNativeTypes) {\n if (strictNativeType.toLowerCase() === nodeName.toLowerCase() &&\n strictNativeType !== nodeName &&\n\n // Don't report if user has own map for a strict native type\n (!preferredTypes || _.get(preferredTypes, strictNativeType) === undefined)\n ) {\n preferred = strictNativeType;\n invalidTypes.push([nodeName, preferred]);\n break;\n }\n }\n }\n\n // For fixer\n if (preferred) {\n adjustNames(type, preferred, isGenericMatch, nodeName, node, parentNode);\n }\n });\n\n if (invalidTypes.length) {\n const fixedType = publish(typeAst);\n\n const tagName = jsdocTag.tag;\n invalidTypes.forEach(([badType, preferredType = '', message]) => {\n const fix = (fixer) => {\n return fixer.replaceText(\n jsdocNode,\n sourceCode.getText(jsdocNode).replace(\n `{${jsdocTag.type}}`,\n `{${fixedType}}`,\n ),\n );\n };\n\n const tagValue = jsdocTag.name ? ` \"${jsdocTag.name}\"` : '';\n if (exemptTagContexts.some(({tag, types}) => {\n return tag === tagName &&\n (types === true || types.includes(jsdocTag.type));\n })) {\n return;\n }\n\n report(\n message ||\n `Invalid JSDoc @${tagName}${tagValue} type \"${badType}\"` +\n (preferredType ? '; ' : '.') +\n (preferredType ? `prefer: \"${preferredType}\".` : ''),\n preferredType ? fix : null,\n jsdocTag,\n message ? {\n tagName,\n tagValue,\n } : null,\n );\n });\n }\n });\n}, {\n iterateAllJsdocs: true,\n meta: {\n fixable: 'code',\n schema: [\n {\n additionalProperties: false,\n properties: {\n exemptTagContexts: {\n items: {\n additionalProperties: false,\n properties: {\n tag: {\n type: 'string',\n },\n types: {\n oneOf: [\n {\n type: 'boolean',\n },\n {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n ],\n },\n },\n type: 'object',\n },\n type: 'array',\n },\n noDefaults: {\n type: 'boolean',\n },\n unifyParentAndChildTypeChecks: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"file":"checkTypes.js"}