UNPKG

eslint-plugin-jsdoc

Version:
1 lines 3.19 kB
{"version":3,"file":"tsNoEmptyObjectType.cjs","names":["_iterateJsdoc","_interopRequireDefault","require","_jsdoccomment","e","__esModule","default","_default","exports","iterateJsdoc","settings","utils","mode","checkType","tag","potentialType","type","parsedType","parseType","traverse","nde","elements","length","reportJSDoc","tags","filterTags","Boolean","tagMightHaveTypePosition","iterateAllJsdocs","meta","docs","description","url","schema","module"],"sources":["../../src/rules/tsNoEmptyObjectType.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\nimport {\n parse as parseType,\n traverse,\n} from '@es-joy/jsdoccomment';\n\nexport default iterateJsdoc(({\n settings,\n utils,\n}) => {\n if (settings.mode !== 'typescript') {\n return;\n }\n\n /**\n * @param {import('@es-joy/jsdoccomment').JsdocTagWithInline} tag\n */\n const checkType = (tag) => {\n const potentialType = tag.type;\n let parsedType;\n try {\n parsedType = parseType(\n /** @type {string} */ (potentialType), 'typescript',\n );\n } catch {\n return;\n }\n\n traverse(parsedType, (nde) => {\n switch (nde.type) {\n case 'JsdocTypeObject': {\n if (!nde.elements.length) {\n utils.reportJSDoc('No empty object type.', tag);\n }\n }\n }\n });\n };\n\n const tags = utils.filterTags(({\n tag,\n }) => {\n return Boolean(tag !== 'import' && utils.tagMightHaveTypePosition(tag));\n });\n\n for (const tag of tags) {\n if (tag.type) {\n checkType(tag);\n }\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Warns against use of the empty object type',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-no-empty-object-type.md#repos-sticky-header',\n },\n schema: [],\n type: 'suggestion',\n },\n});\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAG8B,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEf,IAAAG,qBAAY,EAAC,CAAC;EAC3BC,QAAQ;EACRC;AACF,CAAC,KAAK;EACJ,IAAID,QAAQ,CAACE,IAAI,KAAK,YAAY,EAAE;IAClC;EACF;;EAEA;AACF;AACA;EACE,MAAMC,SAAS,GAAIC,GAAG,IAAK;IACzB,MAAMC,aAAa,GAAGD,GAAG,CAACE,IAAI;IAC9B,IAAIC,UAAU;IACd,IAAI;MACFA,UAAU,GAAG,IAAAC,mBAAS,EACpB,qBAAuBH,aAAa,EAAG,YACzC,CAAC;IACH,CAAC,CAAC,MAAM;MACN;IACF;IAEA,IAAAI,sBAAQ,EAACF,UAAU,EAAGG,GAAG,IAAK;MAC5B,QAAQA,GAAG,CAACJ,IAAI;QACd,KAAK,iBAAiB;UAAE;YACtB,IAAI,CAACI,GAAG,CAACC,QAAQ,CAACC,MAAM,EAAE;cACxBX,KAAK,CAACY,WAAW,CAAC,uBAAuB,EAAET,GAAG,CAAC;YACjD;UACF;MACF;IACF,CAAC,CAAC;EACJ,CAAC;EAED,MAAMU,IAAI,GAAGb,KAAK,CAACc,UAAU,CAAC,CAAC;IAC7BX;EACF,CAAC,KAAK;IACJ,OAAOY,OAAO,CAACZ,GAAG,KAAK,QAAQ,IAAIH,KAAK,CAACgB,wBAAwB,CAACb,GAAG,CAAC,CAAC;EACzE,CAAC,CAAC;EAEF,KAAK,MAAMA,GAAG,IAAIU,IAAI,EAAE;IACtB,IAAIV,GAAG,CAACE,IAAI,EAAE;MACZH,SAAS,CAACC,GAAG,CAAC;IAChB;EACF;AACF,CAAC,EAAE;EACDc,gBAAgB,EAAE,IAAI;EACtBC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJC,WAAW,EAAE,4CAA4C;MACzDC,GAAG,EAAE;IACP,CAAC;IACDC,MAAM,EAAE,EAAE;IACVjB,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAAAkB,MAAA,CAAA1B,OAAA,GAAAA,OAAA,CAAAF,OAAA","ignoreList":[]}