projecte_ionic/node_modules/eslint-plugin-jsdoc/dist/rules/checkTypes.js.map
2022-02-09 18:30:03 +01:00

1 line
17 KiB
Plaintext
Executable file

{"version":3,"sources":["../../src/rules/checkTypes.js"],"names":["strictNativeTypes","adjustNames","type","preferred","isGenericMatch","nodeName","node","parentNode","ret","objects","value","meta","syntax","dotBracketEnd","match","slice","length","bracketEnd","endsWith","name","replace","jsdocNode","sourceCode","report","utils","settings","context","jsdocTagsWithPossibleType","filterTags","tag","tagMightHaveTypePosition","preferredTypes","mode","noDefaults","unifyParentAndChildTypeChecks","exemptTagContexts","options","getPreferredTypeInfo","_type","parentName","hasMatchingPreferredType","typeName","Object","keys","parentType","some","checkPostFix","syn","undefined","directNameMatch","values","includes","unifiedSyntaxParentMatch","forEach","jsdocTag","invalidTypes","typeAst","preferredSetting","push","replacement","message","reportSettings","strictNativeType","toLowerCase","fixedType","tagName","badType","preferredType","fix","fixer","replaceText","getText","tagValue","types","iterateAllJsdocs","docs","description","url","fixable","schema","additionalProperties","properties","items","oneOf"],"mappings":"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","sourcesContent":["import {\n parse, traverse, publish,\n} 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 if (parentNode.objects[0].type === 'UNION') {\n parentNode.objects[0] = {\n type: 'PARENTHESIS',\n value: parentNode.objects[0],\n };\n }\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 } else if (\n parentNode.meta.syntax === 'SQUARE_BRACKET' &&\n (nodeName === '[]' || nodeName === 'Array')\n ) {\n parentNode.meta.syntax = 'ANGLE_BRACKET';\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, mode} = 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 = parentNode?.meta?.syntax;\n\n [\n ['.', 'ANGLE_BRACKET_WITH_DOT'],\n ['.<>', 'ANGLE_BRACKET_WITH_DOT'],\n ['<>', 'ANGLE_BRACKET'],\n ].some(([checkPostFix, syn]) => {\n isGenericMatch = preferredTypes?.[nodeName + checkPostFix] !== 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 = preferredTypes?.[checkPostFix] !== undefined &&\n syntax === syn;\n if (isGenericMatch) {\n typeName = checkPostFix;\n }\n\n return isGenericMatch;\n });\n }\n }\n const directNameMatch = preferredTypes?.[nodeName] !== undefined &&\n !Object.values(preferredTypes).includes(nodeName);\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, {mode});\n } catch {\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 = preferredSetting?.replacement;\n invalidTypes.push([\n nodeName,\n preferred,\n 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 === 'object' && mode === 'typescript') {\n continue;\n }\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 || 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 docs: {\n description: 'Reports invalid types.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-check-types',\n },\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"}