UNPKG

eslint-plugin-jsdoc

Version:
1 lines 2.85 kB
{"version":3,"file":"requireProperty.cjs","names":["iterateJsdoc"],"sources":["../../src/rules/requireProperty.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\n\nexport default iterateJsdoc(({\n context,\n utils,\n}) => {\n const propertyAssociatedTags = utils.filterTags(({\n tag,\n }) => {\n return [\n 'namespace', 'typedef',\n ].includes(tag);\n });\n if (!propertyAssociatedTags.length) {\n return;\n }\n\n const targetTagName = /** @type {string} */ (utils.getPreferredTagName({\n tagName: 'property',\n }));\n\n if (!targetTagName) {\n context.report({\n loc: {\n end: {\n column: 1,\n line: 1,\n },\n start: {\n column: 1,\n line: 1,\n },\n },\n message: 'Cannot prohibit `@property` in the `tagNamePreference` setting while using the `require-property` rule.',\n });\n return;\n }\n\n if (utils.hasATag([\n targetTagName,\n ])) {\n return;\n }\n\n for (const propertyAssociatedTag of propertyAssociatedTags) {\n if (![\n 'object', 'Object', 'PlainObject',\n ].includes(propertyAssociatedTag.type)) {\n continue;\n }\n\n utils.reportJSDoc(`Missing JSDoc @${targetTagName}.`, null, () => {\n utils.addTag(targetTagName);\n });\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property.md#repos-sticky-header',\n },\n fixable: 'code',\n type: 'suggestion',\n },\n});\n"],"mappings":";;;;;;AAAA;AAA8C;AAAA,iCAE/B,IAAAA,qBAAY,EAAC,CAAC;EAC3B,OAAO;EACP;AACF,CAAC,KAAK;EACJ,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/C;EACF,CAAC,KAAK;IACJ,OAAO,CACL,WAAW,EAAE,SAAS,CACvB,CAAC,QAAQ,CAAC,GAAG,CAAC;EACjB,CAAC,CAAC;EACF,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE;IAClC;EACF;EAEA,MAAM,aAAa,GAAG,qBAAuB,KAAK,CAAC,mBAAmB,CAAC;IACrE,OAAO,EAAE;EACX,CAAC,CAAE;EAEH,IAAI,CAAC,aAAa,EAAE;IAClB,OAAO,CAAC,MAAM,CAAC;MACb,GAAG,EAAE;QACH,GAAG,EAAE;UACH,MAAM,EAAE,CAAC;UACT,IAAI,EAAE;QACR,CAAC;QACD,KAAK,EAAE;UACL,MAAM,EAAE,CAAC;UACT,IAAI,EAAE;QACR;MACF,CAAC;MACD,OAAO,EAAE;IACX,CAAC,CAAC;IACF;EACF;EAEA,IAAI,KAAK,CAAC,OAAO,CAAC,CAChB,aAAa,CACd,CAAC,EAAE;IACF;EACF;EAEA,KAAK,MAAM,qBAAqB,IAAI,sBAAsB,EAAE;IAC1D,IAAI,CAAC,CACH,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAClC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;MACtC;IACF;IAEA,KAAK,CAAC,WAAW,CAAC,kBAAkB,aAAa,GAAG,EAAE,IAAI,EAAE,MAAM;MAChE,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;IAC7B,CAAC,CAAC;EACJ;AACF,CAAC,EAAE;EACD,gBAAgB,EAAE,IAAI;EACtB,IAAI,EAAE;IACJ,IAAI,EAAE;MACJ,WAAW,EAAE,sIAAsI;MACnJ,GAAG,EAAE;IACP,CAAC;IACD,OAAO,EAAE,MAAM;IACf,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAAA","ignoreList":[]}