blob: 8f42228e8650992207f1d1f14640b798ad2db607 [file] [log] [blame]
{"version":3,"file":"checkAlignment.cjs","names":["_iterateJsdoc","_interopRequireDefault","require","e","__esModule","default","_default","exports","iterateJsdoc","context","indent","jsdocNode","report","sourceCode","innerIndent","options","indentLevel","length","sourceLines","getText","split","slice","map","line","number","filter","trimStart","fix","fixer","replacement","index","ignored","padStart","join","replaceText","some","iterateAllJsdocs","meta","docs","description","url","fixable","schema","additionalProperties","properties","type","module"],"sources":["../../src/rules/checkAlignment.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\n\nexport default iterateJsdoc(({\n context,\n indent,\n jsdocNode,\n report,\n sourceCode,\n}) => {\n const {\n innerIndent = 1,\n } = context.options[0] || {};\n\n // `indent` is whitespace from line 1 (`/**`), so slice and account for \"/\".\n const indentLevel = indent.length + innerIndent;\n const sourceLines = sourceCode.getText(jsdocNode).split('\\n')\n .slice(1)\n .map((line, number) => {\n return {\n line: line.split('*')[0],\n number,\n };\n })\n .filter(({\n line,\n }) => {\n return !line.trimStart().length;\n });\n\n /** @type {import('eslint').Rule.ReportFixer} */\n const fix = (fixer) => {\n const replacement = sourceCode.getText(jsdocNode).split('\\n')\n .map((line, index) => {\n // Ignore the first line and all lines not starting with `*`\n const ignored = !index || line.split('*')[0].trimStart().length;\n\n return ignored ? line : `${indent}${''.padStart(innerIndent, ' ')}${line.trimStart()}`;\n })\n .join('\\n');\n\n return fixer.replaceText(jsdocNode, replacement);\n };\n\n sourceLines.some(({\n line,\n number,\n }) => {\n if (line.length !== indentLevel) {\n report('Expected JSDoc block to be aligned.', fix, {\n line: number + 1,\n });\n\n return true;\n }\n\n return false;\n });\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Reports invalid alignment of JSDoc block asterisks.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-alignment.md#repos-sticky-header',\n },\n fixable: 'code',\n schema: [\n {\n additionalProperties: false,\n properties: {\n innerIndent: {\n default: 1,\n description: `Set to 0 if you wish to avoid the normal requirement for an inner indentation of\none space. Defaults to 1 (one space of normal inner indentation).`,\n type: 'integer',\n },\n },\n type: 'object',\n },\n ],\n type: 'layout',\n },\n});\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8C,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAE/B,IAAAG,qBAAY,EAAC,CAAC;EAC3BC,OAAO;EACPC,MAAM;EACNC,SAAS;EACTC,MAAM;EACNC;AACF,CAAC,KAAK;EACJ,MAAM;IACJC,WAAW,GAAG;EAChB,CAAC,GAAGL,OAAO,CAACM,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;;EAE5B;EACA,MAAMC,WAAW,GAAGN,MAAM,CAACO,MAAM,GAAGH,WAAW;EAC/C,MAAMI,WAAW,GAAGL,UAAU,CAACM,OAAO,CAACR,SAAS,CAAC,CAACS,KAAK,CAAC,IAAI,CAAC,CAC1DC,KAAK,CAAC,CAAC,CAAC,CACRC,GAAG,CAAC,CAACC,IAAI,EAAEC,MAAM,KAAK;IACrB,OAAO;MACLD,IAAI,EAAEA,IAAI,CAACH,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MACxBI;IACF,CAAC;EACH,CAAC,CAAC,CACDC,MAAM,CAAC,CAAC;IACPF;EACF,CAAC,KAAK;IACJ,OAAO,CAACA,IAAI,CAACG,SAAS,CAAC,CAAC,CAACT,MAAM;EACjC,CAAC,CAAC;;EAEJ;EACA,MAAMU,GAAG,GAAIC,KAAK,IAAK;IACrB,MAAMC,WAAW,GAAGhB,UAAU,CAACM,OAAO,CAACR,SAAS,CAAC,CAACS,KAAK,CAAC,IAAI,CAAC,CAC1DE,GAAG,CAAC,CAACC,IAAI,EAAEO,KAAK,KAAK;MACpB;MACA,MAAMC,OAAO,GAAG,CAACD,KAAK,IAAIP,IAAI,CAACH,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACM,SAAS,CAAC,CAAC,CAACT,MAAM;MAE/D,OAAOc,OAAO,GAAGR,IAAI,GAAG,GAAGb,MAAM,GAAG,EAAE,CAACsB,QAAQ,CAAClB,WAAW,EAAE,GAAG,CAAC,GAAGS,IAAI,CAACG,SAAS,CAAC,CAAC,EAAE;IACxF,CAAC,CAAC,CACDO,IAAI,CAAC,IAAI,CAAC;IAEb,OAAOL,KAAK,CAACM,WAAW,CAACvB,SAAS,EAAEkB,WAAW,CAAC;EAClD,CAAC;EAEDX,WAAW,CAACiB,IAAI,CAAC,CAAC;IAChBZ,IAAI;IACJC;EACF,CAAC,KAAK;IACJ,IAAID,IAAI,CAACN,MAAM,KAAKD,WAAW,EAAE;MAC/BJ,MAAM,CAAC,qCAAqC,EAAEe,GAAG,EAAE;QACjDJ,IAAI,EAAEC,MAAM,GAAG;MACjB,CAAC,CAAC;MAEF,OAAO,IAAI;IACb;IAEA,OAAO,KAAK;EACd,CAAC,CAAC;AACJ,CAAC,EAAE;EACDY,gBAAgB,EAAE,IAAI;EACtBC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJC,WAAW,EAAE,qDAAqD;MAClEC,GAAG,EAAE;IACP,CAAC;IACDC,OAAO,EAAE,MAAM;IACfC,MAAM,EAAE,CACN;MACEC,oBAAoB,EAAE,KAAK;MAC3BC,UAAU,EAAE;QACV9B,WAAW,EAAE;UACXT,OAAO,EAAE,CAAC;UACVkC,WAAW,EAAE;AACzB,kEAAkE;UACtDM,IAAI,EAAE;QACR;MACF,CAAC;MACDA,IAAI,EAAE;IACR,CAAC,CACF;IACDA,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAAAC,MAAA,CAAAvC,OAAA,GAAAA,OAAA,CAAAF,OAAA","ignoreList":[]}