eslint-plugin-jsdoc 35.4.2 → 35.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2338,6 +2338,19 @@ const fn = ( lorem, sit ) => {}
2338
2338
  const fn = ( lorem, sit ) => {}
2339
2339
  // "jsdoc/check-line-alignment": ["error"|"warn", "never",{"customSpacings":{"postName":3}}]
2340
2340
  // Message: Expected JSDoc block lines to not be aligned.
2341
+
2342
+
2343
+ /**
2344
+ * Function description.
2345
+ *
2346
+ * @param {string} lorem Description.
2347
+ * @param {int} sit Description multi words.
2348
+ * @param {string} sth Multi
2349
+ * line description.
2350
+ */
2351
+ const fn = ( lorem, sit ) => {}
2352
+ // "jsdoc/check-line-alignment": ["error"|"warn", "always"]
2353
+ // Message: Expected JSDoc block lines to be aligned.
2341
2354
  ````
2342
2355
 
2343
2356
  The following patterns are not considered problems:
@@ -2593,6 +2606,18 @@ const fn = ( lorem, sit ) => {}
2593
2606
  */
2594
2607
  const fn = ({ids}) => {}
2595
2608
  // "jsdoc/check-line-alignment": ["error"|"warn", "always"]
2609
+
2610
+
2611
+ /**
2612
+ * Function description.
2613
+ *
2614
+ * @param {string} lorem Description.
2615
+ * @param {int} sit Description multi words.
2616
+ * @param {string} sth Multi
2617
+ * line description.
2618
+ */
2619
+ const fn = ( lorem, sit ) => {}
2620
+ // "jsdoc/check-line-alignment": ["error"|"warn", "always"]
2596
2621
  ````
2597
2622
 
2598
2623
 
