eslint-plugin-complete 1.11.7 → 1.12.1
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 +4 -2
- package/dist/package.json +4 -3
- package/dist/src/completeSentence.d.ts +2 -2
- package/dist/src/completeSentence.d.ts.map +1 -1
- package/dist/src/configs/recommended.d.ts.map +1 -1
- package/dist/src/configs/recommended.js +1 -0
- package/dist/src/configs/recommended.js.map +1 -1
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/interfaces/MyPluginDocs.d.ts +2 -2
- package/dist/src/interfaces/MyPluginDocs.d.ts.map +1 -1
- package/dist/src/leadingLineComments.d.ts +1 -1
- package/dist/src/leadingLineComments.d.ts.map +1 -1
- package/dist/src/leadingLineComments.js.map +1 -1
- package/dist/src/list.d.ts +4 -4
- package/dist/src/list.d.ts.map +1 -1
- package/dist/src/rules/eqeqeq-fix.d.ts.map +1 -1
- package/dist/src/rules/eqeqeq-fix.js +40 -38
- package/dist/src/rules/eqeqeq-fix.js.map +1 -1
- package/dist/src/rules/format-jsdoc-comments.d.ts +1 -1
- package/dist/src/rules/format-jsdoc-comments.d.ts.map +1 -1
- package/dist/src/rules/no-useless-return.d.ts.map +1 -1
- package/dist/src/rules/no-useless-return.js +28 -23
- package/dist/src/rules/no-useless-return.js.map +1 -1
- package/dist/src/rules/prefer-const.d.ts.map +1 -1
- package/dist/src/rules/prefer-const.js +43 -37
- package/dist/src/rules/prefer-const.js.map +1 -1
- package/dist/src/rules/type-declaration-immutability.d.ts +5 -0
- package/dist/src/rules/type-declaration-immutability.d.ts.map +1 -0
- package/dist/src/rules/type-declaration-immutability.js +64 -0
- package/dist/src/rules/type-declaration-immutability.js.map +1 -0
- package/dist/src/rules.d.ts +3 -0
- package/dist/src/rules.d.ts.map +1 -1
- package/dist/src/rules.js +2 -0
- package/dist/src/rules.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/eslint-plugin-complete)
|
|
4
4
|
|
|
5
|
-
This is an [ESLint](https://eslint.org/) plugin containing rules that can help
|
|
5
|
+
This is an [ESLint](https://eslint.org/) plugin containing rules that can help
|
|
6
|
+
make your TypeScript code more safe or more strict.
|
|
6
7
|
|
|
7
|
-
Please see the [docs](https://complete-ts.github.io/eslint-plugin-complete) for
|
|
8
|
+
Please see the [docs](https://complete-ts.github.io/eslint-plugin-complete) for
|
|
9
|
+
more information.
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-complete",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.1",
|
|
4
4
|
"description": "An ESLint plugin that contains useful rules.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -36,14 +36,15 @@
|
|
|
36
36
|
"scripts": {
|
|
37
37
|
"build": "bun run ./scripts/build.ts",
|
|
38
38
|
"create-rule": "bun run ./scripts/createRule.ts",
|
|
39
|
-
"docs": "bun run build && eslint-doc-generator",
|
|
39
|
+
"docs": "bun run build && eslint-doc-generator && bunx prettier --write .",
|
|
40
40
|
"generate": "bun run ./scripts/generate.ts",
|
|
41
41
|
"lint": "bun run ./scripts/lint.ts",
|
|
42
42
|
"test": "jest"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@typescript-eslint/type-utils": "catalog:",
|
|
46
|
-
"@typescript-eslint/utils": "catalog:"
|
|
46
|
+
"@typescript-eslint/utils": "catalog:",
|
|
47
|
+
"is-immutable-type": "catalog:"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
49
50
|
"@babel/core": "catalog:",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type CompleteSentenceMessageIds = "doublePeriod" | "missingCapital" | "missingPeriod";
|
|
2
2
|
interface IncompleteSentence {
|
|
3
|
-
sentence: string;
|
|
4
|
-
messageId: CompleteSentenceMessageIds;
|
|
3
|
+
readonly sentence: string;
|
|
4
|
+
readonly messageId: CompleteSentenceMessageIds;
|
|
5
5
|
}
|
|
6
6
|
export declare function getIncompleteSentences(text: string): readonly IncompleteSentence[];
|
|
7
7
|
export declare function getSentences(text: string): readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeSentence.d.ts","sourceRoot":"","sources":["../../src/completeSentence.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,0BAA0B,GACpC,cAAc,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAEtD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"completeSentence.d.ts","sourceRoot":"","sources":["../../src/completeSentence.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,0BAA0B,GACpC,cAAc,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAEtD,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;CAChD;AAmBD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,GACX,SAAS,kBAAkB,EAAE,CAsC/B;AA4MD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAO5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommended.d.ts","sourceRoot":"","sources":["../../../src/configs/recommended.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"recommended.d.ts","sourceRoot":"","sources":["../../../src/configs/recommended.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,EAuEnD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommended.js","sourceRoot":"","sources":["../../../../../src/configs/recommended.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sDAAsD;AACtD,oBAAoB;AAIpB,MAAM,CAAC,MAAM,WAAW,GAAiC;IACvD;QACE,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,qBAAqB,CAAC;QAC3D,OAAO,EAAE,EAAE;QACX,KAAK,EAAE;YACL,mCAAmC,EAAE,OAAO;YAC5C,2CAA2C,EAAE,OAAO;YACpD,iCAAiC,EAAE,OAAO;YAC1C,mCAAmC,EAAE,OAAO;YAC5C,qBAAqB,EAAE,OAAO;YAC9B,gCAAgC,EAAE,OAAO;YACzC,+BAA+B,EAAE,OAAO;YACxC,oCAAoC,EAAE,OAAO;YAC7C,sCAAsC,EAAE,OAAO;YAC/C,yBAAyB,EAAE,OAAO;YAClC,iCAAiC,EAAE,OAAO;YAC1C,kCAAkC,EAAE,OAAO;YAC3C,oCAAoC,EAAE,OAAO;YAC7C,oBAAoB,EAAE,OAAO;YAC7B,qBAAqB,EAAE,OAAO;YAC9B,4BAA4B,EAAE,OAAO;YACrC,0BAA0B,EAAE,OAAO;YACnC,wBAAwB,EAAE,OAAO;YACjC,yCAAyC,EAAE,OAAO;YAClD,qCAAqC,EAAE,OAAO;YAC9C,6BAA6B,EAAE,OAAO;YACtC,0CAA0C,EAAE,OAAO;YACnD,mCAAmC,EAAE,OAAO;YAC5C,oCAAoC,EAAE,OAAO;YAC7C,6BAA6B,EAAE,OAAO;YACtC,4BAA4B,EAAE,OAAO;YACrC,8BAA8B,EAAE,OAAO;YACvC,uBAAuB,EAAE,OAAO;YAChC,0BAA0B,EAAE,OAAO;YACnC,8BAA8B,EAAE,OAAO;YACvC,0BAA0B,EAAE,OAAO;YACnC,kCAAkC,EAAE,OAAO;YAC3C,0CAA0C,EAAE,OAAO;YACnD,0CAA0C,EAAE,OAAO;YACnD,wBAAwB,EAAE,OAAO;YACjC,wBAAwB,EAAE,OAAO;YACjC,2CAA2C,EAAE,OAAO;YACpD,oCAAoC,EAAE,OAAO;YAC7C,+CAA+C,EAAE,OAAO;YACxD,6CAA6C,EAAE,OAAO;YACtD,uCAAuC,EAAE,OAAO;YAChD,uBAAuB,EAAE,OAAO;YAChC,+BAA+B,EAAE,OAAO;YACxC,uBAAuB,EAAE,OAAO;YAChC,qCAAqC,EAAE,OAAO;YAC9C,gCAAgC,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"recommended.js","sourceRoot":"","sources":["../../../../../src/configs/recommended.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sDAAsD;AACtD,oBAAoB;AAIpB,MAAM,CAAC,MAAM,WAAW,GAAiC;IACvD;QACE,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,qBAAqB,CAAC;QAC3D,OAAO,EAAE,EAAE;QACX,KAAK,EAAE;YACL,mCAAmC,EAAE,OAAO;YAC5C,2CAA2C,EAAE,OAAO;YACpD,iCAAiC,EAAE,OAAO;YAC1C,mCAAmC,EAAE,OAAO;YAC5C,qBAAqB,EAAE,OAAO;YAC9B,gCAAgC,EAAE,OAAO;YACzC,+BAA+B,EAAE,OAAO;YACxC,oCAAoC,EAAE,OAAO;YAC7C,sCAAsC,EAAE,OAAO;YAC/C,yBAAyB,EAAE,OAAO;YAClC,iCAAiC,EAAE,OAAO;YAC1C,kCAAkC,EAAE,OAAO;YAC3C,oCAAoC,EAAE,OAAO;YAC7C,oBAAoB,EAAE,OAAO;YAC7B,qBAAqB,EAAE,OAAO;YAC9B,4BAA4B,EAAE,OAAO;YACrC,0BAA0B,EAAE,OAAO;YACnC,wBAAwB,EAAE,OAAO;YACjC,yCAAyC,EAAE,OAAO;YAClD,qCAAqC,EAAE,OAAO;YAC9C,6BAA6B,EAAE,OAAO;YACtC,0CAA0C,EAAE,OAAO;YACnD,mCAAmC,EAAE,OAAO;YAC5C,oCAAoC,EAAE,OAAO;YAC7C,6BAA6B,EAAE,OAAO;YACtC,4BAA4B,EAAE,OAAO;YACrC,8BAA8B,EAAE,OAAO;YACvC,uBAAuB,EAAE,OAAO;YAChC,0BAA0B,EAAE,OAAO;YACnC,8BAA8B,EAAE,OAAO;YACvC,0BAA0B,EAAE,OAAO;YACnC,kCAAkC,EAAE,OAAO;YAC3C,0CAA0C,EAAE,OAAO;YACnD,0CAA0C,EAAE,OAAO;YACnD,wBAAwB,EAAE,OAAO;YACjC,wBAAwB,EAAE,OAAO;YACjC,2CAA2C,EAAE,OAAO;YACpD,oCAAoC,EAAE,OAAO;YAC7C,+CAA+C,EAAE,OAAO;YACxD,6CAA6C,EAAE,OAAO;YACtD,uCAAuC,EAAE,OAAO;YAChD,uBAAuB,EAAE,OAAO;YAChC,+BAA+B,EAAE,OAAO;YACxC,uBAAuB,EAAE,OAAO;YAChC,qCAAqC,EAAE,OAAO;YAC9C,gCAAgC,EAAE,OAAO;YACzC,wCAAwC,EAAE,OAAO;SAClD;KACF;IACD;QACE,KAAK,EAAE;YACL,MAAM,EAAE,KAAK;YACb,6BAA6B,EAAE,KAAK;YACpC,mBAAmB,EAAE,KAAK;YAC1B,cAAc,EAAE,KAAK;SACtB;KACF;IACD;QACE,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;QACtD,KAAK,EAAE;YACL,qBAAqB,EAAE,KAAK;YAC5B,wBAAwB,EAAE,KAAK;YAC/B,2CAA2C,EAAE,KAAK;YAClD,oCAAoC,EAAE,KAAK;SAC5C;KACF;CACF,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -154,6 +154,9 @@ declare const plugin: {
|
|
|
154
154
|
"strict-void-functions": TSESLint.RuleModule<"mismatchedReturnType", [], import("./interfaces/MyPluginDocs.js").MyPluginDocs, TSESLint.RuleListener> & {
|
|
155
155
|
name: string;
|
|
156
156
|
};
|
|
157
|
+
"type-declaration-immutability": TSESLint.RuleModule<"mustBeImmutable", [], import("./interfaces/MyPluginDocs.js").MyPluginDocs, TSESLint.RuleListener> & {
|
|
158
|
+
name: string;
|
|
159
|
+
};
|
|
157
160
|
};
|
|
158
161
|
};
|
|
159
162
|
export default plugin;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAQzD,QAAA,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAQzD,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOX,CAAC;AAQF,eAAe,MAAM,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @see https://typescript-eslint.io/developers/custom-rules#extra-rule-docs-types */
|
|
2
2
|
export interface MyPluginDocs {
|
|
3
|
-
recommended: boolean;
|
|
4
|
-
requiresTypeChecking: boolean;
|
|
3
|
+
readonly recommended: boolean;
|
|
4
|
+
readonly requiresTypeChecking: boolean;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=MyPluginDocs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyPluginDocs.d.ts","sourceRoot":"","sources":["../../../src/interfaces/MyPluginDocs.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MyPluginDocs.d.ts","sourceRoot":"","sources":["../../../src/interfaces/MyPluginDocs.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACxC"}
|
|
@@ -11,7 +11,7 @@ export declare function getLeadingLineComments(sourceCode: TSESLint.SourceCode,
|
|
|
11
11
|
*/
|
|
12
12
|
interface LeadingLineCommentBlock {
|
|
13
13
|
mergedText: string;
|
|
14
|
-
originalComments: TSESTree.Comment[];
|
|
14
|
+
readonly originalComments: TSESTree.Comment[];
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Returns an array of grouped comments. For example, the following code would return an array of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leadingLineComments.d.ts","sourceRoot":"","sources":["../../src/leadingLineComments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,QAAQ,CAAC,UAAU,EAC/B,QAAQ,EAAE,SAAS,QAAQ,CAAC,OAAO,EAAE,GACpC,SAAS,QAAQ,CAAC,OAAO,EAAE,CAQ7B;AAED;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"leadingLineComments.d.ts","sourceRoot":"","sources":["../../src/leadingLineComments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,QAAQ,CAAC,UAAU,EAC/B,QAAQ,EAAE,SAAS,QAAQ,CAAC,OAAO,EAAE,GACpC,SAAS,QAAQ,CAAC,OAAO,EAAE,CAQ7B;AAED;;;;;;;GAOG;AAEH,UAAU,uBAAuB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,QAAQ,CAAC,OAAO,EAAE,GACpC,SAAS,uBAAuB,EAAE,CAgEpC;AAED,wBAAgB,8CAA8C,CAC5D,YAAY,EAAE,uBAAuB,GACpC,OAAO,CAIT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leadingLineComments.js","sourceRoot":"","sources":["../../../../src/leadingLineComments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,UAAU,sBAAsB,CACpC,UAA+B,EAC/B,QAAqC;IAErC,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,uBAAuB;WACnE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;WAC3B,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,qCAAqC;WACpE,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAC7C,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"leadingLineComments.js","sourceRoot":"","sources":["../../../../src/leadingLineComments.ts"],"names":[],"mappings":"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"}
|
package/dist/src/list.d.ts
CHANGED
|
@@ -9,19 +9,19 @@
|
|
|
9
9
|
* ```
|
|
10
10
|
*/
|
|
11
11
|
export interface List {
|
|
12
|
-
kind: ListKind;
|
|
12
|
+
readonly kind: ListKind;
|
|
13
13
|
/** The size of the whitespace prior to the marker. For example, " 1. Foo" would be 2. */
|
|
14
|
-
numLeadingSpaces: number;
|
|
14
|
+
readonly numLeadingSpaces: number;
|
|
15
15
|
/**
|
|
16
16
|
* The size of the characters that make up the bullet point.
|
|
17
17
|
* e.g., "1. Foo" would be 3.
|
|
18
18
|
*/
|
|
19
|
-
markerSize: number;
|
|
19
|
+
readonly markerSize: number;
|
|
20
20
|
/**
|
|
21
21
|
* The contents of JSDoc tag header, if any.
|
|
22
22
|
* e.g., "@param foo This is foo." would be "@param foo".
|
|
23
23
|
*/
|
|
24
|
-
jsDocTagName?: string;
|
|
24
|
+
readonly jsDocTagName?: string;
|
|
25
25
|
}
|
|
26
26
|
export declare enum ListKind {
|
|
27
27
|
Hyphen = "Hyphen",
|
package/dist/src/list.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAExB,yFAAyF;IACzF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,oBAAY,QAAQ;IAClB,MAAM,WAAW;IACjB,iBAAiB,sBAAsB;IACvC,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,OAAO,EAC7B,wBAAwB,EAAE,OAAO,EACjC,UAAU,EAAE,IAAI,GAAG,SAAS,GAC3B,IAAI,GAAG,SAAS,CAgClB;AAwGD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,IAAI,GAAG,SAAS,EAC5B,IAAI,EAAE,IAAI,GAAG,SAAS,GACrB,OAAO,CAUT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eqeqeq-fix.d.ts","sourceRoot":"","sources":["../../../src/rules/eqeqeq-fix.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eqeqeq-fix.d.ts","sourceRoot":"","sources":["../../../src/rules/eqeqeq-fix.ts"],"names":[],"mappings":"AA8CA,eAAO,MAAM,SAAS;;CAuKpB,CAAC"}
|
|
@@ -13,7 +13,7 @@ import { createRule } from "../utils.js";
|
|
|
13
13
|
* @fileoverview Rule to flag statements that use != and == instead of !== and ===
|
|
14
14
|
* @author Nicholas C. Zakas
|
|
15
15
|
*/
|
|
16
|
-
"use strict";
|
|
16
|
+
("use strict");
|
|
17
17
|
//------------------------------------------------------------------------------
|
|
18
18
|
// External code (copy pasted from elsewhere in the ESLint repository)
|
|
19
19
|
//------------------------------------------------------------------------------
|
|
@@ -24,13 +24,16 @@ import { createRule } from "../utils.js";
|
|
|
24
24
|
*/
|
|
25
25
|
function isNullLiteral(node) {
|
|
26
26
|
/*
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return node.type === "Literal"
|
|
27
|
+
* Checking `node.value === null` does not guarantee that a literal is a null literal.
|
|
28
|
+
* When parsing values that cannot be represented in the current environment (e.g., unicode
|
|
29
|
+
* regexes in Node 4), `node.value` is set to `null` because it wouldn't be possible to
|
|
30
|
+
* set `node.value` to a unicode regex. To make sure a literal is actually `null`, check
|
|
31
|
+
* `node.regex` instead. Also see: https://github.com/eslint/eslint/issues/8020
|
|
32
|
+
*/
|
|
33
|
+
return (node.type === "Literal"
|
|
34
|
+
&& node.value === null
|
|
35
|
+
&& !node.regex
|
|
36
|
+
&& !node.bigint);
|
|
34
37
|
}
|
|
35
38
|
export const eqeqeqFix = createRule({
|
|
36
39
|
name: "eqeqeq-fix", // Added
|
|
@@ -48,30 +51,30 @@ export const eqeqeqFix = createRule({
|
|
|
48
51
|
type: "array",
|
|
49
52
|
items: [
|
|
50
53
|
{
|
|
51
|
-
enum: ["always"]
|
|
54
|
+
enum: ["always"],
|
|
52
55
|
},
|
|
53
56
|
{
|
|
54
57
|
type: "object",
|
|
55
58
|
properties: {
|
|
56
59
|
null: {
|
|
57
|
-
enum: ["always", "never", "ignore"]
|
|
58
|
-
}
|
|
60
|
+
enum: ["always", "never", "ignore"],
|
|
61
|
+
},
|
|
59
62
|
},
|
|
60
|
-
additionalProperties: false
|
|
61
|
-
}
|
|
63
|
+
additionalProperties: false,
|
|
64
|
+
},
|
|
62
65
|
],
|
|
63
|
-
additionalItems: false
|
|
66
|
+
additionalItems: false,
|
|
64
67
|
},
|
|
65
68
|
{
|
|
66
69
|
type: "array",
|
|
67
70
|
items: [
|
|
68
71
|
{
|
|
69
|
-
enum: ["smart", "allow-null"]
|
|
70
|
-
}
|
|
72
|
+
enum: ["smart", "allow-null"],
|
|
73
|
+
},
|
|
71
74
|
],
|
|
72
|
-
additionalItems: false
|
|
73
|
-
}
|
|
74
|
-
]
|
|
75
|
+
additionalItems: false,
|
|
76
|
+
},
|
|
77
|
+
],
|
|
75
78
|
},
|
|
76
79
|
fixable: "code",
|
|
77
80
|
messages: {
|
|
@@ -82,11 +85,9 @@ export const eqeqeqFix = createRule({
|
|
|
82
85
|
const config = context.options[0] || "always";
|
|
83
86
|
const options = context.options[1] || {};
|
|
84
87
|
const sourceCode = context.sourceCode;
|
|
85
|
-
const nullOption =
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const enforceRuleForNull = (nullOption === "always");
|
|
89
|
-
const enforceInverseRuleForNull = (nullOption === "never");
|
|
88
|
+
const nullOption = config === "always" ? options.null || "always" : "ignore";
|
|
89
|
+
const enforceRuleForNull = nullOption === "always";
|
|
90
|
+
const enforceInverseRuleForNull = nullOption === "never";
|
|
90
91
|
/**
|
|
91
92
|
* Checks if an expression is a typeof expression
|
|
92
93
|
* @param {ASTNode} node The node to check
|
|
@@ -111,8 +112,9 @@ export const eqeqeqFix = createRule({
|
|
|
111
112
|
* @private
|
|
112
113
|
*/
|
|
113
114
|
function areLiteralsAndSameType(node) {
|
|
114
|
-
return node.left.type === "Literal"
|
|
115
|
-
|
|
115
|
+
return (node.left.type === "Literal"
|
|
116
|
+
&& node.right.type === "Literal"
|
|
117
|
+
&& typeof node.left.value === typeof node.right.value);
|
|
116
118
|
}
|
|
117
119
|
/**
|
|
118
120
|
* Checks if one of the operands is a literal null
|
|
@@ -131,7 +133,7 @@ export const eqeqeqFix = createRule({
|
|
|
131
133
|
* @private
|
|
132
134
|
*/
|
|
133
135
|
function report(node, expectedOperator) {
|
|
134
|
-
const operatorToken = sourceCode.getFirstTokenBetween(node.left, node.right, token => token.value === node.operator);
|
|
136
|
+
const operatorToken = sourceCode.getFirstTokenBetween(node.left, node.right, (token) => token.value === node.operator);
|
|
135
137
|
context.report({
|
|
136
138
|
node,
|
|
137
139
|
loc: operatorToken.loc,
|
|
@@ -139,15 +141,15 @@ export const eqeqeqFix = createRule({
|
|
|
139
141
|
data: { expectedOperator, actualOperator: node.operator },
|
|
140
142
|
fix(fixer) {
|
|
141
143
|
/*
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
// If the comparison is a `typeof` comparison or both sides are literals with the same type, then it's safe to fix.
|
|
145
|
+
if (isTypeOfBinary(node) || areLiteralsAndSameType(node)) {
|
|
146
|
+
return fixer.replaceText(operatorToken, expectedOperator);
|
|
147
|
+
}
|
|
148
|
+
return null;
|
|
149
|
+
*/
|
|
148
150
|
// Fix everything regardless of whether it is safe to fix.
|
|
149
151
|
return fixer.replaceText(operatorToken, expectedOperator);
|
|
150
|
-
}
|
|
152
|
+
},
|
|
151
153
|
});
|
|
152
154
|
}
|
|
153
155
|
return {
|
|
@@ -159,16 +161,16 @@ export const eqeqeqFix = createRule({
|
|
|
159
161
|
}
|
|
160
162
|
return;
|
|
161
163
|
}
|
|
162
|
-
if (config === "smart"
|
|
163
|
-
areLiteralsAndSameType(node) || isNull)) {
|
|
164
|
+
if (config === "smart"
|
|
165
|
+
&& (isTypeOfBinary(node) || areLiteralsAndSameType(node) || isNull)) {
|
|
164
166
|
return;
|
|
165
167
|
}
|
|
166
168
|
if (!enforceRuleForNull && isNull) {
|
|
167
169
|
return;
|
|
168
170
|
}
|
|
169
171
|
report(node, `${node.operator}=`);
|
|
170
|
-
}
|
|
172
|
+
},
|
|
171
173
|
};
|
|
172
|
-
}
|
|
174
|
+
},
|
|
173
175
|
});
|
|
174
176
|
//# sourceMappingURL=eqeqeq-fix.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eqeqeq-fix.js","sourceRoot":"","sources":["../../../../../src/rules/eqeqeq-fix.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc;AACd,sBAAsB;AAEtB;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AAEH,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"eqeqeq-fix.js","sourceRoot":"","sources":["../../../../../src/rules/eqeqeq-fix.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-jsdoc-comments.d.ts","sourceRoot":"","sources":["../../../src/rules/format-jsdoc-comments.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B,MAAM,MAAM,OAAO,GAAG;IACpB;QACE,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"format-jsdoc-comments.d.ts","sourceRoot":"","sources":["../../../src/rules/format-jsdoc-comments.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B,MAAM,MAAM,OAAO,GAAG;IACpB;QACE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B;CACF,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAEhD,eAAO,MAAM,mBAAmB;;CAmG9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-useless-return.d.ts","sourceRoot":"","sources":["../../../src/rules/no-useless-return.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-useless-return.d.ts","sourceRoot":"","sources":["../../../src/rules/no-useless-return.ts"],"names":[],"mappings":"AAyJA,eAAO,MAAM,eAAe;;CAmS1B,CAAC"}
|
|
@@ -13,12 +13,17 @@ import { createRule } from "../utils.js";
|
|
|
13
13
|
* @fileoverview Disallow redundant return statements
|
|
14
14
|
* @author Teddy Katz
|
|
15
15
|
*/
|
|
16
|
-
"use strict";
|
|
16
|
+
("use strict");
|
|
17
17
|
//------------------------------------------------------------------------------
|
|
18
18
|
// External code (copy pasted from elsewhere in the ESLint repository)
|
|
19
19
|
//------------------------------------------------------------------------------
|
|
20
20
|
// A set of node types that can contain a list of statements
|
|
21
|
-
const STATEMENT_LIST_PARENTS = new Set([
|
|
21
|
+
const STATEMENT_LIST_PARENTS = new Set([
|
|
22
|
+
"Program",
|
|
23
|
+
"BlockStatement",
|
|
24
|
+
"StaticBlock",
|
|
25
|
+
"SwitchCase",
|
|
26
|
+
]);
|
|
22
27
|
const anyFunctionPattern = /^(?:Function(?:Declaration|Expression)|ArrowFunctionExpression)$/u;
|
|
23
28
|
const anyLoopPattern = /^(?:DoWhile|For|ForIn|ForOf|While)Statement$/u;
|
|
24
29
|
/**
|
|
@@ -92,7 +97,8 @@ function isRemovable(node) {
|
|
|
92
97
|
*/
|
|
93
98
|
function isInFinally(node) {
|
|
94
99
|
for (let currentNode = node; currentNode && currentNode.parent && !isFunction(currentNode); currentNode = currentNode.parent) {
|
|
95
|
-
if (currentNode.parent.type === "TryStatement"
|
|
100
|
+
if (currentNode.parent.type === "TryStatement"
|
|
101
|
+
&& currentNode.parent.finalizer === currentNode) {
|
|
96
102
|
return true;
|
|
97
103
|
}
|
|
98
104
|
}
|
|
@@ -127,8 +133,8 @@ export const noUselessReturn = createRule({
|
|
|
127
133
|
// fixable: "code",
|
|
128
134
|
schema: [],
|
|
129
135
|
messages: {
|
|
130
|
-
unnecessaryReturn: "Unnecessary return statement."
|
|
131
|
-
}
|
|
136
|
+
unnecessaryReturn: "Unnecessary return statement.",
|
|
137
|
+
},
|
|
132
138
|
},
|
|
133
139
|
create(context) {
|
|
134
140
|
const segmentInfoMap = new WeakMap();
|
|
@@ -200,23 +206,24 @@ export const noUselessReturn = createRule({
|
|
|
200
206
|
usedUnreachableSegments.add(segment);
|
|
201
207
|
segment.allPrevSegments
|
|
202
208
|
.filter(isReturned)
|
|
203
|
-
.filter(prevSegment => !usedUnreachableSegments.has(prevSegment))
|
|
204
|
-
.forEach(prevSegment => markReturnStatementsOnSegmentAsUsed(prevSegment, usedUnreachableSegments));
|
|
209
|
+
.filter((prevSegment) => !usedUnreachableSegments.has(prevSegment))
|
|
210
|
+
.forEach((prevSegment) => markReturnStatementsOnSegmentAsUsed(prevSegment, usedUnreachableSegments));
|
|
205
211
|
return;
|
|
206
212
|
}
|
|
207
213
|
const info = segmentInfoMap.get(segment);
|
|
208
214
|
if (!info) {
|
|
209
215
|
return;
|
|
210
216
|
}
|
|
211
|
-
info.uselessReturns = info.uselessReturns.filter(node => {
|
|
212
|
-
if (scopeInfo.traversedTryBlockStatements
|
|
217
|
+
info.uselessReturns = info.uselessReturns.filter((node) => {
|
|
218
|
+
if (scopeInfo.traversedTryBlockStatements
|
|
219
|
+
&& scopeInfo.traversedTryBlockStatements.length > 0) {
|
|
213
220
|
const returnInitialRange = node.range[0];
|
|
214
221
|
const returnFinalRange = node.range[1];
|
|
215
|
-
const areBlocksInRange = scopeInfo.traversedTryBlockStatements.some(tryBlockStatement => {
|
|
222
|
+
const areBlocksInRange = scopeInfo.traversedTryBlockStatements.some((tryBlockStatement) => {
|
|
216
223
|
const blockInitialRange = tryBlockStatement.range[0];
|
|
217
224
|
const blockFinalRange = tryBlockStatement.range[1];
|
|
218
|
-
return (returnInitialRange >= blockInitialRange
|
|
219
|
-
returnFinalRange <= blockFinalRange);
|
|
225
|
+
return (returnInitialRange >= blockInitialRange
|
|
226
|
+
&& returnFinalRange <= blockFinalRange);
|
|
220
227
|
});
|
|
221
228
|
if (areBlocksInRange) {
|
|
222
229
|
return true;
|
|
@@ -239,9 +246,7 @@ export const noUselessReturn = createRule({
|
|
|
239
246
|
* @returns {void}
|
|
240
247
|
*/
|
|
241
248
|
function markReturnStatementsOnCurrentSegmentsAsUsed() {
|
|
242
|
-
scopeInfo
|
|
243
|
-
.currentSegments
|
|
244
|
-
.forEach(segment => markReturnStatementsOnSegmentAsUsed(segment, new Set()));
|
|
249
|
+
scopeInfo.currentSegments.forEach((segment) => markReturnStatementsOnSegmentAsUsed(segment, new Set()));
|
|
245
250
|
}
|
|
246
251
|
//----------------------------------------------------------------------
|
|
247
252
|
// Public
|
|
@@ -254,7 +259,7 @@ export const noUselessReturn = createRule({
|
|
|
254
259
|
uselessReturns: [],
|
|
255
260
|
traversedTryBlockStatements: [],
|
|
256
261
|
codePath,
|
|
257
|
-
currentSegments: new Set()
|
|
262
|
+
currentSegments: new Set(),
|
|
258
263
|
};
|
|
259
264
|
},
|
|
260
265
|
// Reports useless return statements if exist.
|
|
@@ -276,7 +281,7 @@ export const noUselessReturn = createRule({
|
|
|
276
281
|
scopeInfo.currentSegments.add(segment);
|
|
277
282
|
const info = {
|
|
278
283
|
uselessReturns: getUselessReturns([], segment.allPrevSegments),
|
|
279
|
-
returned: false
|
|
284
|
+
returned: false,
|
|
280
285
|
};
|
|
281
286
|
// Stores the info.
|
|
282
287
|
segmentInfoMap.set(segment, info);
|
|
@@ -295,11 +300,11 @@ export const noUselessReturn = createRule({
|
|
|
295
300
|
if (node.argument) {
|
|
296
301
|
markReturnStatementsOnCurrentSegmentsAsUsed();
|
|
297
302
|
}
|
|
298
|
-
if (node.argument
|
|
299
|
-
isInLoop(node)
|
|
300
|
-
isInFinally(node)
|
|
303
|
+
if (node.argument
|
|
304
|
+
|| isInLoop(node)
|
|
305
|
+
|| isInFinally(node)
|
|
301
306
|
// Ignore `return` statements in unreachable places (https://github.com/eslint/eslint/issues/11647).
|
|
302
|
-
!isAnySegmentReachable(scopeInfo.currentSegments)) {
|
|
307
|
+
|| !isAnySegmentReachable(scopeInfo.currentSegments)) {
|
|
303
308
|
return;
|
|
304
309
|
}
|
|
305
310
|
for (const segment of scopeInfo.currentSegments) {
|
|
@@ -341,8 +346,8 @@ export const noUselessReturn = createRule({
|
|
|
341
346
|
WithStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
|
|
342
347
|
ExportNamedDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed,
|
|
343
348
|
ExportDefaultDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed,
|
|
344
|
-
ExportAllDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed
|
|
349
|
+
ExportAllDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed,
|
|
345
350
|
};
|
|
346
|
-
}
|
|
351
|
+
},
|
|
347
352
|
});
|
|
348
353
|
//# sourceMappingURL=no-useless-return.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-useless-return.js","sourceRoot":"","sources":["../../../../../src/rules/no-useless-return.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc;AACd,qBAAqB;AAErB;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"no-useless-return.js","sourceRoot":"","sources":["../../../../../src/rules/no-useless-return.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-const.d.ts","sourceRoot":"","sources":["../../../src/rules/prefer-const.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prefer-const.d.ts","sourceRoot":"","sources":["../../../src/rules/prefer-const.ts"],"names":[],"mappings":"AAuWA,eAAO,MAAM,WAAW;;CAiLtB,CAAC"}
|
|
@@ -13,7 +13,7 @@ import { createRule } from "../utils.js";
|
|
|
13
13
|
* @fileoverview A rule to suggest using of const declaration for variables that are never reassigned after declared.
|
|
14
14
|
* @author Toru Nagashima
|
|
15
15
|
*/
|
|
16
|
-
"use strict";
|
|
16
|
+
("use strict");
|
|
17
17
|
//------------------------------------------------------------------------------
|
|
18
18
|
// External code (copy pasted from elsewhere in the ESLint repository)
|
|
19
19
|
//------------------------------------------------------------------------------
|
|
@@ -58,10 +58,10 @@ function canBecomeVariableDeclaration(identifier) {
|
|
|
58
58
|
while (PATTERN_TYPE.test(node.type)) {
|
|
59
59
|
node = node.parent;
|
|
60
60
|
}
|
|
61
|
-
return (node.type === "VariableDeclarator"
|
|
62
|
-
(node.type === "AssignmentExpression"
|
|
63
|
-
node.parent.type === "ExpressionStatement"
|
|
64
|
-
DECLARATION_HOST_TYPE.test(node.parent.parent.type)));
|
|
61
|
+
return (node.type === "VariableDeclarator"
|
|
62
|
+
|| (node.type === "AssignmentExpression"
|
|
63
|
+
&& node.parent.type === "ExpressionStatement"
|
|
64
|
+
&& DECLARATION_HOST_TYPE.test(node.parent.parent.type)));
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
67
|
* Checks if an property or element is from outer scope or function parameters
|
|
@@ -71,12 +71,12 @@ function canBecomeVariableDeclaration(identifier) {
|
|
|
71
71
|
* @returns {boolean} Indicates if the variable is from outer scope or function parameters.
|
|
72
72
|
*/
|
|
73
73
|
function isOuterVariableInDestructing(name, initScope) {
|
|
74
|
-
if (initScope.through.some(ref => ref.resolved && ref.resolved.name === name)) {
|
|
74
|
+
if (initScope.through.some((ref) => ref.resolved && ref.resolved.name === name)) {
|
|
75
75
|
return true;
|
|
76
76
|
}
|
|
77
77
|
const variable = getVariableByName(initScope, name);
|
|
78
78
|
if (variable !== null) {
|
|
79
|
-
return variable.defs.some(def => def.type === "Parameter");
|
|
79
|
+
return variable.defs.some((def) => def.type === "Parameter");
|
|
80
80
|
}
|
|
81
81
|
return false;
|
|
82
82
|
}
|
|
@@ -114,7 +114,7 @@ function getDestructuringHost(reference) {
|
|
|
114
114
|
function hasMemberExpressionAssignment(node) {
|
|
115
115
|
switch (node.type) {
|
|
116
116
|
case "ObjectPattern":
|
|
117
|
-
return node.properties.some(prop => {
|
|
117
|
+
return node.properties.some((prop) => {
|
|
118
118
|
if (prop) {
|
|
119
119
|
/*
|
|
120
120
|
* Spread elements have an argument property while
|
|
@@ -127,7 +127,7 @@ function hasMemberExpressionAssignment(node) {
|
|
|
127
127
|
return false;
|
|
128
128
|
});
|
|
129
129
|
case "ArrayPattern":
|
|
130
|
-
return node.elements.some(element => {
|
|
130
|
+
return node.elements.some((element) => {
|
|
131
131
|
if (element) {
|
|
132
132
|
return hasMemberExpressionAssignment(element);
|
|
133
133
|
}
|
|
@@ -176,8 +176,7 @@ function getIdentifierIfShouldBeConst(variable, ignoreReadBeforeAssign) {
|
|
|
176
176
|
for (let i = 0; i < references.length; ++i) {
|
|
177
177
|
const reference = references[i];
|
|
178
178
|
if (reference.isWrite()) {
|
|
179
|
-
const isReassigned =
|
|
180
|
-
writer.identifier !== reference.identifier);
|
|
179
|
+
const isReassigned = writer !== null && writer.identifier !== reference.identifier;
|
|
181
180
|
if (isReassigned) {
|
|
182
181
|
return null;
|
|
183
182
|
}
|
|
@@ -188,16 +187,16 @@ function getIdentifierIfShouldBeConst(variable, ignoreReadBeforeAssign) {
|
|
|
188
187
|
if (leftNode.type === "ObjectPattern") {
|
|
189
188
|
const properties = leftNode.properties;
|
|
190
189
|
hasOuterVariables = properties
|
|
191
|
-
.filter(prop => prop.value)
|
|
192
|
-
.map(prop => prop.value.name)
|
|
193
|
-
.some(name => isOuterVariableInDestructing(name, variable.scope));
|
|
190
|
+
.filter((prop) => prop.value)
|
|
191
|
+
.map((prop) => prop.value.name)
|
|
192
|
+
.some((name) => isOuterVariableInDestructing(name, variable.scope));
|
|
194
193
|
hasNonIdentifiers = hasMemberExpressionAssignment(leftNode);
|
|
195
194
|
}
|
|
196
195
|
else if (leftNode.type === "ArrayPattern") {
|
|
197
196
|
const elements = leftNode.elements;
|
|
198
197
|
hasOuterVariables = elements
|
|
199
|
-
.map(element => element && element.name)
|
|
200
|
-
.some(name => isOuterVariableInDestructing(name, variable.scope));
|
|
198
|
+
.map((element) => element && element.name)
|
|
199
|
+
.some((name) => isOuterVariableInDestructing(name, variable.scope));
|
|
201
200
|
hasNonIdentifiers = hasMemberExpressionAssignment(leftNode);
|
|
202
201
|
}
|
|
203
202
|
if (hasOuterVariables || hasNonIdentifiers) {
|
|
@@ -217,9 +216,9 @@ function getIdentifierIfShouldBeConst(variable, ignoreReadBeforeAssign) {
|
|
|
217
216
|
* If the assignment is from a different scope, ignore it.
|
|
218
217
|
* If the assignment cannot change to a declaration, ignore it.
|
|
219
218
|
*/
|
|
220
|
-
const shouldBeConst =
|
|
221
|
-
writer.from === variable.scope
|
|
222
|
-
canBecomeVariableDeclaration(writer.identifier)
|
|
219
|
+
const shouldBeConst = writer !== null
|
|
220
|
+
&& writer.from === variable.scope
|
|
221
|
+
&& canBecomeVariableDeclaration(writer.identifier);
|
|
223
222
|
if (!shouldBeConst) {
|
|
224
223
|
return null;
|
|
225
224
|
}
|
|
@@ -305,14 +304,14 @@ export const preferConst = createRule({
|
|
|
305
304
|
type: "object",
|
|
306
305
|
properties: {
|
|
307
306
|
destructuring: { enum: ["any", "all"], default: "any" },
|
|
308
|
-
ignoreReadBeforeAssign: { type: "boolean", default: false }
|
|
307
|
+
ignoreReadBeforeAssign: { type: "boolean", default: false },
|
|
309
308
|
},
|
|
310
|
-
additionalProperties: false
|
|
311
|
-
}
|
|
309
|
+
additionalProperties: false,
|
|
310
|
+
},
|
|
312
311
|
],
|
|
313
312
|
messages: {
|
|
314
|
-
useConst: "'{{name}}' is never reassigned. Use 'const' instead."
|
|
315
|
-
}
|
|
313
|
+
useConst: "'{{name}}' is never reassigned. Use 'const' instead.",
|
|
314
|
+
},
|
|
316
315
|
},
|
|
317
316
|
create(context) {
|
|
318
317
|
const options = context.options[0] || {};
|
|
@@ -338,8 +337,10 @@ export const preferConst = createRule({
|
|
|
338
337
|
*/
|
|
339
338
|
function checkGroup(nodes) {
|
|
340
339
|
const nodesToReport = nodes.filter(Boolean);
|
|
341
|
-
if (nodes.length
|
|
342
|
-
|
|
340
|
+
if (nodes.length
|
|
341
|
+
&& (shouldMatchAnyDestructuredVariable
|
|
342
|
+
|| nodesToReport.length === nodes.length)) {
|
|
343
|
+
const varDeclParent = findUp(nodes[0], "VariableDeclaration", (parentNode) => parentNode.type.endsWith("Statement"));
|
|
343
344
|
const isVarDecParentNull = varDeclParent === null;
|
|
344
345
|
if (!isVarDecParentNull && varDeclParent.declarations.length > 0) {
|
|
345
346
|
const firstDeclaration = varDeclParent.declarations[0];
|
|
@@ -371,25 +372,30 @@ export const preferConst = createRule({
|
|
|
371
372
|
}
|
|
372
373
|
}
|
|
373
374
|
}
|
|
374
|
-
let shouldFix = varDeclParent
|
|
375
|
+
let shouldFix = varDeclParent
|
|
375
376
|
// Don't do a fix unless all variables in the declarations are initialized (or it's in a for-in or for-of loop)
|
|
376
|
-
(varDeclParent.parent.type === "ForInStatement"
|
|
377
|
-
varDeclParent.
|
|
377
|
+
&& (varDeclParent.parent.type === "ForInStatement"
|
|
378
|
+
|| varDeclParent.parent.type === "ForOfStatement"
|
|
379
|
+
|| varDeclParent.declarations.every((declaration) => declaration.init))
|
|
378
380
|
/*
|
|
379
381
|
* If options.destructuring is "all", then this warning will not occur unless
|
|
380
382
|
* every assignment in the destructuring should be const. In that case, it's safe
|
|
381
383
|
* to apply the fix.
|
|
382
384
|
*/
|
|
383
|
-
nodesToReport.length === nodes.length;
|
|
384
|
-
if (!isVarDecParentNull
|
|
385
|
-
|
|
385
|
+
&& nodesToReport.length === nodes.length;
|
|
386
|
+
if (!isVarDecParentNull
|
|
387
|
+
&& varDeclParent.declarations
|
|
388
|
+
&& varDeclParent.declarations.length !== 1) {
|
|
389
|
+
if (varDeclParent
|
|
390
|
+
&& varDeclParent.declarations
|
|
391
|
+
&& varDeclParent.declarations.length >= 1) {
|
|
386
392
|
/*
|
|
387
393
|
* Add nodesToReport.length to a count, then comparing the count to the length
|
|
388
394
|
* of the declarations in the current block.
|
|
389
395
|
*/
|
|
390
396
|
reportCount += nodesToReport.length;
|
|
391
397
|
let totalDeclarationsCount = 0;
|
|
392
|
-
varDeclParent.declarations.forEach(declaration => {
|
|
398
|
+
varDeclParent.declarations.forEach((declaration) => {
|
|
393
399
|
if (declaration.id.type === "ObjectPattern") {
|
|
394
400
|
totalDeclarationsCount += declaration.id.properties.length;
|
|
395
401
|
}
|
|
@@ -400,10 +406,10 @@ export const preferConst = createRule({
|
|
|
400
406
|
totalDeclarationsCount += 1;
|
|
401
407
|
}
|
|
402
408
|
});
|
|
403
|
-
shouldFix = shouldFix &&
|
|
409
|
+
shouldFix = shouldFix && reportCount === totalDeclarationsCount;
|
|
404
410
|
}
|
|
405
411
|
}
|
|
406
|
-
nodesToReport.forEach(node => {
|
|
412
|
+
nodesToReport.forEach((node) => {
|
|
407
413
|
context.report({
|
|
408
414
|
node,
|
|
409
415
|
messageId: "useConst",
|
|
@@ -420,8 +426,8 @@ export const preferConst = createRule({
|
|
|
420
426
|
if (node.kind === "let" && !isInitOfForStatement(node)) {
|
|
421
427
|
variables.push(...sourceCode.getDeclaredVariables(node));
|
|
422
428
|
}
|
|
423
|
-
}
|
|
429
|
+
},
|
|
424
430
|
};
|
|
425
|
-
}
|
|
431
|
+
},
|
|
426
432
|
});
|
|
427
433
|
//# sourceMappingURL=prefer-const.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-const.js","sourceRoot":"","sources":["../../../../../src/rules/prefer-const.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc;AACd,+BAA+B;AAE/B;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AAEH,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"prefer-const.js","sourceRoot":"","sources":["../../../../../src/rules/prefer-const.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
export declare const typeDeclarationImmutability: ESLintUtils.RuleModule<"mustBeImmutable", [], import("../interfaces/MyPluginDocs.js").MyPluginDocs, ESLintUtils.RuleListener> & {
|
|
3
|
+
name: string;
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=type-declaration-immutability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-declaration-immutability.d.ts","sourceRoot":"","sources":["../../../src/rules/type-declaration-immutability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAwCvD,eAAO,MAAM,2BAA2B;;CA0CtC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
import { getDefaultOverrides, Immutability, isImmutableType, } from "is-immutable-type";
|
|
3
|
+
import { createRule } from "../utils.js";
|
|
4
|
+
const IMMUTABILITY_OVERRIDES = [
|
|
5
|
+
...getDefaultOverrides(),
|
|
6
|
+
{
|
|
7
|
+
type: {
|
|
8
|
+
from: "lib",
|
|
9
|
+
name: "ReadonlyArray",
|
|
10
|
+
},
|
|
11
|
+
from: Immutability.ReadonlyDeep,
|
|
12
|
+
to: Immutability.Immutable,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
type: {
|
|
16
|
+
from: "lib",
|
|
17
|
+
name: "ReadonlyMap",
|
|
18
|
+
},
|
|
19
|
+
from: Immutability.ReadonlyDeep,
|
|
20
|
+
to: Immutability.Immutable,
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
type: {
|
|
24
|
+
from: "lib",
|
|
25
|
+
name: "ReadonlySet",
|
|
26
|
+
},
|
|
27
|
+
from: Immutability.ReadonlyDeep,
|
|
28
|
+
to: Immutability.Immutable,
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
export const typeDeclarationImmutability = createRule({
|
|
32
|
+
name: "type-declaration-immutability",
|
|
33
|
+
meta: {
|
|
34
|
+
type: "problem",
|
|
35
|
+
docs: {
|
|
36
|
+
description: "Enforces that interfaces are immutable",
|
|
37
|
+
recommended: true,
|
|
38
|
+
requiresTypeChecking: true,
|
|
39
|
+
},
|
|
40
|
+
schema: [],
|
|
41
|
+
messages: {
|
|
42
|
+
mustBeImmutable: "Interfaces must be immutable.",
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
defaultOptions: [],
|
|
46
|
+
create(context) {
|
|
47
|
+
const parserServices = ESLintUtils.getParserServices(context);
|
|
48
|
+
const { program } = parserServices;
|
|
49
|
+
const checker = program.getTypeChecker();
|
|
50
|
+
const immutabilityCache = new WeakMap();
|
|
51
|
+
function checkInterface(node) {
|
|
52
|
+
const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
|
|
53
|
+
const type = checker.getTypeAtLocation(tsNode);
|
|
54
|
+
if (!isImmutableType(program, type, IMMUTABILITY_OVERRIDES, immutabilityCache)) {
|
|
55
|
+
context.report({
|
|
56
|
+
node: node.id,
|
|
57
|
+
messageId: "mustBeImmutable",
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return { TSInterfaceDeclaration: checkInterface };
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=type-declaration-immutability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-declaration-immutability.js","sourceRoot":"","sources":["../../../../../src/rules/type-declaration-immutability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,MAAM,sBAAsB,GAAG;IAC7B,GAAG,mBAAmB,EAAE;IACxB;QACE,IAAI,EAAE;YACJ,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,eAAe;SACtB;QACD,IAAI,EAAE,YAAY,CAAC,YAAY;QAC/B,EAAE,EAAE,YAAY,CAAC,SAAS;KAC3B;IACD;QACE,IAAI,EAAE;YACJ,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,aAAa;SACpB;QACD,IAAI,EAAE,YAAY,CAAC,YAAY;QAC/B,EAAE,EAAE,YAAY,CAAC,SAAS;KAC3B;IACD;QACE,IAAI,EAAE;YACJ,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,aAAa;SACpB;QACD,IAAI,EAAE,YAAY,CAAC,YAAY;QAC/B,EAAE,EAAE,YAAY,CAAC,SAAS;KAC3B;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,2BAA2B,GAAG,UAAU,CAAsB;IACzE,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,wCAAwC;YACrD,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,eAAe,EAAE,+BAA+B;SACjD;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,iBAAiB,GAAsB,IAAI,OAAO,EAAE,CAAC;QAE3D,SAAS,cAAc,CAAC,IAAqC;YAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAE/C,IACE,CAAC,eAAe,CACd,OAAO,EACP,IAAI,EACJ,sBAAsB,EACtB,iBAAiB,CAClB,EACD,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,IAAI,CAAC,EAAE;oBACb,SAAS,EAAE,iBAAiB;iBAC7B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
|
package/dist/src/rules.d.ts
CHANGED
|
@@ -145,5 +145,8 @@ export declare const rules: {
|
|
|
145
145
|
"strict-void-functions": import("@typescript-eslint/utils/ts-eslint").RuleModule<"mismatchedReturnType", [], import("./interfaces/MyPluginDocs.js").MyPluginDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
146
146
|
name: string;
|
|
147
147
|
};
|
|
148
|
+
"type-declaration-immutability": import("@typescript-eslint/utils/ts-eslint").RuleModule<"mustBeImmutable", [], import("./interfaces/MyPluginDocs.js").MyPluginDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
149
|
+
name: string;
|
|
150
|
+
};
|
|
148
151
|
};
|
|
149
152
|
//# sourceMappingURL=rules.d.ts.map
|
package/dist/src/rules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/rules.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/rules.ts"],"names":[],"mappings":"AAoDA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDjB,CAAC"}
|
package/dist/src/rules.js
CHANGED
|
@@ -47,6 +47,7 @@ import { strictArrayMethods } from "./rules/strict-array-methods.js";
|
|
|
47
47
|
import { strictEnums } from "./rules/strict-enums.js";
|
|
48
48
|
import { strictUndefinedFunctions } from "./rules/strict-undefined-functions.js";
|
|
49
49
|
import { strictVoidFunctions } from "./rules/strict-void-functions.js";
|
|
50
|
+
import { typeDeclarationImmutability } from "./rules/type-declaration-immutability.js";
|
|
50
51
|
export const rules = {
|
|
51
52
|
"complete-sentences-jsdoc": completeSentencesJSDoc,
|
|
52
53
|
"complete-sentences-line-comments": completeSentencesLineComments,
|
|
@@ -94,5 +95,6 @@ export const rules = {
|
|
|
94
95
|
"strict-enums": strictEnums,
|
|
95
96
|
"strict-undefined-functions": strictUndefinedFunctions,
|
|
96
97
|
"strict-void-functions": strictVoidFunctions,
|
|
98
|
+
"type-declaration-immutability": typeDeclarationImmutability,
|
|
97
99
|
};
|
|
98
100
|
//# sourceMappingURL=rules.js.map
|
package/dist/src/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../../src/rules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../../src/rules.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-complete",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.1",
|
|
4
4
|
"description": "An ESLint plugin that contains useful rules.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -36,14 +36,15 @@
|
|
|
36
36
|
"scripts": {
|
|
37
37
|
"build": "bun run ./scripts/build.ts",
|
|
38
38
|
"create-rule": "bun run ./scripts/createRule.ts",
|
|
39
|
-
"docs": "bun run build && eslint-doc-generator",
|
|
39
|
+
"docs": "bun run build && eslint-doc-generator && bunx prettier --write .",
|
|
40
40
|
"generate": "bun run ./scripts/generate.ts",
|
|
41
41
|
"lint": "bun run ./scripts/lint.ts",
|
|
42
42
|
"test": "jest"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@typescript-eslint/type-utils": "8.68.0",
|
|
46
|
-
"@typescript-eslint/utils": "8.68.0"
|
|
46
|
+
"@typescript-eslint/utils": "8.68.0",
|
|
47
|
+
"is-immutable-type": "5.0.4"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
49
50
|
"@babel/core": "7.29.7",
|
|
@@ -55,7 +56,7 @@
|
|
|
55
56
|
"@typescript-eslint/types": "8.68.0",
|
|
56
57
|
"complete-common": "2.32.0",
|
|
57
58
|
"complete-node": "18.0.1",
|
|
58
|
-
"eslint-doc-generator": "3.7.
|
|
59
|
+
"eslint-doc-generator": "3.7.1",
|
|
59
60
|
"jest": "30.4.2",
|
|
60
61
|
"prettier": "3.9.6",
|
|
61
62
|
"typescript": "6.0.3"
|