@definitelytyped/eslint-plugin 0.0.188 → 0.0.190

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.
Files changed (97) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/rules/export-just-namespace.d.ts +1 -1
  3. package/dist/rules/export-just-namespace.js +0 -1
  4. package/dist/rules/export-just-namespace.js.map +1 -1
  5. package/dist/rules/index.d.ts +18 -18
  6. package/dist/rules/no-any-union.d.ts +1 -1
  7. package/dist/rules/no-any-union.js +0 -1
  8. package/dist/rules/no-any-union.js.map +1 -1
  9. package/dist/rules/no-bad-reference.d.ts +1 -1
  10. package/dist/rules/no-bad-reference.js +0 -1
  11. package/dist/rules/no-bad-reference.js.map +1 -1
  12. package/dist/rules/no-const-enum.d.ts +1 -1
  13. package/dist/rules/no-const-enum.js +7 -6
  14. package/dist/rules/no-const-enum.js.map +1 -1
  15. package/dist/rules/no-dead-reference.d.ts +1 -1
  16. package/dist/rules/no-dead-reference.js +0 -1
  17. package/dist/rules/no-dead-reference.js.map +1 -1
  18. package/dist/rules/no-declare-current-package.d.ts +1 -1
  19. package/dist/rules/no-declare-current-package.js +0 -1
  20. package/dist/rules/no-declare-current-package.js.map +1 -1
  21. package/dist/rules/no-import-default-of-export-equals.d.ts +1 -1
  22. package/dist/rules/no-import-default-of-export-equals.js +0 -1
  23. package/dist/rules/no-import-default-of-export-equals.js.map +1 -1
  24. package/dist/rules/no-import-of-dev-dependencies.d.ts +1 -1
  25. package/dist/rules/no-import-of-dev-dependencies.js +0 -1
  26. package/dist/rules/no-import-of-dev-dependencies.js.map +1 -1
  27. package/dist/rules/no-old-dt-header.d.ts +1 -1
  28. package/dist/rules/no-old-dt-header.js +0 -1
  29. package/dist/rules/no-old-dt-header.js.map +1 -1
  30. package/dist/rules/no-relative-import-in-test.d.ts +1 -1
  31. package/dist/rules/no-relative-import-in-test.js +0 -1
  32. package/dist/rules/no-relative-import-in-test.js.map +1 -1
  33. package/dist/rules/no-self-import.d.ts +1 -1
  34. package/dist/rules/no-self-import.js +0 -1
  35. package/dist/rules/no-self-import.js.map +1 -1
  36. package/dist/rules/no-single-declare-module.d.ts +1 -1
  37. package/dist/rules/no-single-declare-module.js +0 -1
  38. package/dist/rules/no-single-declare-module.js.map +1 -1
  39. package/dist/rules/no-single-element-tuple-type.d.ts +1 -1
  40. package/dist/rules/no-single-element-tuple-type.js +0 -1
  41. package/dist/rules/no-single-element-tuple-type.js.map +1 -1
  42. package/dist/rules/no-unnecessary-generics.d.ts +1 -1
  43. package/dist/rules/no-unnecessary-generics.js +0 -1
  44. package/dist/rules/no-unnecessary-generics.js.map +1 -1
  45. package/dist/rules/no-useless-files.d.ts +1 -1
  46. package/dist/rules/no-useless-files.js +0 -1
  47. package/dist/rules/no-useless-files.js.map +1 -1
  48. package/dist/rules/prefer-declare-function.d.ts +1 -1
  49. package/dist/rules/prefer-declare-function.js +0 -1
  50. package/dist/rules/prefer-declare-function.js.map +1 -1
  51. package/dist/rules/redundant-undefined.d.ts +1 -1
  52. package/dist/rules/redundant-undefined.js +0 -1
  53. package/dist/rules/redundant-undefined.js.map +1 -1
  54. package/dist/rules/strict-export-declare-modifiers.d.ts +1 -1
  55. package/dist/rules/strict-export-declare-modifiers.js +5 -2
  56. package/dist/rules/strict-export-declare-modifiers.js.map +1 -1
  57. package/dist/util.d.ts +4 -5
  58. package/dist/util.js +0 -2
  59. package/dist/util.js.map +1 -1
  60. package/package.json +7 -6
  61. package/src/rules/export-just-namespace.ts +0 -1
  62. package/src/rules/no-any-union.ts +0 -1
  63. package/src/rules/no-bad-reference.ts +1 -2
  64. package/src/rules/no-const-enum.ts +7 -6
  65. package/src/rules/no-dead-reference.ts +0 -1
  66. package/src/rules/no-declare-current-package.ts +0 -1
  67. package/src/rules/no-import-default-of-export-equals.ts +4 -5
  68. package/src/rules/no-import-of-dev-dependencies.ts +0 -1
  69. package/src/rules/no-old-dt-header.ts +0 -1
  70. package/src/rules/no-relative-import-in-test.ts +0 -1
  71. package/src/rules/no-self-import.ts +0 -1
  72. package/src/rules/no-single-declare-module.ts +0 -1
  73. package/src/rules/no-single-element-tuple-type.ts +0 -1
  74. package/src/rules/no-unnecessary-generics.ts +0 -1
  75. package/src/rules/no-useless-files.ts +0 -1
  76. package/src/rules/prefer-declare-function.ts +0 -1
  77. package/src/rules/redundant-undefined.ts +0 -1
  78. package/src/rules/strict-export-declare-modifiers.ts +6 -3
  79. package/src/util.ts +11 -8
  80. package/test/export-just-namespace.test.ts +2 -4
  81. package/test/fixtureTester.ts +7 -8
  82. package/test/no-any-union.test.ts +2 -4
  83. package/test/no-const-enum.test.ts +2 -4
  84. package/test/no-dead-reference.test.ts +2 -4
  85. package/test/no-import-default-of-export-equals.test.ts +2 -2
  86. package/test/no-old-dt-header.test.ts +2 -4
  87. package/test/no-relative-import-in-test.test.ts +2 -2
  88. package/test/no-single-declare-module.test.ts +2 -3
  89. package/test/no-single-element-tuple-type.test.ts +2 -4
  90. package/test/no-unnecessary-generics.test.ts +3 -3
  91. package/test/no-useless-files.test.ts +2 -4
  92. package/test/prefer-declare-function.test.ts +2 -4
  93. package/test/redundant-undefined.test.ts +2 -4
  94. package/test/strict-export-declare-modifiers.test.ts +2 -4
  95. package/test/tsconfig.json +9 -6
  96. package/test/tsconfig.test.json +10 -0
  97. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"strict-export-declare-modifiers.js","sourceRoot":"","sources":["../../src/rules/strict-export-declare-modifiers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strict-export-declare-modifiers.js","sourceRoot":"","sources":["../../src/rules/strict-export-declare-modifiers.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -1,9 +1,8 @@
1
- import { TSESTree } from "@typescript-eslint/utils";
2
- import { RuleWithMetaAndName } from "@typescript-eslint/utils/dist/eslint-utils";
3
- import { RuleListener, RuleModule, SourceCode } from "@typescript-eslint/utils/dist/ts-eslint";
4
- export declare const createRule: <TOptions extends readonly unknown[], TMessageIds extends string>(opts: Readonly<RuleWithMetaAndName<TOptions, TMessageIds, RuleListener>>) => RuleModule<TMessageIds, TOptions>;
1
+ import { TSESLint, TSESTree, ESLintUtils } from "@typescript-eslint/utils";
2
+ export type RuleModule<TOptions extends readonly unknown[], TMessageIds extends string> = TSESLint.RuleModule<TMessageIds, TOptions>;
3
+ export declare const createRule: <TOptions extends readonly unknown[], TMessageIds extends string>(opts: Readonly<ESLintUtils.RuleWithMetaAndName<TOptions, TMessageIds>>) => RuleModule<TOptions, TMessageIds>;
5
4
  export declare function getTypesPackageForDeclarationFile(file: string): string | undefined;
6
- export declare function commentsMatching(sourceFile: Readonly<SourceCode>, regex: RegExp, f: (match: string, c: TSESTree.Comment) => void): void;
5
+ export declare function commentsMatching(sourceFile: Readonly<TSESLint.SourceCode>, regex: RegExp, f: (match: string, c: TSESTree.Comment) => void): void;
7
6
  export interface TypesPackageInfo {
8
7
  dir: string;
9
8
  /** package.json with name="@types/foo__bar-baz" */
package/dist/util.js CHANGED
@@ -8,8 +8,6 @@ const utils_1 = require("@definitelytyped/utils");
8
8
  const utils_2 = require("@typescript-eslint/utils");
9
9
  const path_1 = __importDefault(require("path"));
10
10
  const fs_1 = __importDefault(require("fs"));
11
- // Possible TS bug can't figure out how to do declaration emit of created rules
12
- // without an explicit type annotation here due to pnpm symlink stuff
13
11
  exports.createRule = utils_2.ESLintUtils.RuleCreator((name) => `https://github.com/microsoft/DefinitelyTyped-tools/tree/master/packages/eslint-plugin/docs/rules/${name}.md`);
14
12
  function getTypesPackageForDeclarationFile(file) {
15
13
  var _a;
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAuF;AACvF,oDAAiE;AAGjE,gDAAwB;AACxB,4CAAoB;AAEpB,+EAA+E;AAC/E,qEAAqE;AACxD,QAAA,UAAU,GAEkB,mBAAW,CAAC,WAAW,CAC9D,CAAC,IAAI,EAAE,EAAE,CACP,oGAAoG,IAAI,KAAK,CAChH,CAAC;AAEF,SAAgB,iCAAiC,CAAC,IAAY;;IAC5D,IAAI,CAAC,IAAA,yBAAiB,EAAC,IAAI,CAAC,EAAE;QAC5B,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,MAAA,gBAAgB,CAAC,IAAI,CAAC,0CAAE,QAAQ,CAAC;AAC1C,CAAC;AALD,8EAKC;AAED,SAAgB,gBAAgB,CAC9B,UAAgC,EAChC,KAAa,EACb,CAA+C;IAE/C,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;KACzB;AACH,CAAC;AATD,4CASC;AAED,SAAS,MAAM,CAAe,CAAS,EAAE,EAAgC;IACvE,CAAC,GAAG,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,IAAI,GAAG,cAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhC,OAAO,IAAI,EAAE;QACX,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,SAAS,EAAE;YACnB,OAAO,CAAC,CAAC;SACV;QACD,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,MAAM;SACP;QACD,CAAC,GAAG,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACrB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAkBD,0DAA0D;AAC1D,SAAS,cAAc,CAAC,WAAiC;IACvD,OAAO,CACL,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ;QACpC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACtC,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ;QACvC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;QACxB,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;YACnC,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,mBAAmB,GAAG,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;YAChC,OAAO,SAAS,CAAC;SAClB;QACD,OAAO;YACL,GAAG,EAAE,CAAC;YACN,WAAW;YACX,QAAQ,EAAE,IAAA,kCAA0B,EAAC,WAAW,CAAC,IAAI,CAAC;SACvD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAlBD,4CAkBC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAuF;AACvF,oDAA2E;AAC3E,gDAAwB;AACxB,4CAAoB;AASP,QAAA,UAAU,GAEkB,mBAAW,CAAC,WAAW,CAC9D,CAAC,IAAI,EAAE,EAAE,CACP,oGAAoG,IAAI,KAAK,CAChH,CAAC;AAEF,SAAgB,iCAAiC,CAAC,IAAY;;IAC5D,IAAI,CAAC,IAAA,yBAAiB,EAAC,IAAI,CAAC,EAAE;QAC5B,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,MAAA,gBAAgB,CAAC,IAAI,CAAC,0CAAE,QAAQ,CAAC;AAC1C,CAAC;AALD,8EAKC;AAED,SAAgB,gBAAgB,CAC9B,UAAyC,EACzC,KAAa,EACb,CAA+C;IAE/C,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;KACzB;AACH,CAAC;AATD,4CASC;AAED,SAAS,MAAM,CAAe,CAAS,EAAE,EAAgC;IACvE,CAAC,GAAG,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,IAAI,GAAG,cAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhC,OAAO,IAAI,EAAE;QACX,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,SAAS,EAAE;YACnB,OAAO,CAAC,CAAC;SACV;QACD,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,MAAM;SACP;QACD,CAAC,GAAG,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACrB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAkBD,0DAA0D;AAC1D,SAAS,cAAc,CAAC,WAAiC;IACvD,OAAO,CACL,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ;QACpC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACtC,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ;QACvC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;QACxB,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;YACnC,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,mBAAmB,GAAG,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;YAChC,OAAO,SAAS,CAAC;SAClB;QACD,OAAO;YACL,GAAG,EAAE,CAAC;YACN,WAAW;YACX,QAAQ,EAAE,IAAA,kCAA0B,EAAC,WAAW,CAAC,IAAI,CAAC;SACvD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAlBD,4CAkBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@definitelytyped/eslint-plugin",
3
- "version": "0.0.188",
3
+ "version": "0.0.190",
4
4
  "description": "ESLint rules for DefinitelyTyped",
5
5
  "main": "./dist/index.js",
6
6
  "publishConfig": {
@@ -18,9 +18,9 @@
18
18
  "directory": "packages/eslint-plugin"
19
19
  },
20
20
  "dependencies": {
21
- "@typescript-eslint/types": "^5.56.0",
22
- "@typescript-eslint/utils": "^5.55.0",
23
- "@definitelytyped/utils": "0.0.184"
21
+ "@typescript-eslint/types": "^6.11.0",
22
+ "@typescript-eslint/utils": "^6.11.0",
23
+ "@definitelytyped/utils": "0.0.186"
24
24
  },
25
25
  "peerDependencies": {
26
26
  "@typescript-eslint/eslint-plugin": "^5.0.0",
@@ -30,11 +30,12 @@
30
30
  "typescript": ">= 3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.7.0-dev || >= 3.8.0-dev || >= 3.9.0-dev || >= 4.0.0-dev || >=5.0.0-dev"
31
31
  },
32
32
  "devDependencies": {
33
- "@types/eslint": "^8.4.2",
33
+ "@types/eslint": "^8.44.7",
34
+ "@typescript-eslint/rule-tester": "^6.11.0",
34
35
  "typescript": "^5.2.2"
35
36
  },
36
37
  "engines": {
37
- "node": ">=10.0.0"
38
+ "node": ">=16.17.0"
38
39
  },
39
40
  "license": "MIT",
40
41
  "scripts": {
@@ -13,7 +13,6 @@ const rule = createRule({
13
13
  docs: {
14
14
  description:
15
15
  "Forbids `export = foo` where `foo` is a namespace and isn't merged with a function/class/type/interface.",
16
- recommended: "error",
17
16
  },
18
17
  messages: {
19
18
  useTheBody: "Instead of `export =`-ing a namespace, use the body of the namespace as the module body.",
@@ -8,7 +8,6 @@ const rule = createRule({
8
8
  type: "problem",
9
9
  docs: {
10
10
  description: "Forbid a union to contain `any`",
11
- recommended: "error",
12
11
  },
13
12
  messages: {
14
13
  anyUnion: "Including `any` in a union will override all other members of the union.",
@@ -18,7 +18,6 @@ const rule = createRule({
18
18
  docs: {
19
19
  description:
20
20
  "Forbids bad references, including those that resolve outside of the package or path references in non-declaration files.",
21
- recommended: "error",
22
21
  },
23
22
  messages: {
24
23
  importOutside:
@@ -85,7 +84,7 @@ const rule = createRule({
85
84
  const p = ref.text.startsWith(realNamePlusSlash)
86
85
  ? path.posix.join(
87
86
  path.posix.relative(containingDirectory, typesPackage.dir),
88
- ref.text.slice(realNamePlusSlash.length)
87
+ ref.text.slice(realNamePlusSlash.length),
89
88
  )
90
89
  : ref.text;
91
90
 
@@ -7,7 +7,6 @@ const rule = createRule({
7
7
  type: "problem",
8
8
  docs: {
9
9
  description: "Forbid `const enum`",
10
- recommended: "error",
11
10
  },
12
11
  messages: {
13
12
  constEnum: "Use of `const enum` is forbidden.",
@@ -17,11 +16,13 @@ const rule = createRule({
17
16
  create(context) {
18
17
  return {
19
18
  // eslint-disable-next-line @typescript-eslint/naming-convention
20
- "TSEnumDeclaration[const]"(node) {
21
- context.report({
22
- messageId: "constEnum",
23
- node,
24
- });
19
+ TSEnumDeclaration(node) {
20
+ if (node.const) {
21
+ context.report({
22
+ messageId: "constEnum",
23
+ node,
24
+ });
25
+ }
25
26
  },
26
27
  };
27
28
  },
@@ -7,7 +7,6 @@ const rule = createRule({
7
7
  type: "problem",
8
8
  docs: {
9
9
  description: "Ensures that all `/// <reference>` comments go at the top of the file.",
10
- recommended: "error",
11
10
  },
12
11
  messages: {
13
12
  referenceAtTop: "`/// <reference>` directive must be at top of file to take effect.",
@@ -8,7 +8,6 @@ const rule = createRule({
8
8
  type: "problem",
9
9
  docs: {
10
10
  description: "Don't use an ambient module declaration of the current package; use a normal module.",
11
- recommended: "error",
12
11
  },
13
12
  messages: {
14
13
  noDeclareCurrentPackage:
@@ -10,7 +10,6 @@ const rule = createRule({
10
10
  type: "problem",
11
11
  docs: {
12
12
  description: "Forbid a default import to reference an `export =` module.",
13
- recommended: "error",
14
13
  },
15
14
  messages: {
16
15
  noImportDefaultOfExportEquals: `The module {{moduleName}} uses \`export = \`. Import with \`import {{importName}} = require({{moduleName}})\`.`,
@@ -32,8 +31,8 @@ const rule = createRule({
32
31
  const source = parserServices.esTreeNodeToTSNodeMap.get(node.source);
33
32
  const sym = checker.getSymbolAtLocation(source);
34
33
  if (
35
- sym?.declarations?.some((d) =>
36
- getStatements(d)?.some((s) => ts.isExportAssignment(s) && !!s.isExportEquals)
34
+ sym?.declarations?.some(
35
+ (d) => getStatements(d)?.some((s) => ts.isExportAssignment(s) && !!s.isExportEquals),
37
36
  )
38
37
  ) {
39
38
  context.report({
@@ -54,8 +53,8 @@ function getStatements(decl: ts.Declaration): readonly ts.Statement[] | undefine
54
53
  return ts.isSourceFile(decl)
55
54
  ? decl.statements
56
55
  : ts.isModuleDeclaration(decl)
57
- ? getModuleDeclarationStatements(decl)
58
- : undefined;
56
+ ? getModuleDeclarationStatements(decl)
57
+ : undefined;
59
58
  }
60
59
 
61
60
  function getModuleDeclarationStatements(node: ts.ModuleDeclaration): readonly ts.Statement[] | undefined {
@@ -10,7 +10,6 @@ const rule = createRule({
10
10
  type: "problem",
11
11
  docs: {
12
12
  description: "Forbid imports and references to devDependencies inside .d.ts files.",
13
- recommended: "error",
14
13
  },
15
14
  messages: {
16
15
  noImportOfDevDependencies: `.d.ts files may not import packages in devDependencies.`,
@@ -8,7 +8,6 @@ const rule = createRule({
8
8
  type: "problem",
9
9
  docs: {
10
10
  description: `Forbids <reference path="./vNN"/> in all files, <reference path="../etc"/> in declaration files, and all <reference path> in test files.`,
11
- recommended: "error",
12
11
  },
13
12
  messages: {
14
13
  noOldDTHeader:
@@ -10,7 +10,6 @@ const rule = createRule({
10
10
  type: "problem",
11
11
  docs: {
12
12
  description: "Forbids test (non-declaration) files to use relative imports.",
13
- recommended: "error",
14
13
  },
15
14
  messages: {
16
15
  useGlobalImport:
@@ -7,7 +7,6 @@ const rule = createRule({
7
7
  docs: {
8
8
  description:
9
9
  "Forbids declaration files to import the current package using a global import or old versions with a relative import.",
10
- recommended: "error",
11
10
  },
12
11
  messages: {
13
12
  useRelativeImport: "Declaration file should not use a global import of itself. Use a relative import.",
@@ -8,7 +8,6 @@ const rule = createRule({
8
8
  meta: {
9
9
  docs: {
10
10
  description: "Don't use an ambient module declaration if there's just one -- write it as a normal module.",
11
- recommended: "error",
12
11
  },
13
12
  messages: {
14
13
  oneModuleDeclaration:
@@ -8,7 +8,6 @@ const rule = createRule({
8
8
  type: "problem",
9
9
  docs: {
10
10
  description: "Forbids `[T]`, which should be `T[]`.",
11
- recommended: "error",
12
11
  },
13
12
  messages: {
14
13
  singleElementTupleType: `Type [T] is a single-element tuple type. You probably meant T[].`,
@@ -16,7 +16,6 @@ const rule = createRule({
16
16
  meta: {
17
17
  docs: {
18
18
  description: "Forbids signatures using a generic parameter only once.",
19
- recommended: "error",
20
19
  },
21
20
  messages: {
22
21
  never: "Type parameter {{name}} is never used.",
@@ -7,7 +7,6 @@ const rule = createRule({
7
7
  type: "problem",
8
8
  docs: {
9
9
  description: "Forbids files with no content.",
10
- recommended: "error",
11
10
  },
12
11
  messages: {
13
12
  noContent: "File has no content.",
@@ -8,7 +8,6 @@ const rule = createRule({
8
8
  meta: {
9
9
  docs: {
10
10
  description: "Forbids `const x: () => void`.",
11
- recommended: "error",
12
11
  },
13
12
  messages: {
14
13
  variableFunction: "Use a function declaration instead of a variable of function type.",
@@ -10,7 +10,6 @@ const rule = createRule({
10
10
  docs: {
11
11
  description:
12
12
  "Forbids optional parameters from including an explicit `undefined` in their type; requires it in optional properties.",
13
- recommended: "error",
14
13
  },
15
14
  messages: {
16
15
  redundantUndefined: `Parameter is optional, so no need to include \`undefined\` in the type.`,
@@ -9,7 +9,6 @@ const rule = createRule({
9
9
  type: "problem",
10
10
  docs: {
11
11
  description: "Enforces strict rules about where the 'export' and 'declare' modifiers may appear.",
12
- recommended: "error",
13
12
  },
14
13
  messages: {
15
14
  missingExplicitExport:
@@ -39,7 +38,7 @@ const rule = createRule({
39
38
  !sourceFile.statements.some(
40
39
  (s) =>
41
40
  s.kind === ts.SyntaxKind.ExportAssignment ||
42
- (s.kind === ts.SyntaxKind.ExportDeclaration && !!(s as ts.ExportDeclaration).exportClause)
41
+ (s.kind === ts.SyntaxKind.ExportDeclaration && !!(s as ts.ExportDeclaration).exportClause),
43
42
  ) &&
44
43
  ts.isExternalModule(sourceFile);
45
44
 
@@ -74,9 +73,13 @@ const rule = createRule({
74
73
  });
75
74
  }
76
75
  if (autoExportEnabled && !isExport(node)) {
76
+ const n = (node as ts.DeclarationStatement).name || node;
77
77
  context.report({
78
78
  messageId: "missingExplicitExport",
79
- node: services.tsNodeToESTreeNodeMap.get((node as ts.DeclarationStatement).name || node),
79
+ loc: {
80
+ end: sourceCode.getLocFromIndex(n.end),
81
+ start: sourceCode.getLocFromIndex(n.getStart(sourceFile)),
82
+ },
80
83
  });
81
84
  }
82
85
  }
package/src/util.ts CHANGED
@@ -1,17 +1,20 @@
1
1
  import { isDeclarationPath, typesPackageNameToRealName } from "@definitelytyped/utils";
2
- import { TSESTree, ESLintUtils } from "@typescript-eslint/utils";
3
- import { RuleWithMetaAndName } from "@typescript-eslint/utils/dist/eslint-utils";
4
- import { RuleListener, RuleModule, SourceCode } from "@typescript-eslint/utils/dist/ts-eslint";
2
+ import { TSESLint, TSESTree, ESLintUtils } from "@typescript-eslint/utils";
5
3
  import path from "path";
6
4
  import fs from "fs";
7
5
 
8
6
  // Possible TS bug can't figure out how to do declaration emit of created rules
9
7
  // without an explicit type annotation here due to pnpm symlink stuff
8
+ export type RuleModule<TOptions extends readonly unknown[], TMessageIds extends string> = TSESLint.RuleModule<
9
+ TMessageIds,
10
+ TOptions
11
+ >;
12
+
10
13
  export const createRule: <TOptions extends readonly unknown[], TMessageIds extends string>(
11
- opts: Readonly<RuleWithMetaAndName<TOptions, TMessageIds, RuleListener>>
12
- ) => RuleModule<TMessageIds, TOptions> = ESLintUtils.RuleCreator(
14
+ opts: Readonly<ESLintUtils.RuleWithMetaAndName<TOptions, TMessageIds>>,
15
+ ) => RuleModule<TOptions, TMessageIds> = ESLintUtils.RuleCreator(
13
16
  (name) =>
14
- `https://github.com/microsoft/DefinitelyTyped-tools/tree/master/packages/eslint-plugin/docs/rules/${name}.md`
17
+ `https://github.com/microsoft/DefinitelyTyped-tools/tree/master/packages/eslint-plugin/docs/rules/${name}.md`,
15
18
  );
16
19
 
17
20
  export function getTypesPackageForDeclarationFile(file: string) {
@@ -22,9 +25,9 @@ export function getTypesPackageForDeclarationFile(file: string) {
22
25
  }
23
26
 
24
27
  export function commentsMatching(
25
- sourceFile: Readonly<SourceCode>,
28
+ sourceFile: Readonly<TSESLint.SourceCode>,
26
29
  regex: RegExp,
27
- f: (match: string, c: TSESTree.Comment) => void
30
+ f: (match: string, c: TSESTree.Comment) => void,
28
31
  ): void {
29
32
  for (const comment of sourceFile.ast.comments) {
30
33
  const m = comment.value.match(regex);
@@ -1,10 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import * as exportJustNamespace from "../src/rules/export-just-namespace";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
6
- parser: "@typescript-eslint/parser",
7
- });
5
+ const ruleTester = new RuleTester();
8
6
 
9
7
  ruleTester.run("@definitelytyped/export-just-namespace", exportJustNamespace, {
10
8
  invalid: [
@@ -1,4 +1,5 @@
1
- import { TSESLint, ESLintUtils } from "@typescript-eslint/utils";
1
+ import { TSESLint } from "@typescript-eslint/utils";
2
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
3
  import path from "path";
3
4
  import fs from "fs";
4
5
 
@@ -28,15 +29,15 @@ interface RunTests<TMessageIds extends string, TOptions extends Readonly<unknown
28
29
  }
29
30
 
30
31
  function convertTestCase<TOptions extends Readonly<unknown[]>>(
31
- test: ValidTestCase<TOptions>
32
+ test: ValidTestCase<TOptions>,
32
33
  ): TSESLint.ValidTestCase<TOptions>;
33
34
  function convertTestCase<TMessageIds extends string, TOptions extends Readonly<unknown[]>>(
34
- test: InvalidTestCase<TMessageIds, TOptions>
35
+ test: InvalidTestCase<TMessageIds, TOptions>,
35
36
  ): TSESLint.InvalidTestCase<TMessageIds, TOptions>;
36
37
  function convertTestCase<
37
38
  TMessageIds extends string,
38
39
  TOptions extends Readonly<unknown[]>,
39
- T extends ValidTestCase<TOptions> | InvalidTestCase<TMessageIds, TOptions>
40
+ T extends ValidTestCase<TOptions> | InvalidTestCase<TMessageIds, TOptions>,
40
41
  >(test: T): TSESLint.ValidTestCase<TOptions> | TSESLint.InvalidTestCase<TMessageIds, TOptions> {
41
42
  const fixture = getFixturePath(test.filename);
42
43
  const code = fs.readFileSync(fixture, "utf8");
@@ -51,11 +52,9 @@ function convertTestCase<
51
52
  export function runTestsWithFixtures<TMessageIds extends string, TOptions extends Readonly<unknown[]>>(
52
53
  name: string,
53
54
  rule: TSESLint.RuleModule<TMessageIds, TOptions>,
54
- tests: RunTests<TMessageIds, TOptions>
55
+ tests: RunTests<TMessageIds, TOptions>,
55
56
  ): void {
56
- const ruleTester = new ESLintUtils.RuleTester({
57
- parser: "@typescript-eslint/parser",
58
- });
57
+ const ruleTester = new RuleTester();
59
58
 
60
59
  return ruleTester.run(name, rule, {
61
60
  valid: tests.valid.map(convertTestCase<TOptions>),
@@ -1,10 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import * as noAnyUnion from "../src/rules/no-any-union";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
6
- parser: "@typescript-eslint/parser",
7
- });
5
+ const ruleTester = new RuleTester();
8
6
 
9
7
  ruleTester.run("@definitelytyped/no-any-union", noAnyUnion, {
10
8
  invalid: [
@@ -1,10 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import * as noConstEnum from "../src/rules/no-const-enum";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
6
- parser: "@typescript-eslint/parser",
7
- });
5
+ const ruleTester = new RuleTester();
8
6
 
9
7
  ruleTester.run("@definitelytyped/no-const-enum", noConstEnum, {
10
8
  invalid: [
@@ -1,10 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import * as noDeadReference from "../src/rules/no-dead-reference";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
6
- parser: "@typescript-eslint/parser",
7
- });
5
+ const ruleTester = new RuleTester();
8
6
 
9
7
  ruleTester.run("@definitelytyped/no-dead-reference", noDeadReference, {
10
8
  invalid: [
@@ -1,8 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import * as noImportDefaultOfExportEquals from "../src/rules/no-import-default-of-export-equals";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
5
+ const ruleTester = new RuleTester({
6
6
  parser: "@typescript-eslint/parser",
7
7
  parserOptions: {
8
8
  ecmaVersion: 2018,
@@ -1,10 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import * as noOldDtHeader from "../src/rules/no-old-dt-header";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
6
- parser: "@typescript-eslint/parser",
7
- });
5
+ const ruleTester = new RuleTester();
8
6
 
9
7
  ruleTester.run("@definitelytyped/no-old-dt-header", noOldDtHeader, {
10
8
  invalid: [
@@ -1,8 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import rule from "../src/rules/no-relative-import-in-test";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
5
+ const ruleTester = new RuleTester({
6
6
  parser: "@typescript-eslint/parser",
7
7
  parserOptions: {
8
8
  tsconfigRootDir: __dirname,
@@ -1,9 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
2
- import path from "path";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
3
2
 
4
3
  import rule from "../src/rules/no-single-declare-module";
5
4
 
6
- const ruleTester = new ESLintUtils.RuleTester({
5
+ const ruleTester = new RuleTester({
7
6
  parser: "@typescript-eslint/parser",
8
7
  parserOptions: {
9
8
  tsconfigRootDir: __dirname,
@@ -1,10 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import * as noDeclareCurrentPackage from "../src/rules/no-single-element-tuple-type";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
6
- parser: "@typescript-eslint/parser",
7
- });
5
+ const ruleTester = new RuleTester();
8
6
 
9
7
  ruleTester.run("@definitelytyped/no-single-element-tuple-type", noDeclareCurrentPackage, {
10
8
  invalid: [
@@ -1,12 +1,12 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import * as rule from "../src/rules/no-unnecessary-generics";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
5
+ const ruleTester = new RuleTester({
6
6
  parserOptions: {
7
7
  ecmaVersion: 2018,
8
8
  tsconfigRootDir: __dirname,
9
- project: "./tsconfig.json",
9
+ project: "./tsconfig.test.json",
10
10
  },
11
11
  parser: "@typescript-eslint/parser",
12
12
  });
@@ -1,9 +1,7 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
  import * as noUselessFiles from "../src/rules/no-useless-files";
3
3
 
4
- const ruleTester = new ESLintUtils.RuleTester({
5
- parser: "@typescript-eslint/parser",
6
- });
4
+ const ruleTester = new RuleTester();
7
5
 
8
6
  ruleTester.run("@definitelytyped/no-useless-files", noUselessFiles, {
9
7
  invalid: [
@@ -1,10 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import * as preferDeclareFunction from "../src/rules/prefer-declare-function";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
6
- parser: "@typescript-eslint/parser",
7
- });
5
+ const ruleTester = new RuleTester();
8
6
 
9
7
  ruleTester.run("@definitelytyped/prefer-declare-function", preferDeclareFunction, {
10
8
  invalid: [
@@ -1,10 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import * as redundantUndefined from "../src/rules/redundant-undefined";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
6
- parser: "@typescript-eslint/parser",
7
- });
5
+ const ruleTester = new RuleTester();
8
6
 
9
7
  ruleTester.run("@definitelytyped/redundant-undefined", redundantUndefined, {
10
8
  invalid: [
@@ -1,10 +1,8 @@
1
- import { ESLintUtils } from "@typescript-eslint/utils";
1
+ import { RuleTester } from "@typescript-eslint/rule-tester";
2
2
 
3
3
  import * as strictExportDeclareModifiers from "../src/rules/strict-export-declare-modifiers";
4
4
 
5
- const ruleTester = new ESLintUtils.RuleTester({
6
- parser: "@typescript-eslint/parser",
7
- });
5
+ const ruleTester = new RuleTester();
8
6
 
9
7
  ruleTester.run("strict-export-declare-modifiers", strictExportDeclareModifiers, {
10
8
  invalid: [