@definitelytyped/dtslint 0.0.166 → 0.0.167-next.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.
Files changed (109) hide show
  1. package/dist/lint.js +3 -1
  2. package/dist/lint.js.map +1 -1
  3. package/dist/rules/dt-header.d.ts +2 -0
  4. package/dist/rules/dt-header.js +62 -0
  5. package/dist/rules/dt-header.js.map +1 -0
  6. package/dist/rules/export-just-namespace.d.ts +2 -0
  7. package/dist/rules/export-just-namespace.js +70 -0
  8. package/dist/rules/export-just-namespace.js.map +1 -0
  9. package/dist/rules/no-any-union.d.ts +4 -0
  10. package/dist/rules/no-any-union.js +34 -0
  11. package/dist/rules/no-any-union.js.map +1 -0
  12. package/dist/rules/no-bad-reference.d.ts +2 -0
  13. package/dist/rules/no-bad-reference.js +55 -0
  14. package/dist/rules/no-bad-reference.js.map +1 -0
  15. package/dist/rules/no-const-enum.d.ts +4 -0
  16. package/dist/rules/no-const-enum.js +30 -0
  17. package/dist/rules/no-const-enum.js.map +1 -0
  18. package/dist/rules/no-dead-reference.d.ts +2 -0
  19. package/dist/rules/no-dead-reference.js +44 -0
  20. package/dist/rules/no-dead-reference.js.map +1 -0
  21. package/dist/rules/no-declare-current-package.d.ts +4 -0
  22. package/dist/rules/no-declare-current-package.js +43 -0
  23. package/dist/rules/no-declare-current-package.js.map +1 -0
  24. package/dist/rules/no-import-default-of-export-equals.d.ts +4 -0
  25. package/dist/rules/no-import-default-of-export-equals.js +87 -0
  26. package/dist/rules/no-import-default-of-export-equals.js.map +1 -0
  27. package/dist/rules/no-outside-dependencies.d.ts +2 -0
  28. package/dist/rules/no-outside-dependencies.js +41 -0
  29. package/dist/rules/no-outside-dependencies.js.map +1 -0
  30. package/dist/rules/no-self-import.d.ts +4 -0
  31. package/dist/rules/no-self-import.js +38 -0
  32. package/dist/rules/no-self-import.js.map +1 -0
  33. package/dist/rules/no-single-element-tuple-type.d.ts +5 -0
  34. package/dist/rules/no-single-element-tuple-type.js +30 -0
  35. package/dist/rules/no-single-element-tuple-type.js.map +1 -0
  36. package/dist/rules/no-unnecessary-generics.d.ts +8 -0
  37. package/dist/rules/no-unnecessary-generics.js +135 -0
  38. package/dist/rules/no-unnecessary-generics.js.map +1 -0
  39. package/dist/rules/no-useless-files.d.ts +2 -0
  40. package/dist/rules/no-useless-files.js +53 -0
  41. package/dist/rules/no-useless-files.js.map +1 -0
  42. package/dist/rules/prefer-declare-function.d.ts +5 -0
  43. package/dist/rules/prefer-declare-function.js +35 -0
  44. package/dist/rules/prefer-declare-function.js.map +1 -0
  45. package/dist/rules/redundant-undefined.d.ts +4 -0
  46. package/dist/rules/redundant-undefined.js +53 -0
  47. package/dist/rules/redundant-undefined.js.map +1 -0
  48. package/dist/rules/trim-file.d.ts +2 -0
  49. package/dist/rules/trim-file.js +43 -0
  50. package/dist/rules/trim-file.js.map +1 -0
  51. package/dist/util.d.ts +4 -0
  52. package/dist/util.js +23 -1
  53. package/dist/util.js.map +1 -1
  54. package/docs/dt-header.md +88 -0
  55. package/docs/export-just-namespace.md +29 -0
  56. package/docs/no-any-union.md +27 -0
  57. package/docs/no-bad-reference.md +28 -0
  58. package/docs/no-const-enum.md +16 -0
  59. package/docs/no-dead-reference.md +17 -0
  60. package/docs/no-declare-current-package.md +35 -0
  61. package/docs/no-import-default-of-export-equals.md +22 -0
  62. package/docs/no-outside-dependencies.md +23 -0
  63. package/docs/no-self-import.md +27 -0
  64. package/docs/no-single-element-tuple-type.md +15 -0
  65. package/docs/no-unnecessary-generics.md +69 -0
  66. package/docs/no-useless-files.md +14 -0
  67. package/docs/prefer-declare-function.md +15 -0
  68. package/docs/redundant-undefined.md +15 -0
  69. package/docs/trim-file.md +17 -0
  70. package/package.json +2 -2
  71. package/src/lint.ts +3 -1
  72. package/src/rules/dt-header.ts +74 -0
  73. package/src/rules/export-just-namespace.ts +83 -0
  74. package/src/rules/no-any-union.ts +34 -0
  75. package/src/rules/no-bad-reference.ts +62 -0
  76. package/src/rules/no-const-enum.ts +30 -0
  77. package/src/rules/no-dead-reference.ts +46 -0
  78. package/src/rules/no-declare-current-package.ts +45 -0
  79. package/src/rules/no-import-default-of-export-equals.ts +68 -0
  80. package/src/rules/no-outside-dependencies.ts +42 -0
  81. package/src/rules/no-self-import.ts +40 -0
  82. package/src/rules/no-single-element-tuple-type.ts +31 -0
  83. package/src/rules/no-unnecessary-generics.ts +126 -0
  84. package/src/rules/no-useless-files.ts +58 -0
  85. package/src/rules/prefer-declare-function.ts +37 -0
  86. package/src/rules/redundant-undefined.ts +62 -0
  87. package/src/rules/trim-file.ts +45 -0
  88. package/src/util.ts +25 -0
  89. package/test/dt-header.test.ts +189 -0
  90. package/test/export-just-namespace.test.ts +70 -0
  91. package/test/no-any-union.test.ts +22 -0
  92. package/test/no-bad-reference.test.ts +66 -0
  93. package/test/no-const-enum.test.ts +22 -0
  94. package/test/no-dead-reference.test.ts +66 -0
  95. package/test/no-declare-current-package.test.ts +61 -0
  96. package/test/no-import-default-of-export-equals.test.ts +49 -0
  97. package/test/no-self-import.test.ts +47 -0
  98. package/test/no-single-element-tuple-type.test.ts +28 -0
  99. package/test/no-unnecessary-generics.test.ts +152 -0
  100. package/test/no-useless-files.test.ts +42 -0
  101. package/test/prefer-declare-function.test.ts +66 -0
  102. package/test/redundant-undefined.test.ts +39 -0
  103. package/test/trim-file.test.ts +46 -0
  104. package/test/tsconfig.json +10 -0
  105. package/test/tsconfig.no-declare-current-package.json +11 -0
  106. package/test/tsconfig.no-declare-current-package2.json +11 -0
  107. package/test/tsconfig.no-import-default-of-export-equals.json +11 -0
  108. package/test/tsconfig.no-self-import.json +7 -0
  109. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,152 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as rule from "../src/rules/no-unnecessary-generics";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parserOptions: {
7
+ ecmaVersion: 2018,
8
+ tsconfigRootDir: __dirname,
9
+ project: "./tsconfig.json",
10
+ },
11
+ parser: "@typescript-eslint/parser",
12
+ });
13
+
14
+ ruleTester.run("no-unnecessary-generics", rule, {
15
+ invalid: [
16
+ {
17
+ code: `
18
+ const f2 = <T>(): T => {};
19
+ `,
20
+ errors: [
21
+ {
22
+ line: 2,
23
+ column: 19,
24
+ messageId: "sole",
25
+ },
26
+ ],
27
+ },
28
+ {
29
+ code: `
30
+ class C {
31
+ constructor<T>(x: T) {}
32
+ }
33
+ `,
34
+ errors: [
35
+ {
36
+ line: 3,
37
+ column: 21,
38
+ messageId: "sole",
39
+ },
40
+ ],
41
+ },
42
+ {
43
+ code: `
44
+ function f<T>(): T { }
45
+ `,
46
+ errors: [
47
+ {
48
+ line: 2,
49
+ column: 18,
50
+ messageId: "sole",
51
+ },
52
+ ],
53
+ },
54
+ {
55
+ code: `
56
+ function f<T>(x: { T: number }): void;
57
+ `,
58
+ errors: [
59
+ {
60
+ line: 2,
61
+ column: 12,
62
+ messageId: "never",
63
+ },
64
+ ],
65
+ },
66
+ {
67
+ code: `
68
+ function f<T, U extends T>(u: U): U;
69
+ `,
70
+ errors: [
71
+ {
72
+ line: 2,
73
+ column: 25,
74
+ messageId: "sole",
75
+ },
76
+ ],
77
+ },
78
+ {
79
+ code: `
80
+ const f = function<T>(): T {};
81
+ `,
82
+ errors: [
83
+ {
84
+ line: 2,
85
+ column: 26,
86
+ messageId: "sole",
87
+ },
88
+ ],
89
+ },
90
+ {
91
+ code: `
92
+ interface I {
93
+ <T>(value: T): void;
94
+ }
95
+ `,
96
+ errors: [
97
+ {
98
+ line: 3,
99
+ column: 14,
100
+ messageId: "sole",
101
+ },
102
+ ],
103
+ },
104
+ {
105
+ code: `
106
+ interface I {
107
+ m<T>(x: T): void;
108
+ }
109
+ `,
110
+ errors: [
111
+ {
112
+ line: 3,
113
+ column: 11,
114
+ messageId: "sole",
115
+ },
116
+ ],
117
+ },
118
+ {
119
+ code: `
120
+ type Fn = <T>() => T;
121
+ `,
122
+ errors: [
123
+ {
124
+ line: 2,
125
+ column: 20,
126
+ messageId: "sole",
127
+ },
128
+ ],
129
+ },
130
+ {
131
+ code: `
132
+ type Ctr = new<T>() => T;
133
+ `,
134
+ errors: [
135
+ {
136
+ line: 2,
137
+ column: 24,
138
+ messageId: "sole",
139
+ },
140
+ ],
141
+ },
142
+ ],
143
+ valid: [
144
+ `function example(a: string): string;`,
145
+ `function example<T>(a: T): T;`,
146
+ `function example<T>(a: T[]): T;`,
147
+ `function example<T>(a: Set<T>): T;`,
148
+ `function example<T>(a: Set<T>, b: T[]): void;`,
149
+ `function example<T>(a: Map<T, T>): void;`,
150
+ `function example<T, U extends T>(t: T, u: U): U;`,
151
+ ],
152
+ });
@@ -0,0 +1,42 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+ import * as noUselessFiles from "../src/rules/no-useless-files";
3
+
4
+ const ruleTester = new ESLintUtils.RuleTester({
5
+ parser: "@typescript-eslint/parser",
6
+ });
7
+
8
+ ruleTester.run("no-useless-files", noUselessFiles, {
9
+ invalid: [
10
+ {
11
+ code: `// I am useless`,
12
+ errors: [
13
+ {
14
+ column: 1,
15
+ line: 1,
16
+ messageId: "noContent",
17
+ },
18
+ ],
19
+ },
20
+ {
21
+ code: ``,
22
+ errors: [
23
+ {
24
+ column: 1,
25
+ line: 1,
26
+ messageId: "noContent",
27
+ },
28
+ ],
29
+ },
30
+ {
31
+ code: `/// <reference lib="baz" />`,
32
+ errors: [
33
+ {
34
+ column: 1,
35
+ line: 1,
36
+ messageId: "noContent",
37
+ },
38
+ ],
39
+ },
40
+ ],
41
+ valid: [`export default "I am useful";`, `/// <reference path="foo" />`, `/// <reference types="bar" />`],
42
+ });
@@ -0,0 +1,66 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as preferDeclareFunction from "../src/rules/prefer-declare-function";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parser: "@typescript-eslint/parser",
7
+ });
8
+
9
+ ruleTester.run("prefer-declare-function", preferDeclareFunction, {
10
+ invalid: [
11
+ {
12
+ filename: "index.d.ts",
13
+ code: `export const example: () => void;`,
14
+ errors: [
15
+ {
16
+ column: 14,
17
+ endColumn: 33,
18
+ line: 1,
19
+ messageId: "variableFunction",
20
+ },
21
+ ],
22
+ },
23
+ {
24
+ filename: "index.d.ts",
25
+ code: `
26
+ namespace N {
27
+ export const example: () => void;
28
+ }
29
+ `,
30
+ errors: [
31
+ {
32
+ column: 26,
33
+ endColumn: 45,
34
+ line: 3,
35
+ messageId: "variableFunction",
36
+ },
37
+ ],
38
+ },
39
+ {
40
+ filename: "index.d.ts",
41
+ code: `
42
+ namespace N {
43
+ const example: () => void;
44
+ }
45
+ `,
46
+ errors: [
47
+ {
48
+ column: 19,
49
+ endColumn: 38,
50
+ line: 3,
51
+ messageId: "variableFunction",
52
+ },
53
+ ],
54
+ },
55
+ ],
56
+ valid: [
57
+ {
58
+ filename: "index.d.ts",
59
+ code: `function example(): void`,
60
+ },
61
+ {
62
+ filename: "test.ts",
63
+ code: `export const example: () => void;`,
64
+ },
65
+ ],
66
+ });
@@ -0,0 +1,39 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as redundantUndefined from "../src/rules/redundant-undefined";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parser: "@typescript-eslint/parser",
7
+ });
8
+
9
+ ruleTester.run("redundant-undefined", redundantUndefined, {
10
+ invalid: [
11
+ {
12
+ code: `function f(s?: string | undefined): void {}`,
13
+ errors: [
14
+ {
15
+ line: 1,
16
+ messageId: "redundantUndefined",
17
+ },
18
+ ],
19
+ },
20
+ {
21
+ code: `function f([a, b]?: [number, number] | undefined): void {}`,
22
+ errors: [
23
+ {
24
+ line: 1,
25
+ messageId: "redundantUndefined",
26
+ },
27
+ ],
28
+ },
29
+ ],
30
+ valid: [
31
+ `
32
+ interface I {
33
+ ok?: string | undefined;
34
+ s?: string;
35
+ almost?: number | string;
36
+ }
37
+ `,
38
+ ],
39
+ });
@@ -0,0 +1,46 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+ import * as trimFile from "../src/rules/trim-file";
3
+
4
+ const ruleTester = new ESLintUtils.RuleTester({
5
+ parser: "@typescript-eslint/parser",
6
+ });
7
+
8
+ ruleTester.run("trim-file", trimFile, {
9
+ invalid: [
10
+ {
11
+ code: `\n `,
12
+ errors: [
13
+ {
14
+ column: 1,
15
+ line: 1,
16
+ messageId: "leadingBlankLine",
17
+ },
18
+ ],
19
+ },
20
+ {
21
+ code: `0;\n\n`,
22
+ errors: [
23
+ {
24
+ column: 1,
25
+ line: 3,
26
+ messageId: "trailingBlankLine",
27
+ },
28
+ ],
29
+ },
30
+ {
31
+ code: `0;\r\n\r\n`,
32
+ errors: [
33
+ {
34
+ column: 1,
35
+ line: 3,
36
+ messageId: "trailingBlankLine",
37
+ },
38
+ ],
39
+ },
40
+ ],
41
+ valid: [
42
+ {
43
+ code: `let foo = "I am right";\n`,
44
+ },
45
+ ],
46
+ });
@@ -0,0 +1,10 @@
1
+ {
2
+ "compilerOptions": {
3
+ "skipLibCheck": true,
4
+ "strict": true,
5
+ "target": "esnext"
6
+ },
7
+ "files": [
8
+ "file.ts"
9
+ ]
10
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "compilerOptions": {
3
+ "skipLibCheck": true,
4
+ "strict": true,
5
+ "target": "esnext"
6
+ },
7
+ "files": [
8
+ "index.d.ts",
9
+ "deep/import.d.ts"
10
+ ]
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "compilerOptions": {
3
+ "skipLibCheck": true,
4
+ "strict": true,
5
+ "target": "esnext"
6
+ },
7
+ "files": [
8
+ "file.ts",
9
+ "deep/import.d.ts"
10
+ ]
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "compilerOptions": {
3
+ "skipLibCheck": true,
4
+ "strict": true,
5
+ "target": "esnext"
6
+ },
7
+ "files": [
8
+ "index.d.ts",
9
+ "file.ts"
10
+ ]
11
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "compilerOptions": {
3
+ "strict": true,
4
+ "target": "esnext"
5
+ },
6
+ "files": ["this-package/index.d.ts"]
7
+ }