@codeperfect/eslint-plugin 1.0.0
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/LICENSE +21 -0
- package/README.md +128 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts +16 -0
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -0
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +131 -0
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +48 -0
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -0
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.js +126 -0
- package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +40 -0
- package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +1 -0
- package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +90 -0
- package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts +11 -0
- package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -0
- package/dist/architecture/consistent-barrel-files/exports-only-rule.js +218 -0
- package/dist/architecture/consistent-barrel-files/index.d.ts +5 -0
- package/dist/architecture/consistent-barrel-files/index.d.ts.map +1 -0
- package/dist/architecture/consistent-barrel-files/index.js +4 -0
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts +11 -0
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -0
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +100 -0
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +40 -0
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +1 -0
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +90 -0
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts +65 -0
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -0
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +154 -0
- package/dist/architecture/consistent-barrel-files/rule.d.ts +11 -0
- package/dist/architecture/consistent-barrel-files/rule.d.ts.map +1 -0
- package/dist/architecture/consistent-barrel-files/rule.js +58 -0
- package/dist/architecture/consistent-barrel-files/test-helpers.d.ts +141 -0
- package/dist/architecture/consistent-barrel-files/test-helpers.d.ts.map +1 -0
- package/dist/architecture/consistent-barrel-files/test-helpers.js +229 -0
- package/dist/architecture/consistent-barrel-files/types.d.ts +25 -0
- package/dist/architecture/consistent-barrel-files/types.d.ts.map +1 -0
- package/dist/architecture/consistent-barrel-files/types.js +2 -0
- package/dist/architecture/index.d.ts +2 -0
- package/dist/architecture/index.d.ts.map +1 -0
- package/dist/architecture/index.js +2 -0
- package/dist/benchmark-rules.d.ts +83 -0
- package/dist/benchmark-rules.d.ts.map +1 -0
- package/dist/benchmark-rules.js +175 -0
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/codeperfect-plugin.d.ts +46 -0
- package/dist/codeperfect-plugin.d.ts.map +1 -0
- package/dist/codeperfect-plugin.js +29 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +3 -0
- package/dist/core/no-multiple-declarators/index.d.ts +2 -0
- package/dist/core/no-multiple-declarators/index.d.ts.map +1 -0
- package/dist/core/no-multiple-declarators/index.js +2 -0
- package/dist/core/no-multiple-declarators/rule.d.ts +4 -0
- package/dist/core/no-multiple-declarators/rule.d.ts.map +1 -0
- package/dist/core/no-multiple-declarators/rule.js +100 -0
- package/dist/core/prefer-interface-types/index.d.ts +2 -0
- package/dist/core/prefer-interface-types/index.d.ts.map +1 -0
- package/dist/core/prefer-interface-types/index.js +2 -0
- package/dist/core/prefer-interface-types/rule.d.ts +5 -0
- package/dist/core/prefer-interface-types/rule.d.ts.map +1 -0
- package/dist/core/prefer-interface-types/rule.js +145 -0
- package/dist/core/prefer-interface-types/test-helpers.d.ts +110 -0
- package/dist/core/prefer-interface-types/test-helpers.d.ts.map +1 -0
- package/dist/core/prefer-interface-types/test-helpers.js +116 -0
- package/dist/custom-rule-documentation.d.ts +36 -0
- package/dist/custom-rule-documentation.d.ts.map +1 -0
- package/dist/custom-rule-documentation.js +35 -0
- package/dist/custom-rules.d.ts +61 -0
- package/dist/custom-rules.d.ts.map +1 -0
- package/dist/custom-rules.js +70 -0
- package/dist/docs/index.d.ts +4 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +4 -0
- package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts +89 -0
- package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +1 -0
- package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.js +129 -0
- package/dist/docs/no-interface-member-docs/comment-utilities.d.ts +48 -0
- package/dist/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -0
- package/dist/docs/no-interface-member-docs/comment-utilities.js +146 -0
- package/dist/docs/no-interface-member-docs/index.d.ts +2 -0
- package/dist/docs/no-interface-member-docs/index.d.ts.map +1 -0
- package/dist/docs/no-interface-member-docs/index.js +2 -0
- package/dist/docs/no-interface-member-docs/parameter-tags.d.ts +13 -0
- package/dist/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -0
- package/dist/docs/no-interface-member-docs/parameter-tags.js +101 -0
- package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts +24 -0
- package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -0
- package/dist/docs/no-interface-member-docs/parameter-utilities.js +125 -0
- package/dist/docs/no-interface-member-docs/rule.d.ts +5 -0
- package/dist/docs/no-interface-member-docs/rule.d.ts.map +1 -0
- package/dist/docs/no-interface-member-docs/rule.js +168 -0
- package/dist/docs/no-interface-member-docs/test-helpers.d.ts +103 -0
- package/dist/docs/no-interface-member-docs/test-helpers.d.ts.map +1 -0
- package/dist/docs/no-interface-member-docs/test-helpers.js +157 -0
- package/dist/docs/no-interface-member-docs/types.d.ts +30 -0
- package/dist/docs/no-interface-member-docs/types.d.ts.map +1 -0
- package/dist/docs/no-interface-member-docs/types.js +2 -0
- package/dist/docs/require-example-language/empty-fence-fixes.d.ts +29 -0
- package/dist/docs/require-example-language/empty-fence-fixes.d.ts.map +1 -0
- package/dist/docs/require-example-language/empty-fence-fixes.js +169 -0
- package/dist/docs/require-example-language/example-utilities.d.ts +70 -0
- package/dist/docs/require-example-language/example-utilities.d.ts.map +1 -0
- package/dist/docs/require-example-language/example-utilities.js +76 -0
- package/dist/docs/require-example-language/examples.d.ts +36 -0
- package/dist/docs/require-example-language/examples.d.ts.map +1 -0
- package/dist/docs/require-example-language/examples.js +181 -0
- package/dist/docs/require-example-language/fixes.d.ts +49 -0
- package/dist/docs/require-example-language/fixes.d.ts.map +1 -0
- package/dist/docs/require-example-language/fixes.js +182 -0
- package/dist/docs/require-example-language/index.d.ts +3 -0
- package/dist/docs/require-example-language/index.d.ts.map +1 -0
- package/dist/docs/require-example-language/index.js +2 -0
- package/dist/docs/require-example-language/reporting.d.ts +60 -0
- package/dist/docs/require-example-language/reporting.d.ts.map +1 -0
- package/dist/docs/require-example-language/reporting.js +145 -0
- package/dist/docs/require-example-language/rule.d.ts +7 -0
- package/dist/docs/require-example-language/rule.d.ts.map +1 -0
- package/dist/docs/require-example-language/rule.js +34 -0
- package/dist/docs/require-example-language/types.d.ts +22 -0
- package/dist/docs/require-example-language/types.d.ts.map +1 -0
- package/dist/docs/require-example-language/types.js +2 -0
- package/dist/docs/single-line-jsdoc/index.d.ts +2 -0
- package/dist/docs/single-line-jsdoc/index.d.ts.map +1 -0
- package/dist/docs/single-line-jsdoc/index.js +2 -0
- package/dist/docs/single-line-jsdoc/rule.d.ts +5 -0
- package/dist/docs/single-line-jsdoc/rule.d.ts.map +1 -0
- package/dist/docs/single-line-jsdoc/rule.js +196 -0
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts +16 -0
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +1 -0
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.js +95 -0
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts +25 -0
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -0
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +140 -0
- package/dist/docs/test-helpers.d.ts +50 -0
- package/dist/docs/test-helpers.d.ts.map +1 -0
- package/dist/docs/test-helpers.js +107 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/presets.d.ts +10 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +50 -0
- package/dist/rules/index.d.ts +5 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +6 -0
- package/dist/testing/aaa/analyzer.d.ts +36 -0
- package/dist/testing/aaa/analyzer.d.ts.map +1 -0
- package/dist/testing/aaa/analyzer.js +490 -0
- package/dist/testing/aaa/index.d.ts +3 -0
- package/dist/testing/aaa/index.d.ts.map +1 -0
- package/dist/testing/aaa/index.js +2 -0
- package/dist/testing/aaa/types.d.ts +31 -0
- package/dist/testing/aaa/types.d.ts.map +1 -0
- package/dist/testing/aaa/types.js +2 -0
- package/dist/testing/assert-actual-expected-names/index.d.ts +2 -0
- package/dist/testing/assert-actual-expected-names/index.d.ts.map +1 -0
- package/dist/testing/assert-actual-expected-names/index.js +2 -0
- package/dist/testing/assert-actual-expected-names/rule.d.ts +4 -0
- package/dist/testing/assert-actual-expected-names/rule.d.ts.map +1 -0
- package/dist/testing/assert-actual-expected-names/rule.js +54 -0
- package/dist/testing/enforce-aaa-phase-purity/index.d.ts +2 -0
- package/dist/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -0
- package/dist/testing/enforce-aaa-phase-purity/index.js +2 -0
- package/dist/testing/enforce-aaa-phase-purity/rule.d.ts +4 -0
- package/dist/testing/enforce-aaa-phase-purity/rule.d.ts.map +1 -0
- package/dist/testing/enforce-aaa-phase-purity/rule.js +110 -0
- package/dist/testing/enforce-aaa-structure/index.d.ts +2 -0
- package/dist/testing/enforce-aaa-structure/index.d.ts.map +1 -0
- package/dist/testing/enforce-aaa-structure/index.js +2 -0
- package/dist/testing/enforce-aaa-structure/rule.d.ts +4 -0
- package/dist/testing/enforce-aaa-structure/rule.d.ts.map +1 -0
- package/dist/testing/enforce-aaa-structure/rule.js +48 -0
- package/dist/testing/index.d.ts +9 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +9 -0
- package/dist/testing/prefer-vi-mocked-import/fix.d.ts +16 -0
- package/dist/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -0
- package/dist/testing/prefer-vi-mocked-import/fix.js +224 -0
- package/dist/testing/prefer-vi-mocked-import/index.d.ts +2 -0
- package/dist/testing/prefer-vi-mocked-import/index.d.ts.map +1 -0
- package/dist/testing/prefer-vi-mocked-import/index.js +2 -0
- package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts +16 -0
- package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -0
- package/dist/testing/prefer-vi-mocked-import/match-bindings.js +52 -0
- package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts +16 -0
- package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -0
- package/dist/testing/prefer-vi-mocked-import/match-declarations.js +99 -0
- package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts +66 -0
- package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +1 -0
- package/dist/testing/prefer-vi-mocked-import/match-helpers.js +102 -0
- package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts +17 -0
- package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -0
- package/dist/testing/prefer-vi-mocked-import/match-imports.js +156 -0
- package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts +42 -0
- package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -0
- package/dist/testing/prefer-vi-mocked-import/match-rewrites.js +119 -0
- package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts +13 -0
- package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts.map +1 -0
- package/dist/testing/prefer-vi-mocked-import/match-walk.js +62 -0
- package/dist/testing/prefer-vi-mocked-import/match.d.ts +15 -0
- package/dist/testing/prefer-vi-mocked-import/match.d.ts.map +1 -0
- package/dist/testing/prefer-vi-mocked-import/match.js +193 -0
- package/dist/testing/prefer-vi-mocked-import/rule.d.ts +5 -0
- package/dist/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -0
- package/dist/testing/prefer-vi-mocked-import/rule.js +32 -0
- package/dist/testing/prefer-vi-mocked-import/types.d.ts +83 -0
- package/dist/testing/prefer-vi-mocked-import/types.d.ts.map +1 -0
- package/dist/testing/prefer-vi-mocked-import/types.js +2 -0
- package/dist/testing/require-aaa-sections/index.d.ts +2 -0
- package/dist/testing/require-aaa-sections/index.d.ts.map +1 -0
- package/dist/testing/require-aaa-sections/index.js +2 -0
- package/dist/testing/require-aaa-sections/rule.d.ts +4 -0
- package/dist/testing/require-aaa-sections/rule.d.ts.map +1 -0
- package/dist/testing/require-aaa-sections/rule.js +111 -0
- package/dist/testing/require-act-result-capture/index.d.ts +2 -0
- package/dist/testing/require-act-result-capture/index.d.ts.map +1 -0
- package/dist/testing/require-act-result-capture/index.js +2 -0
- package/dist/testing/require-act-result-capture/rule.d.ts +4 -0
- package/dist/testing/require-act-result-capture/rule.d.ts.map +1 -0
- package/dist/testing/require-act-result-capture/rule.js +34 -0
- package/dist/testing/require-test-companion/index.d.ts +3 -0
- package/dist/testing/require-test-companion/index.d.ts.map +1 -0
- package/dist/testing/require-test-companion/index.js +3 -0
- package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts +16 -0
- package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -0
- package/dist/testing/require-test-companion/require-test-companion-listeners.js +145 -0
- package/dist/testing/require-test-companion/require-test-companion-options.d.ts +54 -0
- package/dist/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -0
- package/dist/testing/require-test-companion/require-test-companion-options.js +112 -0
- package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts +51 -0
- package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +1 -0
- package/dist/testing/require-test-companion/require-test-companion-test-helpers.js +183 -0
- package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts +28 -0
- package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts.map +1 -0
- package/dist/testing/require-test-companion/require-test-companion-utilities.js +26 -0
- package/dist/testing/require-test-companion/rule.d.ts +5 -0
- package/dist/testing/require-test-companion/rule.d.ts.map +1 -0
- package/dist/testing/require-test-companion/rule.js +57 -0
- package/dist/testing/require-test-companion/types.d.ts +11 -0
- package/dist/testing/require-test-companion/types.d.ts.map +1 -0
- package/dist/testing/require-test-companion/types.js +2 -0
- package/dist/testing/single-act-statement/index.d.ts +2 -0
- package/dist/testing/single-act-statement/index.d.ts.map +1 -0
- package/dist/testing/single-act-statement/index.js +2 -0
- package/dist/testing/single-act-statement/rule.d.ts +4 -0
- package/dist/testing/single-act-statement/rule.d.ts.map +1 -0
- package/dist/testing/single-act-statement/rule.js +33 -0
- package/package.json +106 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { createRuleDocumentation } from "../../custom-rule-documentation";
|
|
2
|
+
import { normalizeMaxLineLength, reportIfSingleLine, } from "./single-line-jsdoc-utilities";
|
|
3
|
+
/**
|
|
4
|
+
* Resolves the token after a comment when available.
|
|
5
|
+
* @param sourceCode Source code accessors.
|
|
6
|
+
* @param comment Comment node to inspect.
|
|
7
|
+
* @returns Token range metadata when available.
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* getTokenAfterRange({} as SourceCodeAccess, {} as SourceComment);
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
const getTokenAfterRange = (sourceCode, comment) => {
|
|
14
|
+
if (typeof sourceCode.getTokenAfter !== "function") {
|
|
15
|
+
return void 0;
|
|
16
|
+
}
|
|
17
|
+
const tokenAfter = sourceCode.getTokenAfter(comment, {
|
|
18
|
+
includeComments: false,
|
|
19
|
+
});
|
|
20
|
+
if (tokenAfter?.range === void 0) {
|
|
21
|
+
return void 0;
|
|
22
|
+
}
|
|
23
|
+
return { range: tokenAfter.range };
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Function-like node types handled directly.
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* functionLikeTypes.has("TSFunctionType");
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
const functionLikeTypes = new Set([
|
|
33
|
+
"TSCallSignatureDeclaration",
|
|
34
|
+
"TSConstructSignatureDeclaration",
|
|
35
|
+
"TSFunctionType",
|
|
36
|
+
]);
|
|
37
|
+
/**
|
|
38
|
+
* Checks if a node is a function expression or arrow function.
|
|
39
|
+
* @param node Node to inspect.
|
|
40
|
+
* @returns True when the node is a function expression.
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* isFunctionExpression({ type: "FunctionExpression" } as EstreeNode);
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
const isFunctionExpression = (node) => node?.type === "FunctionExpression" || node?.type === "ArrowFunctionExpression";
|
|
47
|
+
/**
|
|
48
|
+
* Checks if a node is a function declaration or TS declaration signature.
|
|
49
|
+
* @param node Node to inspect.
|
|
50
|
+
* @returns True when the node is a function declaration.
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* isFunctionDeclaration({ type: "FunctionDeclaration" } as EstreeNode);
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
const isFunctionDeclaration = (node) => node?.type === "FunctionDeclaration" || node?.type === "TSDeclareFunction";
|
|
57
|
+
/**
|
|
58
|
+
* Checks if a node is a method-like declaration.
|
|
59
|
+
* @param node Node to inspect.
|
|
60
|
+
* @returns True when the node is a method-like declaration.
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* isMethodLike({ type: "MethodDefinition" } as EstreeNode);
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
const isMethodLike = (node) => node?.type === "MethodDefinition" || node?.type === "TSMethodSignature";
|
|
67
|
+
/**
|
|
68
|
+
* Checks if a node is a property with a function initializer.
|
|
69
|
+
* @param node Node to inspect.
|
|
70
|
+
* @returns True when the property value is a function.
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* isPropertyWithFunctionValue({ type: "Property" } as EstreeNode);
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
const isPropertyWithFunctionValue = (node) => {
|
|
77
|
+
if (node.type !== "PropertyDefinition" && node.type !== "Property") {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
const { value } = node;
|
|
81
|
+
return isFunctionExpression(value);
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Checks if a variable declaration contains a function initializer.
|
|
85
|
+
* @param node Node to inspect.
|
|
86
|
+
* @returns True when any initializer is a function.
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* isVariableWithFunctionInit({ type: "VariableDeclaration" } as EstreeNode);
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
const isVariableWithFunctionInit = (node) => {
|
|
93
|
+
if (node.type !== "VariableDeclaration") {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
const { declarations } = node;
|
|
97
|
+
const initialized = declarations ?? [];
|
|
98
|
+
return initialized.some((declaration) => isFunctionExpression(declaration.init));
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Checks if an export wraps a function-like declaration.
|
|
102
|
+
* @param node Node to inspect.
|
|
103
|
+
* @returns True when the exported declaration is function-like.
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* isExportedFunctionLike({ type: "ExportNamedDeclaration" } as EstreeNode);
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
const isExportedFunctionLike = (node) => {
|
|
110
|
+
if (node.type !== "ExportNamedDeclaration" &&
|
|
111
|
+
node.type !== "ExportDefaultDeclaration") {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
const { declaration } = node;
|
|
115
|
+
return isFunctionLikeNode(declaration);
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Checks if a node represents any supported function-like declaration.
|
|
119
|
+
* @param node Node to inspect.
|
|
120
|
+
* @returns True when the node is function-like.
|
|
121
|
+
* @example
|
|
122
|
+
* ```typescript
|
|
123
|
+
* isFunctionLikeNode({ type: "FunctionDeclaration" } as EstreeNode);
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
const isFunctionLikeNode = (node) => {
|
|
127
|
+
if (node === null || node === void 0) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
return (isFunctionDeclaration(node) ||
|
|
131
|
+
isFunctionExpression(node) ||
|
|
132
|
+
isMethodLike(node) ||
|
|
133
|
+
functionLikeTypes.has(node.type) ||
|
|
134
|
+
isPropertyWithFunctionValue(node) ||
|
|
135
|
+
isVariableWithFunctionInit(node) ||
|
|
136
|
+
isExportedFunctionLike(node));
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* Determines whether a JSDoc comment should be skipped for function targets.
|
|
140
|
+
* @param context Rule context.
|
|
141
|
+
* @param comment Comment node to inspect.
|
|
142
|
+
* @returns True when the comment targets a function-like node.
|
|
143
|
+
* @example
|
|
144
|
+
* ```typescript
|
|
145
|
+
* shouldSkipForFunction({} as Rule.RuleContext, {} as SourceComment);
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
const shouldSkipForFunction = (context, comment) => {
|
|
149
|
+
const sourceCode = context.sourceCode;
|
|
150
|
+
if (typeof sourceCode.getNodeByRangeIndex !== "function") {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
const tokenAfter = getTokenAfterRange(sourceCode, comment);
|
|
154
|
+
if (tokenAfter === void 0) {
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
const [rangeStart] = tokenAfter.range;
|
|
158
|
+
const node = sourceCode.getNodeByRangeIndex(rangeStart);
|
|
159
|
+
return isFunctionLikeNode(node);
|
|
160
|
+
};
|
|
161
|
+
/** Rule module enforcing single-line JSDoc when it fits. */
|
|
162
|
+
const singleLineJsdocRule = {
|
|
163
|
+
create(context) {
|
|
164
|
+
const { options, sourceCode } = context;
|
|
165
|
+
const maxLineLength = normalizeMaxLineLength(options);
|
|
166
|
+
const comments = sourceCode.getAllComments();
|
|
167
|
+
for (const comment of comments) {
|
|
168
|
+
if (!shouldSkipForFunction(context, comment)) {
|
|
169
|
+
reportIfSingleLine(context, comment, maxLineLength);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return {};
|
|
173
|
+
},
|
|
174
|
+
meta: {
|
|
175
|
+
docs: createRuleDocumentation("single-line-jsdoc", "Require JSDoc comments to use a single line when they fit."),
|
|
176
|
+
fixable: "code",
|
|
177
|
+
messages: {
|
|
178
|
+
singleLine: "Use a single-line JSDoc comment when it fits on one line.",
|
|
179
|
+
},
|
|
180
|
+
schema: [
|
|
181
|
+
{
|
|
182
|
+
additionalProperties: false,
|
|
183
|
+
properties: {
|
|
184
|
+
maxLineLength: {
|
|
185
|
+
minimum: 1,
|
|
186
|
+
type: "number",
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
type: "object",
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
type: "layout",
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
export { singleLineJsdocRule };
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb2NzL3NpbmdsZS1saW5lLWpzZG9jL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixrQkFBa0IsR0FDbkIsTUFBTSwrQkFBK0IsQ0FBQztBQTBEdkM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxDQUN6QixVQUE0QixFQUM1QixPQUFzQixFQUNNLEVBQUU7SUFDOUIsSUFBSSxPQUFPLFVBQVUsQ0FBQyxhQUFhLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDbkQsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUU7UUFDbkQsZUFBZSxFQUFFLEtBQUs7S0FDdkIsQ0FBQyxDQUFDO0lBRUgsSUFBSSxVQUFVLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDckMsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBUztJQUN4Qyw0QkFBNEI7SUFDNUIsaUNBQWlDO0lBQ2pDLGdCQUFnQjtDQUNqQixDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxJQUFlLEVBQVcsRUFBRSxDQUN4RCxJQUFJLEVBQUUsSUFBSSxLQUFLLG9CQUFvQixJQUFJLElBQUksRUFBRSxJQUFJLEtBQUsseUJBQXlCLENBQUM7QUFFbEY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHFC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RSxRQUFRO0tBQ2Y7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSB7IENvbW1lbnQgYXMgRXN0cmVlQ29tbWVudCwgTm9kZSBhcyBFc3RyZWVOb2RlIH0gZnJvbSBcImVzdHJlZVwiO1xuXG5pbXBvcnQgeyBjcmVhdGVSdWxlRG9jdW1lbnRhdGlvbiB9IGZyb20gXCIuLi8uLi9jdXN0b20tcnVsZS1kb2N1bWVudGF0aW9uXCI7XG5pbXBvcnQge1xuICBub3JtYWxpemVNYXhMaW5lTGVuZ3RoLFxuICByZXBvcnRJZlNpbmdsZUxpbmUsXG59IGZyb20gXCIuL3NpbmdsZS1saW5lLWpzZG9jLXV0aWxpdGllc1wiO1xuLyoqIFR5cGUgdW5pb24gZm9yIG5vZGVzIHRoYXQgbWF5IGJlIG1pc3NpbmcuICovXG50eXBlIE1heWJlTm9kZSA9IEVzdHJlZU5vZGUgfCBOb2RlV2l0aFR5cGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4vKiogU2hhcGUgZm9yIGV4cG9ydCBub2RlcyB0aGF0IHdyYXAgYSBkZWNsYXJhdGlvbi4gKi9cbmludGVyZmFjZSBOb2RlV2l0aERlY2xhcmF0aW9uIHtcbiAgLyoqIERlY2xhcmF0aW9uIHdyYXBwZWQgYnkgdGhlIGV4cG9ydC4gKi9cbiAgZGVjbGFyYXRpb24/OiBNYXliZU5vZGU7XG59XG4vKiogU2hhcGUgZm9yIG5vZGVzIHRoYXQgaGF2ZSBkZWNsYXJhdGlvbnMuICovXG5pbnRlcmZhY2UgTm9kZVdpdGhEZWNsYXJhdGlvbnMge1xuICAvKiogVmFyaWFibGUgZGVjbGFyYXRpb25zIGZvciBhIGRlY2xhcmF0aW9uIGxpc3QuICovXG4gIGRlY2xhcmF0aW9ucz86IFZhcmlhYmxlRGVjbGFyYXRpb25FbnRyeVtdO1xufVxuLyoqIFNoYXBlIGZvciBtaW5pbWFsIG5vZGVzIHRoYXQgb25seSBleHBvc2UgYSB0eXBlLiAqL1xuaW50ZXJmYWNlIE5vZGVXaXRoVHlwZSB7XG4gIC8qKiBOb2RlIHR5cGUgZGlzY3JpbWluYXRvci4gKi9cbiAgdHlwZTogc3RyaW5nO1xufVxuLyoqIFNoYXBlIGZvciBub2RlcyB0aGF0IGhhdmUgYSB2YWx1ZS4gKi9cbmludGVyZmFjZSBOb2RlV2l0aFZhbHVlIHtcbiAgLyoqIFZhbHVlIG5vZGUgdXNlZCBmb3IgcHJvcGVydHkgaW5pdGlhbGl6ZXJzLiAqL1xuICB2YWx1ZT86IE1heWJlTm9kZTtcbn1cbi8qKiBTb3VyY2VDb2RlIGFjY2Vzc29ycyB1c2VkIGJ5IHRoaXMgcnVsZS4gKi9cbmludGVyZmFjZSBTb3VyY2VDb2RlQWNjZXNzIHtcbiAgLyoqIFJldHVybnMgdGhlIG5vZGUgYXQgYSByYW5nZSBpbmRleC4gKi9cbiAgZ2V0Tm9kZUJ5UmFuZ2VJbmRleDogKGluZGV4OiBudW1iZXIpID0+IEVzdHJlZU5vZGUgfCBudWxsO1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBmaXJzdCB0b2tlbiBhZnRlciBhIGNvbW1lbnQuICovXG4gIGdldFRva2VuQWZ0ZXI6IChcbiAgICBub2RlOiBFc3RyZWVDb21tZW50LFxuICAgIG9wdGlvbnM/OiBUb2tlbkFmdGVyT3B0aW9ucyxcbiAgKSA9PiBudWxsIHwgVG9rZW5XaXRoT3B0aW9uYWxSYW5nZTtcbn1cbi8qKiBUeXBlIGFsaWFzIGZvciBjb21tZW50IG5vZGVzIHByb3ZpZGVkIGJ5IEVTTGludC4gKi9cbnR5cGUgU291cmNlQ29tbWVudCA9IEVzdHJlZUNvbW1lbnQ7XG4vKiogT3B0aW9ucyB1c2VkIHdoZW4gZmV0Y2hpbmcgdG9rZW5zIGFmdGVyIGNvbW1lbnRzLiAqL1xuaW50ZXJmYWNlIFRva2VuQWZ0ZXJPcHRpb25zIHtcbiAgLyoqIFdoZXRoZXIgdG8gaW5jbHVkZSBjb21tZW50IHRva2Vucy4gKi9cbiAgaW5jbHVkZUNvbW1lbnRzPzogYm9vbGVhbjtcbn1cbi8qKiBTaGFwZSBmb3IgdG9rZW5zIHRoYXQgbWF5IGluY2x1ZGUgYSByYW5nZS4gKi9cbmludGVyZmFjZSBUb2tlbldpdGhPcHRpb25hbFJhbmdlIHtcbiAgLyoqIFRva2VuIHJhbmdlIHVzZWQgZm9yIGxvb2t1cHMuICovXG4gIHJhbmdlPzogW251bWJlciwgbnVtYmVyXTtcbn1cbi8qKiBTaGFwZSBmb3IgdG9rZW5zIHdpdGggcmFuZ2UgbWV0YWRhdGEuICovXG5pbnRlcmZhY2UgVG9rZW5XaXRoUmFuZ2Uge1xuICAvKiogVG9rZW4gcmFuZ2UgdXNlZCBmb3IgbG9va3Vwcy4gKi9cbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl07XG59XG4vKiogU2hhcGUgZm9yIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGVudHJpZXMuICovXG5pbnRlcmZhY2UgVmFyaWFibGVEZWNsYXJhdGlvbkVudHJ5IHtcbiAgLyoqIE9wdGlvbmFsIGluaXRpYWxpemVyIGZvciB0aGUgZGVjbGFyYXRpb24uICovXG4gIGluaXQ/OiBNYXliZU5vZGU7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHRva2VuIGFmdGVyIGEgY29tbWVudCB3aGVuIGF2YWlsYWJsZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIFNvdXJjZSBjb2RlIGFjY2Vzc29ycy5cbiAqIEBwYXJhbSBjb21tZW50IENvbW1lbnQgbm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVG9rZW4gcmFuZ2UgbWV0YWRhdGEgd2hlbiBhdmFpbGFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0VG9rZW5BZnRlclJhbmdlKHt9IGFzIFNvdXJjZUNvZGVBY2Nlc3MsIHt9IGFzIFNvdXJjZUNvbW1lbnQpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFRva2VuQWZ0ZXJSYW5nZSA9IChcbiAgc291cmNlQ29kZTogU291cmNlQ29kZUFjY2VzcyxcbiAgY29tbWVudDogU291cmNlQ29tbWVudCxcbik6IFRva2VuV2l0aFJhbmdlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKHR5cGVvZiBzb3VyY2VDb2RlLmdldFRva2VuQWZ0ZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCB0b2tlbkFmdGVyID0gc291cmNlQ29kZS5nZXRUb2tlbkFmdGVyKGNvbW1lbnQsIHtcbiAgICBpbmNsdWRlQ29tbWVudHM6IGZhbHNlLFxuICB9KTtcblxuICBpZiAodG9rZW5BZnRlcj8ucmFuZ2UgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICByZXR1cm4geyByYW5nZTogdG9rZW5BZnRlci5yYW5nZSB9O1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbi1saWtlIG5vZGUgdHlwZXMgaGFuZGxlZCBkaXJlY3RseS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBmdW5jdGlvbkxpa2VUeXBlcy5oYXMoXCJUU0Z1bmN0aW9uVHlwZVwiKTtcbiAqIGBgYFxuICovXG5jb25zdCBmdW5jdGlvbkxpa2VUeXBlcyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIFwiVFNDYWxsU2lnbmF0dXJlRGVjbGFyYXRpb25cIixcbiAgXCJUU0NvbnN0cnVjdFNpZ25hdHVyZURlY2xhcmF0aW9uXCIsXG4gIFwiVFNGdW5jdGlvblR5cGVcIixcbl0pO1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIG5vZGUgaXMgYSBmdW5jdGlvbiBleHByZXNzaW9uIG9yIGFycm93IGZ1bmN0aW9uLlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBub2RlIGlzIGEgZnVuY3Rpb24gZXhwcmVzc2lvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc0Z1bmN0aW9uRXhwcmVzc2lvbih7IHR5cGU6IFwiRnVuY3Rpb25FeHByZXNzaW9uXCIgfSBhcyBFc3RyZWVOb2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0Z1bmN0aW9uRXhwcmVzc2lvbiA9IChub2RlOiBNYXliZU5vZGUpOiBib29sZWFuID0+XG4gIG5vZGU/LnR5cGUgPT09IFwiRnVuY3Rpb25FeHByZXNzaW9uXCIgfHwgbm9kZT8udHlwZSA9PT0gXCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiO1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIG5vZGUgaXMgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvciBUUyBkZWNsYXJhdGlvbiBzaWduYXR1cmUuXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIG5vZGUgaXMgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc0Z1bmN0aW9uRGVjbGFyYXRpb24oeyB0eXBlOiBcIkZ1bmN0aW9uRGVjbGFyYXRpb25cIiB9IGFzIEVzdHJlZU5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzRnVuY3Rpb25EZWNsYXJhdGlvbiA9IChub2RlOiBNYXliZU5vZGUpOiBib29sZWFuID0+XG4gIG5vZGU/LnR5cGUgPT09IFwiRnVuY3Rpb25EZWNsYXJhdGlvblwiIHx8IG5vZGU/LnR5cGUgPT09IFwiVFNEZWNsYXJlRnVuY3Rpb25cIjtcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBub2RlIGlzIGEgbWV0aG9kLWxpa2UgZGVjbGFyYXRpb24uXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIG5vZGUgaXMgYSBtZXRob2QtbGlrZSBkZWNsYXJhdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc01ldGhvZExpa2UoeyB0eXBlOiBcIk1ldGhvZERlZmluaXRpb25cIiB9IGFzIEVzdHJlZU5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTWV0aG9kTGlrZSA9IChub2RlOiBNYXliZU5vZGUpOiBib29sZWFuID0+XG4gIG5vZGU/LnR5cGUgPT09IFwiTWV0aG9kRGVmaW5pdGlvblwiIHx8IG5vZGU/LnR5cGUgPT09IFwiVFNNZXRob2RTaWduYXR1cmVcIjtcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBub2RlIGlzIGEgcHJvcGVydHkgd2l0aCBhIGZ1bmN0aW9uIGluaXRpYWxpemVyLlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBwcm9wZXJ0eSB2YWx1ZSBpcyBhIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzUHJvcGVydHlXaXRoRnVuY3Rpb25WYWx1ZSh7IHR5cGU6IFwiUHJvcGVydHlcIiB9IGFzIEVzdHJlZU5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzUHJvcGVydHlXaXRoRnVuY3Rpb25WYWx1ZSA9IChub2RlOiBFc3RyZWVOb2RlKTogYm9vbGVhbiA9PiB7XG4gIGlmIChub2RlLnR5cGUgIT09IFwiUHJvcGVydHlEZWZpbml0aW9uXCIgJiYgbm9kZS50eXBlICE9PSBcIlByb3BlcnR5XCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB7IHZhbHVlIH0gPSBub2RlIGFzIE5vZGVXaXRoVmFsdWU7XG5cbiAgcmV0dXJuIGlzRnVuY3Rpb25FeHByZXNzaW9uKHZhbHVlKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgdmFyaWFibGUgZGVjbGFyYXRpb24gY29udGFpbnMgYSBmdW5jdGlvbiBpbml0aWFsaXplci5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiBhbnkgaW5pdGlhbGl6ZXIgaXMgYSBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc1ZhcmlhYmxlV2l0aEZ1bmN0aW9uSW5pdCh7IHR5cGU6IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiIH0gYXMgRXN0cmVlTm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNWYXJpYWJsZVdpdGhGdW5jdGlvbkluaXQgPSAobm9kZTogRXN0cmVlTm9kZSk6IGJvb2xlYW4gPT4ge1xuICBpZiAobm9kZS50eXBlICE9PSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHsgZGVjbGFyYXRpb25zIH0gPSBub2RlIGFzIE5vZGVXaXRoRGVjbGFyYXRpb25zO1xuICBjb25zdCBpbml0aWFsaXplZCA9IGRlY2xhcmF0aW9ucyA/PyBbXTtcblxuICByZXR1cm4gaW5pdGlhbGl6ZWQuc29tZSgoZGVjbGFyYXRpb24pID0+XG4gICAgaXNGdW5jdGlvbkV4cHJlc3Npb24oZGVjbGFyYXRpb24uaW5pdCksXG4gICk7XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiBhbiBleHBvcnQgd3JhcHMgYSBmdW5jdGlvbi1saWtlIGRlY2xhcmF0aW9uLlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBleHBvcnRlZCBkZWNsYXJhdGlvbiBpcyBmdW5jdGlvbi1saWtlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzRXhwb3J0ZWRGdW5jdGlvbkxpa2UoeyB0eXBlOiBcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIiB9IGFzIEVzdHJlZU5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzRXhwb3J0ZWRGdW5jdGlvbkxpa2UgPSAobm9kZTogRXN0cmVlTm9kZSk6IGJvb2xlYW4gPT4ge1xuICBpZiAoXG4gICAgbm9kZS50eXBlICE9PSBcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIiAmJlxuICAgIG5vZGUudHlwZSAhPT0gXCJFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25cIlxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB7IGRlY2xhcmF0aW9uIH0gPSBub2RlIGFzIE5vZGVXaXRoRGVjbGFyYXRpb247XG5cbiAgcmV0dXJuIGlzRnVuY3Rpb25MaWtlTm9kZShkZWNsYXJhdGlvbik7XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIG5vZGUgcmVwcmVzZW50cyBhbnkgc3VwcG9ydGVkIGZ1bmN0aW9uLWxpa2UgZGVjbGFyYXRpb24uXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIG5vZGUgaXMgZnVuY3Rpb24tbGlrZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpc0Z1bmN0aW9uTGlrZU5vZGUoeyB0eXBlOiBcIkZ1bmN0aW9uRGVjbGFyYXRpb25cIiB9IGFzIEVzdHJlZU5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzRnVuY3Rpb25MaWtlTm9kZSA9IChub2RlOiBNYXliZU5vZGUpOiBib29sZWFuID0+IHtcbiAgaWYgKG5vZGUgPT09IG51bGwgfHwgbm9kZSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICBpc0Z1bmN0aW9uRGVjbGFyYXRpb24obm9kZSkgfHxcbiAgICBpc0Z1bmN0aW9uRXhwcmVzc2lvbihub2RlKSB8fFxuICAgIGlzTWV0aG9kTGlrZShub2RlKSB8fFxuICAgIGZ1bmN0aW9uTGlrZVR5cGVzLmhhcyhub2RlLnR5cGUpIHx8XG4gICAgaXNQcm9wZXJ0eVdpdGhGdW5jdGlvblZhbHVlKG5vZGUgYXMgRXN0cmVlTm9kZSkgfHxcbiAgICBpc1ZhcmlhYmxlV2l0aEZ1bmN0aW9uSW5pdChub2RlIGFzIEVzdHJlZU5vZGUpIHx8XG4gICAgaXNFeHBvcnRlZEZ1bmN0aW9uTGlrZShub2RlIGFzIEVzdHJlZU5vZGUpXG4gICk7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIEpTRG9jIGNvbW1lbnQgc2hvdWxkIGJlIHNraXBwZWQgZm9yIGZ1bmN0aW9uIHRhcmdldHMuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGNvbnRleHQuXG4gKiBAcGFyYW0gY29tbWVudCBDb21tZW50IG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgY29tbWVudCB0YXJnZXRzIGEgZnVuY3Rpb24tbGlrZSBub2RlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHNob3VsZFNraXBGb3JGdW5jdGlvbih7fSBhcyBSdWxlLlJ1bGVDb250ZXh0LCB7fSBhcyBTb3VyY2VDb21tZW50KTtcbiAqIGBgYFxuICovXG5jb25zdCBzaG91bGRTa2lwRm9yRnVuY3Rpb24gPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIGNvbW1lbnQ6IFNvdXJjZUNvbW1lbnQsXG4pOiBib29sZWFuID0+IHtcbiAgY29uc3Qgc291cmNlQ29kZSA9IGNvbnRleHQuc291cmNlQ29kZSBhcyBTb3VyY2VDb2RlQWNjZXNzO1xuICBpZiAodHlwZW9mIHNvdXJjZUNvZGUuZ2V0Tm9kZUJ5UmFuZ2VJbmRleCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgdG9rZW5BZnRlciA9IGdldFRva2VuQWZ0ZXJSYW5nZShzb3VyY2VDb2RlLCBjb21tZW50KTtcbiAgaWYgKHRva2VuQWZ0ZXIgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IFtyYW5nZVN0YXJ0XSA9IHRva2VuQWZ0ZXIucmFuZ2U7XG4gIGNvbnN0IG5vZGUgPSBzb3VyY2VDb2RlLmdldE5vZGVCeVJhbmdlSW5kZXgocmFuZ2VTdGFydCk7XG4gIHJldHVybiBpc0Z1bmN0aW9uTGlrZU5vZGUobm9kZSk7XG59O1xuXG4vKiogUnVsZSBtb2R1bGUgZW5mb3JjaW5nIHNpbmdsZS1saW5lIEpTRG9jIHdoZW4gaXQgZml0cy4gKi9cbmNvbnN0IHNpbmdsZUxpbmVKc2RvY1J1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciB7XG4gICAgY29uc3QgeyBvcHRpb25zLCBzb3VyY2VDb2RlIH0gPSBjb250ZXh0O1xuICAgIGNvbnN0IG1heExpbmVMZW5ndGggPSBub3JtYWxpemVNYXhMaW5lTGVuZ3RoKG9wdGlvbnMpO1xuXG4gICAgY29uc3QgY29tbWVudHMgPSBzb3VyY2VDb2RlLmdldEFsbENvbW1lbnRzKCk7XG5cbiAgICBmb3IgKGNvbnN0IGNvbW1lbnQgb2YgY29tbWVudHMpIHtcbiAgICAgIGlmICghc2hvdWxkU2tpcEZvckZ1bmN0aW9uKGNvbnRleHQsIGNvbW1lbnQpKSB7XG4gICAgICAgIHJlcG9ydElmU2luZ2xlTGluZShjb250ZXh0LCBjb21tZW50LCBtYXhMaW5lTGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge307XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiBjcmVhdGVSdWxlRG9jdW1lbnRhdGlvbihcInNpbmdsZS1saW5lLWpzZG9jXCIsIFwiUmVxdWlyZSBKU0RvYyBjb21tZW50cyB0byB1c2UgYSBzaW5nbGUgbGluZSB3aGVuIHRoZXkgZml0LlwiKSxcbiAgICBmaXhhYmxlOiBcImNvZGVcIixcbiAgICBtZXNzYWdlczoge1xuICAgICAgc2luZ2xlTGluZTogXCJVc2UgYSBzaW5nbGUtbGluZSBKU0RvYyBjb21tZW50IHdoZW4gaXQgZml0cyBvbiBvbmUgbGluZS5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBtYXhMaW5lTGVuZ3RoOiB7XG4gICAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHR5cGU6IFwibGF5b3V0XCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBzaW5nbGVMaW5lSnNkb2NSdWxlIH07Il19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
/** Type definition for rule data. */
|
|
3
|
+
type Comment = ReturnType<Rule.RuleContext["sourceCode"]["getAllComments"]>[number];
|
|
4
|
+
/**
|
|
5
|
+
* Gets getCollapsedContent.
|
|
6
|
+
* @param comment Input comment value.
|
|
7
|
+
* @returns Return value output.
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* getCollapsedContent();
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
declare const getCollapsedContent: (comment: Comment) => string | undefined;
|
|
14
|
+
export { getCollapsedContent };
|
|
15
|
+
export type { Comment };
|
|
16
|
+
//# sourceMappingURL=single-line-jsdoc-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-line-jsdoc-content.d.ts","sourceRoot":"","sources":["../../../src/docs/single-line-jsdoc/single-line-jsdoc-content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,qCAAqC;AACrC,KAAK,OAAO,GAAG,UAAU,CACvB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,CACjD,CAAC,MAAM,CAAC,CAAC;AAyFV;;;;;;;;GAQG;AACH,QAAA,MAAM,mBAAmB,GAAI,SAAS,OAAO,KAAG,MAAM,GAAG,SAYxD,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAC/B,YAAY,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines stripJsdocLine.
|
|
3
|
+
* @param line Input line value.
|
|
4
|
+
* @returns Return value output.
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* stripJsdocLine();
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
const stripJsdocLine = (line) => line.replace(/^\s*\*? ?/u, "").trimEnd();
|
|
11
|
+
/**
|
|
12
|
+
* Defines trimEmptyEdges.
|
|
13
|
+
* @param lines Input lines value.
|
|
14
|
+
* @returns Return value output.
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* trimEmptyEdges();
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
const trimEmptyEdges = (lines) => {
|
|
21
|
+
let start = 0;
|
|
22
|
+
let end = lines.length - 1;
|
|
23
|
+
while (start <= end && lines[start]?.length === 0) {
|
|
24
|
+
start += 1;
|
|
25
|
+
}
|
|
26
|
+
while (end >= start && lines[end]?.length === 0) {
|
|
27
|
+
end -= 1;
|
|
28
|
+
}
|
|
29
|
+
return lines.slice(start, end + 1);
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Gets getContentLines.
|
|
33
|
+
* @param commentValue Input commentValue value.
|
|
34
|
+
* @returns Return value output.
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* getContentLines();
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
const getContentLines = (commentValue) => {
|
|
41
|
+
const lines = commentValue
|
|
42
|
+
.split(/\r?\n/u)
|
|
43
|
+
.map((line) => stripJsdocLine(line))
|
|
44
|
+
.map((line) => line.trim());
|
|
45
|
+
return trimEmptyEdges(lines);
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Checks shouldSkipContent.
|
|
49
|
+
* @param lines Input lines value.
|
|
50
|
+
* @returns Return value output.
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* shouldSkipContent();
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
const shouldSkipContent = (lines) => {
|
|
57
|
+
if (lines.length === 0) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
if (lines.some((line) => line.length === 0)) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
return lines.some((line) => line.startsWith("@"));
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Defines collapseContent.
|
|
67
|
+
* @param lines Input lines value.
|
|
68
|
+
* @returns Return value output.
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* collapseContent();
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
const collapseContent = (lines) => lines.join(" ").replaceAll(/\s+/gu, " ").trim();
|
|
75
|
+
/**
|
|
76
|
+
* Gets getCollapsedContent.
|
|
77
|
+
* @param comment Input comment value.
|
|
78
|
+
* @returns Return value output.
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* getCollapsedContent();
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
const getCollapsedContent = (comment) => {
|
|
85
|
+
const contentLines = getContentLines(comment.value);
|
|
86
|
+
if (shouldSkipContent(contentLines)) {
|
|
87
|
+
return void 0;
|
|
88
|
+
}
|
|
89
|
+
if (contentLines.length !== 1) {
|
|
90
|
+
return void 0;
|
|
91
|
+
}
|
|
92
|
+
return collapseContent(contentLines);
|
|
93
|
+
};
|
|
94
|
+
export { getCollapsedContent };
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWxpbmUtanNkb2MtY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb2NzL3NpbmdsZS1saW5lLWpzZG9jL3NpbmdsZS1saW5lLWpzZG9jLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0E7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBVSxFQUFFLENBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRTNDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFlLEVBQVksRUFBRTtJQUNuRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUUzQixPQUFPLEtBQUssSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sR0FBRyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2hELEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDckMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGVBQWUsR0FBRyxDQUFDLFlBQW9CLEVBQVksRUFBRTtJQUN6RCxNQUFNLEtBQUssR0FBRyxZQUFZO1NBQ3ZCLEtBQUssQ0FBQyxRQUFRLENBQUM7U0FDZixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTlCLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWUsRUFBVyxFQUFFO0lBQ3JELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBZSxFQUFVLEVBQUUsQ0FDbEQsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBRWxEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLE9BQWdCLEVBQXNCLEVBQUU7SUFDbkUsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVwRCxJQUFJLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDcEMsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIENvbW1lbnQgPSBSZXR1cm5UeXBlPFxuICBSdWxlLlJ1bGVDb250ZXh0W1wic291cmNlQ29kZVwiXVtcImdldEFsbENvbW1lbnRzXCJdXG4+W251bWJlcl07XG5cbi8qKlxuICogRGVmaW5lcyBzdHJpcEpzZG9jTGluZS5cbiAqIEBwYXJhbSBsaW5lIElucHV0IGxpbmUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHN0cmlwSnNkb2NMaW5lKCk7XG4gKiBgYGBcbiAqL1xuY29uc3Qgc3RyaXBKc2RvY0xpbmUgPSAobGluZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIGxpbmUucmVwbGFjZSgvXlxccypcXCo/ID8vdSwgXCJcIikudHJpbUVuZCgpO1xuXG4vKipcbiAqIERlZmluZXMgdHJpbUVtcHR5RWRnZXMuXG4gKiBAcGFyYW0gbGluZXMgSW5wdXQgbGluZXMgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHRyaW1FbXB0eUVkZ2VzKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgdHJpbUVtcHR5RWRnZXMgPSAobGluZXM6IHN0cmluZ1tdKTogc3RyaW5nW10gPT4ge1xuICBsZXQgc3RhcnQgPSAwO1xuICBsZXQgZW5kID0gbGluZXMubGVuZ3RoIC0gMTtcblxuICB3aGlsZSAoc3RhcnQgPD0gZW5kICYmIGxpbmVzW3N0YXJ0XT8ubGVuZ3RoID09PSAwKSB7XG4gICAgc3RhcnQgKz0gMTtcbiAgfVxuXG4gIHdoaWxlIChlbmQgPj0gc3RhcnQgJiYgbGluZXNbZW5kXT8ubGVuZ3RoID09PSAwKSB7XG4gICAgZW5kIC09IDE7XG4gIH1cblxuICByZXR1cm4gbGluZXMuc2xpY2Uoc3RhcnQsIGVuZCArIDEpO1xufTtcblxuLyoqXG4gKiBHZXRzIGdldENvbnRlbnRMaW5lcy5cbiAqIEBwYXJhbSBjb21tZW50VmFsdWUgSW5wdXQgY29tbWVudFZhbHVlIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBnZXRDb250ZW50TGluZXMoKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRDb250ZW50TGluZXMgPSAoY29tbWVudFZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGxpbmVzID0gY29tbWVudFZhbHVlXG4gICAgLnNwbGl0KC9cXHI/XFxuL3UpXG4gICAgLm1hcCgobGluZSkgPT4gc3RyaXBKc2RvY0xpbmUobGluZSkpXG4gICAgLm1hcCgobGluZSkgPT4gbGluZS50cmltKCkpO1xuXG4gIHJldHVybiB0cmltRW1wdHlFZGdlcyhsaW5lcyk7XG59O1xuXG4vKipcbiAqIENoZWNrcyBzaG91bGRTa2lwQ29udGVudC5cbiAqIEBwYXJhbSBsaW5lcyBJbnB1dCBsaW5lcyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogc2hvdWxkU2tpcENvbnRlbnQoKTtcbiAqIGBgYFxuICovXG5jb25zdCBzaG91bGRTa2lwQ29udGVudCA9IChsaW5lczogc3RyaW5nW10pOiBib29sZWFuID0+IHtcbiAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKGxpbmVzLnNvbWUoKGxpbmUpID0+IGxpbmUubGVuZ3RoID09PSAwKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGxpbmVzLnNvbWUoKGxpbmUpID0+IGxpbmUuc3RhcnRzV2l0aChcIkBcIikpO1xufTtcblxuLyoqXG4gKiBEZWZpbmVzIGNvbGxhcHNlQ29udGVudC5cbiAqIEBwYXJhbSBsaW5lcyBJbnB1dCBsaW5lcyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29sbGFwc2VDb250ZW50KCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY29sbGFwc2VDb250ZW50ID0gKGxpbmVzOiBzdHJpbmdbXSk6IHN0cmluZyA9PlxuICBsaW5lcy5qb2luKFwiIFwiKS5yZXBsYWNlQWxsKC9cXHMrL2d1LCBcIiBcIikudHJpbSgpO1xuXG4vKipcbiAqIEdldHMgZ2V0Q29sbGFwc2VkQ29udGVudC5cbiAqIEBwYXJhbSBjb21tZW50IElucHV0IGNvbW1lbnQgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldENvbGxhcHNlZENvbnRlbnQoKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRDb2xsYXBzZWRDb250ZW50ID0gKGNvbW1lbnQ6IENvbW1lbnQpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBjb250ZW50TGluZXMgPSBnZXRDb250ZW50TGluZXMoY29tbWVudC52YWx1ZSk7XG5cbiAgaWYgKHNob3VsZFNraXBDb250ZW50KGNvbnRlbnRMaW5lcykpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgaWYgKGNvbnRlbnRMaW5lcy5sZW5ndGggIT09IDEpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgcmV0dXJuIGNvbGxhcHNlQ29udGVudChjb250ZW50TGluZXMpO1xufTtcblxuZXhwb3J0IHsgZ2V0Q29sbGFwc2VkQ29udGVudCB9O1xuZXhwb3J0IHR5cGUgeyBDb21tZW50IH07XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
import type { Comment } from "./single-line-jsdoc-content";
|
|
3
|
+
/**
|
|
4
|
+
* Normalizes normalizeMaxLineLength.
|
|
5
|
+
* @param options Input options value.
|
|
6
|
+
* @returns Return value output.
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* normalizeMaxLineLength();
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
declare const normalizeMaxLineLength: (options: readonly unknown[]) => number;
|
|
13
|
+
/**
|
|
14
|
+
* Reports a comment when it can be collapsed to a single line.
|
|
15
|
+
* @param context Input context value.
|
|
16
|
+
* @param comment Input comment value.
|
|
17
|
+
* @param maxLineLength Input maxLineLength value.
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* reportIfSingleLine(context, comment, 80);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
declare const reportIfSingleLine: (context: Rule.RuleContext, comment: Comment, maxLineLength: number) => void;
|
|
24
|
+
export { normalizeMaxLineLength, reportIfSingleLine };
|
|
25
|
+
//# sourceMappingURL=single-line-jsdoc-utilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-line-jsdoc-utilities.d.ts","sourceRoot":"","sources":["../../../src/docs/single-line-jsdoc/single-line-jsdoc-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAa3D;;;;;;;;GAQG;AACH,QAAA,MAAM,sBAAsB,GAAI,SAAS,SAAS,OAAO,EAAE,KAAG,MAU7D,CAAC;AAiHF;;;;;;;;;GASG;AACH,QAAA,MAAM,kBAAkB,GACtB,SAAS,IAAI,CAAC,WAAW,EACzB,SAAS,OAAO,EAChB,eAAe,MAAM,KACpB,IAsBF,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { getCollapsedContent } from "./single-line-jsdoc-content";
|
|
2
|
+
/** Default value used by this module. */
|
|
3
|
+
const DEFAULT_MAX_LINE_LENGTH = 80;
|
|
4
|
+
/**
|
|
5
|
+
* Normalizes normalizeMaxLineLength.
|
|
6
|
+
* @param options Input options value.
|
|
7
|
+
* @returns Return value output.
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* normalizeMaxLineLength();
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
const normalizeMaxLineLength = (options) => {
|
|
14
|
+
const rawOptions = options[0];
|
|
15
|
+
const maxLineLength = rawOptions?.maxLineLength;
|
|
16
|
+
if (typeof maxLineLength === "number" && Number.isFinite(maxLineLength)) {
|
|
17
|
+
const normalized = Math.floor(maxLineLength);
|
|
18
|
+
return normalized > 0 ? normalized : DEFAULT_MAX_LINE_LENGTH;
|
|
19
|
+
}
|
|
20
|
+
return DEFAULT_MAX_LINE_LENGTH;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Checks isMultilineComment.
|
|
24
|
+
* @param comment Input comment value.
|
|
25
|
+
* @returns Return value output.
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* isMultilineComment();
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
const isMultilineComment = (comment) => {
|
|
32
|
+
const { loc, value } = comment;
|
|
33
|
+
if (loc === null || loc === void 0) {
|
|
34
|
+
return /\r|\n/u.test(value);
|
|
35
|
+
}
|
|
36
|
+
return loc.start.line !== loc.end.line;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Build a single-line JSDoc string from content.
|
|
40
|
+
* @param content Input content value.
|
|
41
|
+
* @returns Return value output.
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const text = buildSingleLineText("ok");
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
const buildSingleLineText = (content) => `/** ${content} */`;
|
|
48
|
+
/**
|
|
49
|
+
* Creates a fixer for replacing a JSDoc range.
|
|
50
|
+
* @param range Input range value.
|
|
51
|
+
* @param replacementText Input replacementText value.
|
|
52
|
+
* @returns Fixer function for ESLint.
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* const fixer = createFix([0, 1], "/** ok *\\/");
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
const createFix = (range, replacementText) => {
|
|
59
|
+
return (fixer) => fixer.replaceTextRange(range, replacementText);
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Checks isJsdocComment.
|
|
63
|
+
* @param comment Input comment value.
|
|
64
|
+
* @returns Return value output.
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* isJsdocComment();
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
const isJsdocComment = (comment) => comment.type === "Block" && comment.value.startsWith("*");
|
|
71
|
+
/**
|
|
72
|
+
* Gets getStartColumn.
|
|
73
|
+
* @param comment Input comment value.
|
|
74
|
+
* @returns Return value output.
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* getStartColumn();
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
const getStartColumn = (comment) => {
|
|
81
|
+
const { loc } = comment;
|
|
82
|
+
if (loc === null || loc === void 0) {
|
|
83
|
+
return void 0;
|
|
84
|
+
}
|
|
85
|
+
return loc.start.column;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Builds a single-line replacement when it fits.
|
|
89
|
+
* @param comment Input comment value.
|
|
90
|
+
* @param maxLineLength Input maxLineLength value.
|
|
91
|
+
* @returns Replacement text when available.
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* const text = getSingleLineReplacement(comment, 80);
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
const getSingleLineReplacement = (comment, maxLineLength) => {
|
|
98
|
+
if (!isMultilineComment(comment)) {
|
|
99
|
+
return void 0;
|
|
100
|
+
}
|
|
101
|
+
const content = getCollapsedContent(comment);
|
|
102
|
+
const startColumn = getStartColumn(comment);
|
|
103
|
+
if (content === void 0 || startColumn === void 0) {
|
|
104
|
+
return void 0;
|
|
105
|
+
}
|
|
106
|
+
const singleLineText = buildSingleLineText(content);
|
|
107
|
+
return startColumn + singleLineText.length > maxLineLength
|
|
108
|
+
? void 0
|
|
109
|
+
: singleLineText;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Reports a comment when it can be collapsed to a single line.
|
|
113
|
+
* @param context Input context value.
|
|
114
|
+
* @param comment Input comment value.
|
|
115
|
+
* @param maxLineLength Input maxLineLength value.
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* reportIfSingleLine(context, comment, 80);
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
const reportIfSingleLine = (context, comment, maxLineLength) => {
|
|
122
|
+
if (!isJsdocComment(comment)) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const singleLineText = getSingleLineReplacement(comment, maxLineLength);
|
|
126
|
+
if (singleLineText === void 0) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const { loc, range } = comment;
|
|
130
|
+
if (loc === null || loc === void 0 || range === void 0) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
context.report({
|
|
134
|
+
fix: createFix(range, singleLineText),
|
|
135
|
+
loc,
|
|
136
|
+
messageId: "singleLine",
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
export { normalizeMaxLineLength, reportIfSingleLine };
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWxpbmUtanNkb2MtdXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RvY3Mvc2luZ2xlLWxpbmUtanNkb2Mvc2luZ2xlLWxpbmUtanNkb2MtdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFLHlDQUF5QztBQUN6QyxNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQVFuQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxPQUEyQixFQUFVLEVBQUU7SUFDckUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBdUMsQ0FBQztJQUNwRSxNQUFNLGFBQWEsR0FBRyxVQUFVLEVBQUUsYUFBYSxDQUFDO0lBRWhELElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUN4RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztJQUMvRCxDQUFDO0lBRUQsT0FBTyx1QkFBdUIsQ0FBQztBQUNqQyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxPQUFnQixFQUFXLEVBQUU7SUFDdkQsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFL0IsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQs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QUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1lbnQgfSBmcm9tIFwiLi9zaW5nbGUtbGluZS1qc2RvYy1jb250ZW50XCI7XG5cbmltcG9ydCB7IGdldENvbGxhcHNlZENvbnRlbnQgfSBmcm9tIFwiLi9zaW5nbGUtbGluZS1qc2RvYy1jb250ZW50XCI7XG5cbi8qKiBEZWZhdWx0IHZhbHVlIHVzZWQgYnkgdGhpcyBtb2R1bGUuICovXG5jb25zdCBERUZBVUxUX01BWF9MSU5FX0xFTkdUSCA9IDgwO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgU2luZ2xlTGluZUpzZG9jT3B0aW9ucyB7XG4gIC8qKiBNYXhMaW5lTGVuZ3RoIGhlbHBlciB2YWx1ZS4gKi9cbiAgbWF4TGluZUxlbmd0aD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIG5vcm1hbGl6ZU1heExpbmVMZW5ndGguXG4gKiBAcGFyYW0gb3B0aW9ucyBJbnB1dCBvcHRpb25zIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBub3JtYWxpemVNYXhMaW5lTGVuZ3RoKCk7XG4gKiBgYGBcbiAqL1xuY29uc3Qgbm9ybWFsaXplTWF4TGluZUxlbmd0aCA9IChvcHRpb25zOiByZWFkb25seSB1bmtub3duW10pOiBudW1iZXIgPT4ge1xuICBjb25zdCByYXdPcHRpb25zID0gb3B0aW9uc1swXSBhcyBTaW5nbGVMaW5lSnNkb2NPcHRpb25zIHwgdW5kZWZpbmVkO1xuICBjb25zdCBtYXhMaW5lTGVuZ3RoID0gcmF3T3B0aW9ucz8ubWF4TGluZUxlbmd0aDtcblxuICBpZiAodHlwZW9mIG1heExpbmVMZW5ndGggPT09IFwibnVtYmVyXCIgJiYgTnVtYmVyLmlzRmluaXRlKG1heExpbmVMZW5ndGgpKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IE1hdGguZmxvb3IobWF4TGluZUxlbmd0aCk7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQgPiAwID8gbm9ybWFsaXplZCA6IERFRkFVTFRfTUFYX0xJTkVfTEVOR1RIO1xuICB9XG5cbiAgcmV0dXJuIERFRkFVTFRfTUFYX0xJTkVfTEVOR1RIO1xufTtcblxuLyoqXG4gKiBDaGVja3MgaXNNdWx0aWxpbmVDb21tZW50LlxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXNNdWx0aWxpbmVDb21tZW50KCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNNdWx0aWxpbmVDb21tZW50ID0gKGNvbW1lbnQ6IENvbW1lbnQpOiBib29sZWFuID0+IHtcbiAgY29uc3QgeyBsb2MsIHZhbHVlIH0gPSBjb21tZW50O1xuXG4gIGlmIChsb2MgPT09IG51bGwgfHwgbG9jID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gL1xccnxcXG4vdS50ZXN0KHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiBsb2Muc3RhcnQubGluZSAhPT0gbG9jLmVuZC5saW5lO1xufTtcblxuLyoqXG4gKiBCdWlsZCBhIHNpbmdsZS1saW5lIEpTRG9jIHN0cmluZyBmcm9tIGNvbnRlbnQuXG4gKiBAcGFyYW0gY29udGVudCBJbnB1dCBjb250ZW50IHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0ZXh0ID0gYnVpbGRTaW5nbGVMaW5lVGV4dChcIm9rXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGJ1aWxkU2luZ2xlTGluZVRleHQgPSAoY29udGVudDogc3RyaW5nKTogc3RyaW5nID0+IGAvKiogJHtjb250ZW50fSAqL2A7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZpeGVyIGZvciByZXBsYWNpbmcgYSBKU0RvYyByYW5nZS5cbiAqIEBwYXJhbSByYW5nZSBJbnB1dCByYW5nZSB2YWx1ZS5cbiAqIEBwYXJhbSByZXBsYWNlbWVudFRleHQgSW5wdXQgcmVwbGFjZW1lbnRUZXh0IHZhbHVlLlxuICogQHJldHVybnMgRml4ZXIgZnVuY3Rpb24gZm9yIEVTTGludC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlciA9IGNyZWF0ZUZpeChbMCwgMV0sIFwiLyoqIG9rICpcXFxcL1wiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVGaXggPSAoXG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdLFxuICByZXBsYWNlbWVudFRleHQ6IHN0cmluZyxcbik6IFJ1bGUuUmVwb3J0Rml4ZXIgPT4ge1xuICByZXR1cm4gKGZpeGVyOiBSdWxlLlJ1bGVGaXhlcik6IFJ1bGUuRml4ID0+XG4gICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShyYW5nZSwgcmVwbGFjZW1lbnRUZXh0KTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlzSnNkb2NDb21tZW50LlxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXNKc2RvY0NvbW1lbnQoKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0pzZG9jQ29tbWVudCA9IChjb21tZW50OiBDb21tZW50KTogYm9vbGVhbiA9PlxuICBjb21tZW50LnR5cGUgPT09IFwiQmxvY2tcIiAmJiBjb21tZW50LnZhbHVlLnN0YXJ0c1dpdGgoXCIqXCIpO1xuXG4vKipcbiAqIEdldHMgZ2V0U3RhcnRDb2x1bW4uXG4gKiBAcGFyYW0gY29tbWVudCBJbnB1dCBjb21tZW50IHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBnZXRTdGFydENvbHVtbigpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFN0YXJ0Q29sdW1uID0gKGNvbW1lbnQ6IENvbW1lbnQpOiBudW1iZXIgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB7IGxvYyB9ID0gY29tbWVudDtcblxuICBpZiAobG9jID09PSBudWxsIHx8IGxvYyA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIHJldHVybiBsb2Muc3RhcnQuY29sdW1uO1xufTtcblxuLyoqXG4gKiBCdWlsZHMgYSBzaW5nbGUtbGluZSByZXBsYWNlbWVudCB3aGVuIGl0IGZpdHMuXG4gKiBAcGFyYW0gY29tbWVudCBJbnB1dCBjb21tZW50IHZhbHVlLlxuICogQHBhcmFtIG1heExpbmVMZW5ndGggSW5wdXQgbWF4TGluZUxlbmd0aCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJlcGxhY2VtZW50IHRleHQgd2hlbiBhdmFpbGFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgdGV4dCA9IGdldFNpbmdsZUxpbmVSZXBsYWNlbWVudChjb21tZW50LCA4MCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0U2luZ2xlTGluZVJlcGxhY2VtZW50ID0gKFxuICBjb21tZW50OiBDb21tZW50LFxuICBtYXhMaW5lTGVuZ3RoOiBudW1iZXIsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAoIWlzTXVsdGlsaW5lQ29tbWVudChjb21tZW50KSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBjb250ZW50ID0gZ2V0Q29sbGFwc2VkQ29udGVudChjb21tZW50KTtcbiAgY29uc3Qgc3RhcnRDb2x1bW4gPSBnZXRTdGFydENvbHVtbihjb21tZW50KTtcblxuICBpZiAoY29udGVudCA9PT0gdm9pZCAwIHx8IHN0YXJ0Q29sdW1uID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3Qgc2luZ2xlTGluZVRleHQgPSBidWlsZFNpbmdsZUxpbmVUZXh0KGNvbnRlbnQpO1xuXG4gIHJldHVybiBzdGFydENvbHVtbiArIHNpbmdsZUxpbmVUZXh0Lmxlbmd0aCA+IG1heExpbmVMZW5ndGhcbiAgICA/IHZvaWQgMFxuICAgIDogc2luZ2xlTGluZVRleHQ7XG59O1xuXG4vKipcbiAqIFJlcG9ydHMgYSBjb21tZW50IHdoZW4gaXQgY2FuIGJlIGNvbGxhcHNlZCB0byBhIHNpbmdsZSBsaW5lLlxuICogQHBhcmFtIGNvbnRleHQgSW5wdXQgY29udGV4dCB2YWx1ZS5cbiAqIEBwYXJhbSBjb21tZW50IElucHV0IGNvbW1lbnQgdmFsdWUuXG4gKiBAcGFyYW0gbWF4TGluZUxlbmd0aCBJbnB1dCBtYXhMaW5lTGVuZ3RoIHZhbHVlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydElmU2luZ2xlTGluZShjb250ZXh0LCBjb21tZW50LCA4MCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0SWZTaW5nbGVMaW5lID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBjb21tZW50OiBDb21tZW50LFxuICBtYXhMaW5lTGVuZ3RoOiBudW1iZXIsXG4pOiB2b2lkID0+IHtcbiAgaWYgKCFpc0pzZG9jQ29tbWVudChjb21tZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHNpbmdsZUxpbmVUZXh0ID0gZ2V0U2luZ2xlTGluZVJlcGxhY2VtZW50KGNvbW1lbnQsIG1heExpbmVMZW5ndGgpO1xuXG4gIGlmIChzaW5nbGVMaW5lVGV4dCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyBsb2MsIHJhbmdlIH0gPSBjb21tZW50O1xuXG4gIGlmIChsb2MgPT09IG51bGwgfHwgbG9jID09PSB2b2lkIDAgfHwgcmFuZ2UgPT09IHZvaWQgMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnRleHQucmVwb3J0KHtcbiAgICBmaXg6IGNyZWF0ZUZpeChyYW5nZSwgc2luZ2xlTGluZVRleHQpLFxuICAgIGxvYyxcbiAgICBtZXNzYWdlSWQ6IFwic2luZ2xlTGluZVwiLFxuICB9KTtcbn07XG5cbmV4cG9ydCB7IG5vcm1hbGl6ZU1heExpbmVMZW5ndGgsIHJlcG9ydElmU2luZ2xlTGluZSB9O1xuIl19
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
/** Type definition for rule data. */
|
|
3
|
+
interface FixReportEntry {
|
|
4
|
+
/** Fix helper value. */
|
|
5
|
+
fix?: null | Rule.ReportFixer | undefined;
|
|
6
|
+
}
|
|
7
|
+
/** Type definition for rule data. */
|
|
8
|
+
type FixResult = Exclude<ReturnType<Rule.ReportFixer>, null>;
|
|
9
|
+
/**
|
|
10
|
+
* Creates createFixer.
|
|
11
|
+
* @returns Return value output.
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* createFixer();
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
declare const createFixer: () => Parameters<Rule.ReportFixer>[0];
|
|
18
|
+
/**
|
|
19
|
+
* Gets getFixText.
|
|
20
|
+
* @param fixResult Input fixResult value.
|
|
21
|
+
* @returns Return value output.
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* getFixText();
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
declare const getFixText: (fixResult?: FixResult) => string | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Gets getFixes.
|
|
30
|
+
* @param reports Input reports value.
|
|
31
|
+
* @returns Return value output.
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* getFixes();
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
declare const getFixes: (reports: FixReportEntry[]) => Rule.Fix[];
|
|
38
|
+
/**
|
|
39
|
+
* Applies applyFixes.
|
|
40
|
+
* @param sourceText Input sourceText value.
|
|
41
|
+
* @param fixes Input fixes value.
|
|
42
|
+
* @returns Return value output.
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* applyFixes();
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
declare const applyFixes: (sourceText: string, fixes: Rule.Fix[]) => string;
|
|
49
|
+
export { applyFixes, createFixer, getFixes, getFixText };
|
|
50
|
+
//# sourceMappingURL=test-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../src/docs/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,qCAAqC;AACrC,UAAU,cAAc;IACtB,wBAAwB;IACxB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;CAC3C;AAED,qCAAqC;AACrC,KAAK,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;AAE7D;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,QAAO,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAqBpD,CAAC;AAcH;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GAAI,YAAY,SAAS,KAAG,MAAM,GAAG,SASpD,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,QAAQ,GAAI,SAAS,cAAc,EAAE,KAAG,IAAI,CAAC,GAAG,EAiBrD,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,UAAU,GAAI,YAAY,MAAM,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,KAAG,MAgB3D,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"}
|