blob: 829b56948233bade4fb73ac2822b6fffc6b27195 [file] [log] [blame]
{"version":3,"sources":["../../src/rules/emptyTags.js"],"names":["defaultEmptyTags","emptyIfNotClosure","settings","jsdoc","utils","tags","emptyTags","filterTags","tag","tagName","includes","hasOptionTag","some","mode","forEach","fix","name","description","type","optional","default","undefined","content","reportJSDoc","checkPrivate","iterateAllJsdocs","meta","fixable","schema","additionalProperties","properties","items"],"mappings":";;;;;;;AAAA;;;;AAEA,MAAMA,gBAAgB,GAAG,CACvB,UADuB,EACX,OADW,EACF,WADE,EACW,QADX,EACqB,iBADrB,EAEvB,QAFuB,EAEb,YAFa,EAEC,OAFD,EAEU,UAFV,EAEsB,UAFtB,EAEkC,UAFlC,CAAzB;AAKA,MAAMC,iBAAiB,GAAG,CACxB,SADwB,EACb,SADa,EACF,WADE,EACW,QADX,EACqB,QADrB,CAA1B;;eAIe,2BAAa,CAAC;AAC3BC,EAAAA,QAD2B;AAE3BC,EAAAA,KAF2B;AAG3BC,EAAAA;AAH2B,CAAD,KAItB;AACJ,MAAI,CAACD,KAAK,CAACE,IAAX,EAAiB;AACf;AACD;;AACD,QAAMC,SAAS,GAAGF,KAAK,CAACG,UAAN,CAAiB,CAAC;AAACC,IAAAA,GAAG,EAAEC;AAAN,GAAD,KAAoB;AACrD,WAAOT,gBAAgB,CAACU,QAAjB,CAA0BD,OAA1B,KACLL,KAAK,CAACO,YAAN,CAAmBF,OAAnB,KAA+BN,KAAK,CAACE,IAAN,CAAWO,IAAX,CAAgB,CAAC;AAACJ,MAAAA;AAAD,KAAD,KAAW;AACxD,aAAOA,GAAG,KAAKC,OAAf;AACD,KAF8B,CAD1B,IAILP,QAAQ,CAACW,IAAT,KAAkB,SAAlB,IAA+BZ,iBAAiB,CAACS,QAAlB,CAA2BD,OAA3B,CAJjC;AAKD,GANiB,CAAlB;AAOAH,EAAAA,SAAS,CAACQ,OAAV,CAAmBN,GAAD,IAAS;AACzB,UAAMO,GAAG,GAAG,MAAM;AAChBP,MAAAA,GAAG,CAACQ,IAAJ,GAAW,EAAX;AACAR,MAAAA,GAAG,CAACS,WAAJ,GAAkB,EAAlB;AACAT,MAAAA,GAAG,CAACU,IAAJ,GAAW,EAAX;AACAV,MAAAA,GAAG,CAACW,QAAJ,GAAe,KAAf;AACAX,MAAAA,GAAG,CAACY,OAAJ,GAAcC,SAAd;AACD,KAND;;AAOA,UAAMC,OAAO,GAAGd,GAAG,CAACQ,IAAJ,IAAYR,GAAG,CAACS,WAAhB,IAA+BT,GAAG,CAACU,IAAnD;;AACA,QAAII,OAAJ,EAAa;AACXlB,MAAAA,KAAK,CAACmB,WAAN,CAAmB,IAAGf,GAAG,CAACA,GAAI,mBAA9B,EAAkDA,GAAlD,EAAuDO,GAAvD;AACD;AACF,GAZD;AAaD,CA5Bc,EA4BZ;AACDS,EAAAA,YAAY,EAAE,IADb;AAEDC,EAAAA,gBAAgB,EAAE,IAFjB;AAGDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,OAAO,EAAE,MADL;AAEJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVzB,QAAAA,IAAI,EAAE;AACJ0B,UAAAA,KAAK,EAAE;AACLb,YAAAA,IAAI,EAAE;AADD,WADH;AAIJA,UAAAA,IAAI,EAAE;AAJF;AADI,OAFd;AAUEA,MAAAA,IAAI,EAAE;AAVR,KADM,CAFJ;AAgBJA,IAAAA,IAAI,EAAE;AAhBF;AAHL,CA5BY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nconst defaultEmptyTags = [\n 'abstract', 'async', 'generator', 'global', 'hideconstructor',\n 'ignore', 'inheritdoc', 'inner', 'instance', 'override', 'readonly',\n];\n\nconst emptyIfNotClosure = [\n 'package', 'private', 'protected', 'public', 'static',\n];\n\nexport default iterateJsdoc(({\n settings,\n jsdoc,\n utils,\n}) => {\n if (!jsdoc.tags) {\n return;\n }\n const emptyTags = utils.filterTags(({tag: tagName}) => {\n return defaultEmptyTags.includes(tagName) ||\n utils.hasOptionTag(tagName) && jsdoc.tags.some(({tag}) => {\n return tag === tagName;\n }) ||\n settings.mode !== 'closure' && emptyIfNotClosure.includes(tagName);\n });\n emptyTags.forEach((tag) => {\n const fix = () => {\n tag.name = '';\n tag.description = '';\n tag.type = '';\n tag.optional = false;\n tag.default = undefined;\n };\n const content = tag.name || tag.description || tag.type;\n if (content) {\n utils.reportJSDoc(`@${tag.tag} should be empty.`, tag, fix);\n }\n });\n}, {\n checkPrivate: true,\n iterateAllJsdocs: true,\n meta: {\n fixable: 'code',\n schema: [\n {\n additionalProperties: false,\n properties: {\n tags: {\n items: {\n type: 'string',\n },\n type: 'array',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"file":"emptyTags.js"}