Skip to content

Commit 2544b12

Browse files
committed
fix(require-yields-description, require-next-description): handle multiline descriptions; fixes #1528
1 parent af006ab commit 2544b12

File tree

5 files changed

+29
-7
lines changed

5 files changed

+29
-7
lines changed

docs/rules/require-yields-description.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,11 @@ The following patterns are not considered problems:
3737
/**
3838
* @yields {SomeType} Has a description
3939
*/
40+
41+
/**
42+
* @yields
43+
* The results.
44+
*/
45+
export function *test1(): IterableIterator<string> { yield "hello"; }
4046
````
4147

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@
160160
"build": "node ./src/bin/buildEntryFileForTS.js && rimraf ./dist && NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && pnpm tsc-build && pnpm tsc-cjs",
161161
"attw": "attw --pack .",
162162
"check-docs": "node ./src/bin/generateDocs.js --check",
163-
"create-docs": "pnpm run create-options && node ./src/bin/generateDocs.js",
163+
"create-docs": "pnpm run create-options && node ./src/bin/generateDocs.js && pnpm ruleTypes",
164164
"create-rule": "node ./src/bin/generateRule.js",
165165
"create-options": "node ./src/bin/generateOptions.js",
166166
"install-offline": "pnpm install --prefer-offline --no-audit",

src/index-cjs.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ index.rules = {
147147
'require-next-description': buildForbidRuleDefinition({
148148
contexts: [
149149
{
150-
comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=""]))',
150+
comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=""]):not([description!=""]))',
151151
context: 'any',
152152
message: '@next should have a description',
153153
},
@@ -207,7 +207,7 @@ index.rules = {
207207
'require-yields-description': buildForbidRuleDefinition({
208208
contexts: [
209209
{
210-
comment: 'JsdocBlock:has(JsdocTag[tag=yields]:not([name!=""]))',
210+
comment: 'JsdocBlock:has(JsdocTag[tag=yields]:not([name!=""]):not([description!=""]))',
211211
context: 'any',
212212
message: '@yields should have a description',
213213
},

src/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ index.rules = {
153153
'require-next-description': buildForbidRuleDefinition({
154154
contexts: [
155155
{
156-
comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=""]))',
156+
comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=""]):not([description!=""]))',
157157
context: 'any',
158158
message: '@next should have a description',
159159
},
@@ -213,7 +213,7 @@ index.rules = {
213213
'require-yields-description': buildForbidRuleDefinition({
214214
contexts: [
215215
{
216-
comment: 'JsdocBlock:has(JsdocTag[tag=yields]:not([name!=""]))',
216+
comment: 'JsdocBlock:has(JsdocTag[tag=yields]:not([name!=""]):not([description!=""]))',
217217
context: 'any',
218218
message: '@yields should have a description',
219219
},

test/rules/assertions/requireYieldsDescription.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
export default {
1+
import {
2+
parser as typescriptEslintParser,
3+
} from 'typescript-eslint';
4+
5+
export default /** @type {import('../index.js').TestCases} */ ({
26
invalid: [
37
{
48
code: `
@@ -22,5 +26,17 @@ export default {
2226
*/
2327
`,
2428
},
29+
{
30+
code: `
31+
/**
32+
* @yields
33+
* The results.
34+
*/
35+
export function *test1(): IterableIterator<string> { yield "hello"; }
36+
`,
37+
languageOptions: {
38+
parser: typescriptEslintParser,
39+
},
40+
},
2541
],
26-
};
42+
});

0 commit comments

Comments
 (0)