@@ -173,7 +173,7 @@ const alignTransform = ({
173
173
 
174
174
  if (!intoTags) {
175
175
  if (tokens.description === '') {
176
- tokens.postDelimiter = '';
176
+ tokens.postDelimiter = tokens.postDelimiter === '\r' ? '\r' : '';
177
177
  } else if (!preserveMainDescriptionPostDelimiter) {
178
178
  tokens.postDelimiter = ' ';
179
179
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/alignTransform.js"],"names":["zeroWidth","name","start","tag","type","shouldAlign","tags","index","source","tokens","replace","includesTag","includes","iterator","previousTag","getWidth","width","Math","max","length","delimiter","Markers","space","len","padStart","alignTransform","customSpacings","indent","preserveMainDescriptionPostDelimiter","intoTags","alignTokens","nothingAfter","delim","description","postName","postType","postTag","spacings","postDelimiter","update","line","isEmpty","end","fields","reduce","map"],"mappings":"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","sourcesContent":["/**\n * Transform based on https://github.com/syavorsky/comment-parser/blob/master/src/transforms/align.ts\n *\n * It contains some customizations to align based on the tags, and some custom options.\n */\n\nimport {\n Markers,\n} from 'comment-parser/lib/primitives';\nimport {\n rewireSource,\n} from 'comment-parser/lib/util';\n\nconst zeroWidth = {\n name: 0,\n start: 0,\n tag: 0,\n type: 0,\n};\n\nconst shouldAlign = (tags, index, source) => {\n const tag = source[index].tokens.tag.replace('@', '');\n const includesTag = tags.includes(tag);\n\n if (includesTag) {\n return true;\n }\n\n if (tag !== '') {\n return false;\n }\n\n for (let iterator = index; iterator >= 0; iterator--) {\n const previousTag = source[iterator].tokens.tag.replace('@', '');\n\n if (previousTag !== '') {\n if (tags.includes(previousTag)) {\n return true;\n }\n\n return false;\n }\n }\n\n return true;\n};\n\nconst getWidth = (tags) => {\n return (width, {tokens}, index, source) => {\n if (!shouldAlign(tags, index, source)) {\n return width;\n }\n\n return {\n name: Math.max(width.name, tokens.name.length),\n start: tokens.delimiter === Markers.start ? tokens.start.length : width.start,\n tag: Math.max(width.tag, tokens.tag.length),\n type: Math.max(width.type, tokens.type.length),\n };\n };\n};\n\nconst space = (len) => {\n return ''.padStart(len, ' ');\n};\n\nconst alignTransform = ({\n customSpacings,\n tags,\n indent,\n preserveMainDescriptionPostDelimiter,\n}) => {\n let intoTags = false;\n let width;\n\n const alignTokens = (tokens) => {\n const nothingAfter = {\n delim: false,\n name: false,\n tag: false,\n type: false,\n };\n\n if (tokens.description === '') {\n nothingAfter.name = true;\n tokens.postName = '';\n\n if (tokens.name === '') {\n nothingAfter.type = true;\n tokens.postType = '';\n\n if (tokens.type === '') {\n nothingAfter.tag = true;\n tokens.postTag = '';\n\n /* istanbul ignore next: Never happens because the !intoTags return. But it's here for consistency with the original align transform */\n if (tokens.tag === '') {\n nothingAfter.delim = true;\n }\n }\n }\n }\n\n // Todo: Avoid fixing alignment of blocks with multiline wrapping of type\n if (tokens.tag === '' && tokens.type) {\n return tokens;\n }\n\n const spacings = {\n postDelimiter: customSpacings?.postDelimiter || 1,\n postName: customSpacings?.postName || 1,\n postTag: customSpacings?.postTag || 1,\n postType: customSpacings?.postType || 1,\n };\n\n tokens.postDelimiter = nothingAfter.delim ? '' : space(spacings.postDelimiter);\n\n if (!nothingAfter.tag) {\n tokens.postTag = space(width.tag - tokens.tag.length + spacings.postTag);\n }\n if (!nothingAfter.type) {\n tokens.postType = space(width.type - tokens.type.length + spacings.postType);\n }\n if (!nothingAfter.name) {\n // If post name is empty for all lines (name width 0), don't add post name spacing.\n tokens.postName = width.name === 0 ? '' : space(width.name - tokens.name.length + spacings.postName);\n }\n\n return tokens;\n };\n\n const update = (line, index, source) => {\n const tokens = {...line.tokens};\n if (tokens.tag !== '') {\n intoTags = true;\n }\n\n const isEmpty =\n tokens.tag === '' &&\n tokens.name === '' &&\n tokens.type === '' &&\n tokens.description === '';\n\n // dangling '*/'\n if (tokens.end === Markers.end && isEmpty) {\n tokens.start = indent + ' ';\n\n return {\n ...line,\n tokens,\n };\n }\n\n /* eslint-disable indent */\n switch (tokens.delimiter) {\n case Markers.start:\n tokens.start = indent;\n break;\n case Markers.delim:\n tokens.start = indent + ' ';\n break;\n default:\n tokens.delimiter = '';\n\n // compensate delimiter\n tokens.start = indent + ' ';\n }\n /* eslint-enable */\n\n if (!intoTags) {\n if (tokens.description === '') {\n tokens.postDelimiter = '';\n } else if (!preserveMainDescriptionPostDelimiter) {\n tokens.postDelimiter = ' ';\n }\n\n return {\n ...line,\n tokens,\n };\n }\n\n // Not align.\n if (!shouldAlign(tags, index, source)) {\n return {\n ...line,\n tokens,\n };\n }\n\n return {\n ...line,\n tokens: alignTokens(tokens),\n };\n };\n\n return ({source, ...fields}) => {\n width = source.reduce(getWidth(tags), {...zeroWidth});\n\n return rewireSource({\n ...fields,\n source: source.map(update),\n });\n };\n};\n\nexport default alignTransform;\n"],"file":"alignTransform.js"}
1
+ {"version":3,"sources":["../src/alignTransform.js"],"names":["zeroWidth","name","start","tag","type","shouldAlign","tags","index","source","tokens","replace","includesTag","includes","iterator","previousTag","getWidth","width","Math","max","length","delimiter","Markers","space","len","padStart","alignTransform","customSpacings","indent","preserveMainDescriptionPostDelimiter","intoTags","alignTokens","nothingAfter","delim","description","postName","postType","postTag","spacings","postDelimiter","update","line","isEmpty","end","fields","reduce","map"],"mappings":";;;;;;;AAMA;;AAGA;;AATA;AACA;AACA;AACA;AACA;AASA,MAAMA,SAAS,GAAG;AAChBC,EAAAA,IAAI,EAAE,CADU;AAEhBC,EAAAA,KAAK,EAAE,CAFS;AAGhBC,EAAAA,GAAG,EAAE,CAHW;AAIhBC,EAAAA,IAAI,EAAE;AAJU,CAAlB;;AAOA,MAAMC,WAAW,GAAG,CAACC,IAAD,EAAOC,KAAP,EAAcC,MAAd,KAAyB;AAC3C,QAAML,GAAG,GAAGK,MAAM,CAACD,KAAD,CAAN,CAAcE,MAAd,CAAqBN,GAArB,CAAyBO,OAAzB,CAAiC,GAAjC,EAAsC,EAAtC,CAAZ;AACA,QAAMC,WAAW,GAAGL,IAAI,CAACM,QAAL,CAAcT,GAAd,CAApB;;AAEA,MAAIQ,WAAJ,EAAiB;AACf,WAAO,IAAP;AACD;;AAED,MAAIR,GAAG,KAAK,EAAZ,EAAgB;AACd,WAAO,KAAP;AACD;;AAED,OAAK,IAAIU,QAAQ,GAAGN,KAApB,EAA2BM,QAAQ,IAAI,CAAvC,EAA0CA,QAAQ,EAAlD,EAAsD;AACpD,UAAMC,WAAW,GAAGN,MAAM,CAACK,QAAD,CAAN,CAAiBJ,MAAjB,CAAwBN,GAAxB,CAA4BO,OAA5B,CAAoC,GAApC,EAAyC,EAAzC,CAApB;;AAEA,QAAII,WAAW,KAAK,EAApB,EAAwB;AACtB,UAAIR,IAAI,CAACM,QAAL,CAAcE,WAAd,CAAJ,EAAgC;AAC9B,eAAO,IAAP;AACD;;AAED,aAAO,KAAP;AACD;AACF;;AAED,SAAO,IAAP;AACD,CAzBD;;AA2BA,MAAMC,QAAQ,GAAIT,IAAD,IAAU;AACzB,SAAO,CAACU,KAAD,EAAQ;AAACP,IAAAA;AAAD,GAAR,EAAkBF,KAAlB,EAAyBC,MAAzB,KAAoC;AACzC,QAAI,CAACH,WAAW,CAACC,IAAD,EAAOC,KAAP,EAAcC,MAAd,CAAhB,EAAuC;AACrC,aAAOQ,KAAP;AACD;;AAED,WAAO;AACLf,MAAAA,IAAI,EAAEgB,IAAI,CAACC,GAAL,CAASF,KAAK,CAACf,IAAf,EAAqBQ,MAAM,CAACR,IAAP,CAAYkB,MAAjC,CADD;AAELjB,MAAAA,KAAK,EAAEO,MAAM,CAACW,SAAP,KAAqBC,oBAAQnB,KAA7B,GAAqCO,MAAM,CAACP,KAAP,CAAaiB,MAAlD,GAA2DH,KAAK,CAACd,KAFnE;AAGLC,MAAAA,GAAG,EAAEc,IAAI,CAACC,GAAL,CAASF,KAAK,CAACb,GAAf,EAAoBM,MAAM,CAACN,GAAP,CAAWgB,MAA/B,CAHA;AAILf,MAAAA,IAAI,EAAEa,IAAI,CAACC,GAAL,CAASF,KAAK,CAACZ,IAAf,EAAqBK,MAAM,CAACL,IAAP,CAAYe,MAAjC;AAJD,KAAP;AAMD,GAXD;AAYD,CAbD;;AAeA,MAAMG,KAAK,GAAIC,GAAD,IAAS;AACrB,SAAO,GAAGC,QAAH,CAAYD,GAAZ,EAAiB,GAAjB,CAAP;AACD,CAFD;;AAIA,MAAME,cAAc,GAAG,CAAC;AACtBC,EAAAA,cADsB;AAEtBpB,EAAAA,IAFsB;AAGtBqB,EAAAA,MAHsB;AAItBC,EAAAA;AAJsB,CAAD,KAKjB;AACJ,MAAIC,QAAQ,GAAG,KAAf;AACA,MAAIb,KAAJ;;AAEA,QAAMc,WAAW,GAAIrB,MAAD,IAAY;AAC9B,UAAMsB,YAAY,GAAG;AACnBC,MAAAA,KAAK,EAAE,KADY;AAEnB/B,MAAAA,IAAI,EAAE,KAFa;AAGnBE,MAAAA,GAAG,EAAE,KAHc;AAInBC,MAAAA,IAAI,EAAE;AAJa,KAArB;;AAOA,QAAIK,MAAM,CAACwB,WAAP,KAAuB,EAA3B,EAA+B;AAC7BF,MAAAA,YAAY,CAAC9B,IAAb,GAAoB,IAApB;AACAQ,MAAAA,MAAM,CAACyB,QAAP,GAAkB,EAAlB;;AAEA,UAAIzB,MAAM,CAACR,IAAP,KAAgB,EAApB,EAAwB;AACtB8B,QAAAA,YAAY,CAAC3B,IAAb,GAAoB,IAApB;AACAK,QAAAA,MAAM,CAAC0B,QAAP,GAAkB,EAAlB;;AAEA,YAAI1B,MAAM,CAACL,IAAP,KAAgB,EAApB,EAAwB;AACtB2B,UAAAA,YAAY,CAAC5B,GAAb,GAAmB,IAAnB;AACAM,UAAAA,MAAM,CAAC2B,OAAP,GAAiB,EAAjB;AAEA;;AACA,cAAI3B,MAAM,CAACN,GAAP,KAAe,EAAnB,EAAuB;AACrB4B,YAAAA,YAAY,CAACC,KAAb,GAAqB,IAArB;AACD;AACF;AACF;AACF,KA1B6B,CA4B9B;;;AACA,QAAIvB,MAAM,CAACN,GAAP,KAAe,EAAf,IAAqBM,MAAM,CAACL,IAAhC,EAAsC;AACpC,aAAOK,MAAP;AACD;;AAED,UAAM4B,QAAQ,GAAG;AACfC,MAAAA,aAAa,EAAE,CAAAZ,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEY,aAAhB,KAAiC,CADjC;AAEfJ,MAAAA,QAAQ,EAAE,CAAAR,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEQ,QAAhB,KAA4B,CAFvB;AAGfE,MAAAA,OAAO,EAAE,CAAAV,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEU,OAAhB,KAA2B,CAHrB;AAIfD,MAAAA,QAAQ,EAAE,CAAAT,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAES,QAAhB,KAA4B;AAJvB,KAAjB;AAOA1B,IAAAA,MAAM,CAAC6B,aAAP,GAAuBP,YAAY,CAACC,KAAb,GAAqB,EAArB,GAA0BV,KAAK,CAACe,QAAQ,CAACC,aAAV,CAAtD;;AAEA,QAAI,CAACP,YAAY,CAAC5B,GAAlB,EAAuB;AACrBM,MAAAA,MAAM,CAAC2B,OAAP,GAAiBd,KAAK,CAACN,KAAK,CAACb,GAAN,GAAYM,MAAM,CAACN,GAAP,CAAWgB,MAAvB,GAAgCkB,QAAQ,CAACD,OAA1C,CAAtB;AACD;;AACD,QAAI,CAACL,YAAY,CAAC3B,IAAlB,EAAwB;AACtBK,MAAAA,MAAM,CAAC0B,QAAP,GAAkBb,KAAK,CAACN,KAAK,CAACZ,IAAN,GAAaK,MAAM,CAACL,IAAP,CAAYe,MAAzB,GAAkCkB,QAAQ,CAACF,QAA5C,CAAvB;AACD;;AACD,QAAI,CAACJ,YAAY,CAAC9B,IAAlB,EAAwB;AACtB;AACAQ,MAAAA,MAAM,CAACyB,QAAP,GAAkBlB,KAAK,CAACf,IAAN,KAAe,CAAf,GAAmB,EAAnB,GAAwBqB,KAAK,CAACN,KAAK,CAACf,IAAN,GAAaQ,MAAM,CAACR,IAAP,CAAYkB,MAAzB,GAAkCkB,QAAQ,CAACH,QAA5C,CAA/C;AACD;;AAED,WAAOzB,MAAP;AACD,GAtDD;;AAwDA,QAAM8B,MAAM,GAAG,CAACC,IAAD,EAAOjC,KAAP,EAAcC,MAAd,KAAyB;AACtC,UAAMC,MAAM,GAAG,EAAC,GAAG+B,IAAI,CAAC/B;AAAT,KAAf;;AACA,QAAIA,MAAM,CAACN,GAAP,KAAe,EAAnB,EAAuB;AACrB0B,MAAAA,QAAQ,GAAG,IAAX;AACD;;AAED,UAAMY,OAAO,GACXhC,MAAM,CAACN,GAAP,KAAe,EAAf,IACAM,MAAM,CAACR,IAAP,KAAgB,EADhB,IAEAQ,MAAM,CAACL,IAAP,KAAgB,EAFhB,IAGAK,MAAM,CAACwB,WAAP,KAAuB,EAJzB,CANsC,CAYtC;;AACA,QAAIxB,MAAM,CAACiC,GAAP,KAAerB,oBAAQqB,GAAvB,IAA8BD,OAAlC,EAA2C;AACzChC,MAAAA,MAAM,CAACP,KAAP,GAAeyB,MAAM,GAAG,GAAxB;AAEA,aAAO,EACL,GAAGa,IADE;AAEL/B,QAAAA;AAFK,OAAP;AAID;AAED;;;AACA,YAAQA,MAAM,CAACW,SAAf;AACE,WAAKC,oBAAQnB,KAAb;AACEO,QAAAA,MAAM,CAACP,KAAP,GAAeyB,MAAf;AACA;;AACF,WAAKN,oBAAQW,KAAb;AACEvB,QAAAA,MAAM,CAACP,KAAP,GAAeyB,MAAM,GAAG,GAAxB;AACA;;AACF;AACElB,QAAAA,MAAM,CAACW,SAAP,GAAmB,EAAnB,CADF,CAGE;;AACAX,QAAAA,MAAM,CAACP,KAAP,GAAeyB,MAAM,GAAG,IAAxB;AAXJ;AAaA;;;AAEA,QAAI,CAACE,QAAL,EAAe;AACb,UAAIpB,MAAM,CAACwB,WAAP,KAAuB,EAA3B,EAA+B;AAC7BxB,QAAAA,MAAM,CAAC6B,aAAP,GAAuB7B,MAAM,CAAC6B,aAAP,KAAyB,IAAzB,GAAgC,IAAhC,GAAuC,EAA9D;AACD,OAFD,MAEO,IAAI,CAACV,oCAAL,EAA2C;AAChDnB,QAAAA,MAAM,CAAC6B,aAAP,GAAuB,GAAvB;AACD;;AAED,aAAO,EACL,GAAGE,IADE;AAEL/B,QAAAA;AAFK,OAAP;AAID,KAjDqC,CAmDtC;;;AACA,QAAI,CAACJ,WAAW,CAACC,IAAD,EAAOC,KAAP,EAAcC,MAAd,CAAhB,EAAuC;AACrC,aAAO,EACL,GAAGgC,IADE;AAEL/B,QAAAA;AAFK,OAAP;AAID;;AAED,WAAO,EACL,GAAG+B,IADE;AAEL/B,MAAAA,MAAM,EAAEqB,WAAW,CAACrB,MAAD;AAFd,KAAP;AAID,GA/DD;;AAiEA,SAAO,CAAC;AAACD,IAAAA,MAAD;AAAS,OAAGmC;AAAZ,GAAD,KAAyB;AAC9B3B,IAAAA,KAAK,GAAGR,MAAM,CAACoC,MAAP,CAAc7B,QAAQ,CAACT,IAAD,CAAtB,EAA8B,EAAC,GAAGN;AAAJ,KAA9B,CAAR;AAEA,WAAO,wBAAa,EAClB,GAAG2C,MADe;AAElBnC,MAAAA,MAAM,EAAEA,MAAM,CAACqC,GAAP,CAAWN,MAAX;AAFU,KAAb,CAAP;AAID,GAPD;AAQD,CA1ID;;eA4Ied,c","sourcesContent":["/**\n * Transform based on https://github.com/syavorsky/comment-parser/blob/master/src/transforms/align.ts\n *\n * It contains some customizations to align based on the tags, and some custom options.\n */\n\nimport {\n Markers,\n} from 'comment-parser/lib/primitives';\nimport {\n rewireSource,\n} from 'comment-parser/lib/util';\n\nconst zeroWidth = {\n name: 0,\n start: 0,\n tag: 0,\n type: 0,\n};\n\nconst shouldAlign = (tags, index, source) => {\n const tag = source[index].tokens.tag.replace('@', '');\n const includesTag = tags.includes(tag);\n\n if (includesTag) {\n return true;\n }\n\n if (tag !== '') {\n return false;\n }\n\n for (let iterator = index; iterator >= 0; iterator--) {\n const previousTag = source[iterator].tokens.tag.replace('@', '');\n\n if (previousTag !== '') {\n if (tags.includes(previousTag)) {\n return true;\n }\n\n return false;\n }\n }\n\n return true;\n};\n\nconst getWidth = (tags) => {\n return (width, {tokens}, index, source) => {\n if (!shouldAlign(tags, index, source)) {\n return width;\n }\n\n return {\n name: Math.max(width.name, tokens.name.length),\n start: tokens.delimiter === Markers.start ? tokens.start.length : width.start,\n tag: Math.max(width.tag, tokens.tag.length),\n type: Math.max(width.type, tokens.type.length),\n };\n };\n};\n\nconst space = (len) => {\n return ''.padStart(len, ' ');\n};\n\nconst alignTransform = ({\n customSpacings,\n tags,\n indent,\n preserveMainDescriptionPostDelimiter,\n}) => {\n let intoTags = false;\n let width;\n\n const alignTokens = (tokens) => {\n const nothingAfter = {\n delim: false,\n name: false,\n tag: false,\n type: false,\n };\n\n if (tokens.description === '') {\n nothingAfter.name = true;\n tokens.postName = '';\n\n if (tokens.name === '') {\n nothingAfter.type = true;\n tokens.postType = '';\n\n if (tokens.type === '') {\n nothingAfter.tag = true;\n tokens.postTag = '';\n\n /* istanbul ignore next: Never happens because the !intoTags return. But it's here for consistency with the original align transform */\n if (tokens.tag === '') {\n nothingAfter.delim = true;\n }\n }\n }\n }\n\n // Todo: Avoid fixing alignment of blocks with multiline wrapping of type\n if (tokens.tag === '' && tokens.type) {\n return tokens;\n }\n\n const spacings = {\n postDelimiter: customSpacings?.postDelimiter || 1,\n postName: customSpacings?.postName || 1,\n postTag: customSpacings?.postTag || 1,\n postType: customSpacings?.postType || 1,\n };\n\n tokens.postDelimiter = nothingAfter.delim ? '' : space(spacings.postDelimiter);\n\n if (!nothingAfter.tag) {\n tokens.postTag = space(width.tag - tokens.tag.length + spacings.postTag);\n }\n if (!nothingAfter.type) {\n tokens.postType = space(width.type - tokens.type.length + spacings.postType);\n }\n if (!nothingAfter.name) {\n // If post name is empty for all lines (name width 0), don't add post name spacing.\n tokens.postName = width.name === 0 ? '' : space(width.name - tokens.name.length + spacings.postName);\n }\n\n return tokens;\n };\n\n const update = (line, index, source) => {\n const tokens = {...line.tokens};\n if (tokens.tag !== '') {\n intoTags = true;\n }\n\n const isEmpty =\n tokens.tag === '' &&\n tokens.name === '' &&\n tokens.type === '' &&\n tokens.description === '';\n\n // dangling '*/'\n if (tokens.end === Markers.end && isEmpty) {\n tokens.start = indent + ' ';\n\n return {\n ...line,\n tokens,\n };\n }\n\n /* eslint-disable indent */\n switch (tokens.delimiter) {\n case Markers.start:\n tokens.start = indent;\n break;\n case Markers.delim:\n tokens.start = indent + ' ';\n break;\n default:\n tokens.delimiter = '';\n\n // compensate delimiter\n tokens.start = indent + ' ';\n }\n /* eslint-enable */\n\n if (!intoTags) {\n if (tokens.description === '') {\n tokens.postDelimiter = tokens.postDelimiter === '\\r' ? '\\r' : '';\n } else if (!preserveMainDescriptionPostDelimiter) {\n tokens.postDelimiter = ' ';\n }\n\n return {\n ...line,\n tokens,\n };\n }\n\n // Not align.\n if (!shouldAlign(tags, index, source)) {\n return {\n ...line,\n tokens,\n };\n }\n\n return {\n ...line,\n tokens: alignTokens(tokens),\n };\n };\n\n return ({source, ...fields}) => {\n width = source.reduce(getWidth(tags), {...zeroWidth});\n\n return rewireSource({\n ...fields,\n source: source.map(update),\n });\n };\n};\n\nexport default alignTransform;\n"],"file":"alignTransform.js"}
package/package.json CHANGED
@@ -5,8 +5,8 @@
5
5
  "url": "http://gajus.com"
6
6
  },
7
7
  "dependencies": {
8
- "@es-joy/jsdoccomment": "^0.8.0",
9
- "comment-parser": "1.1.5",
8
+ "@es-joy/jsdoccomment": "^0.9.0-alpha.1",
9
+ "comment-parser": "1.1.6-beta.0",
10
10
  "debug": "^4.3.2",
11
11
  "esquery": "^1.4.0",
12
12
  "jsdoc-type-pratt-parser": "^1.0.4",
@@ -101,5 +101,5 @@
101
101
  "functions": 100,
102
102
  "statements": 100
103
103
  },
104
- "version": "35.4.2"
104
+ "version": "35.4.3"
105
105
  }