@definitelytyped/dtslint 0.0.166 → 0.0.167
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/dist/lint.js +3 -1
- package/dist/lint.js.map +1 -1
- package/dist/rules/dt-header.d.ts +2 -0
- package/dist/rules/dt-header.js +62 -0
- package/dist/rules/dt-header.js.map +1 -0
- package/dist/rules/export-just-namespace.d.ts +2 -0
- package/dist/rules/export-just-namespace.js +70 -0
- package/dist/rules/export-just-namespace.js.map +1 -0
- package/dist/rules/no-any-union.d.ts +4 -0
- package/dist/rules/no-any-union.js +34 -0
- package/dist/rules/no-any-union.js.map +1 -0
- package/dist/rules/no-bad-reference.d.ts +2 -0
- package/dist/rules/no-bad-reference.js +55 -0
- package/dist/rules/no-bad-reference.js.map +1 -0
- package/dist/rules/no-const-enum.d.ts +4 -0
- package/dist/rules/no-const-enum.js +30 -0
- package/dist/rules/no-const-enum.js.map +1 -0
- package/dist/rules/no-dead-reference.d.ts +2 -0
- package/dist/rules/no-dead-reference.js +44 -0
- package/dist/rules/no-dead-reference.js.map +1 -0
- package/dist/rules/no-declare-current-package.d.ts +4 -0
- package/dist/rules/no-declare-current-package.js +43 -0
- package/dist/rules/no-declare-current-package.js.map +1 -0
- package/dist/rules/no-import-default-of-export-equals.d.ts +4 -0
- package/dist/rules/no-import-default-of-export-equals.js +87 -0
- package/dist/rules/no-import-default-of-export-equals.js.map +1 -0
- package/dist/rules/no-outside-dependencies.d.ts +2 -0
- package/dist/rules/no-outside-dependencies.js +41 -0
- package/dist/rules/no-outside-dependencies.js.map +1 -0
- package/dist/rules/no-self-import.d.ts +4 -0
- package/dist/rules/no-self-import.js +38 -0
- package/dist/rules/no-self-import.js.map +1 -0
- package/dist/rules/no-single-element-tuple-type.d.ts +5 -0
- package/dist/rules/no-single-element-tuple-type.js +30 -0
- package/dist/rules/no-single-element-tuple-type.js.map +1 -0
- package/dist/rules/no-unnecessary-generics.d.ts +8 -0
- package/dist/rules/no-unnecessary-generics.js +135 -0
- package/dist/rules/no-unnecessary-generics.js.map +1 -0
- package/dist/rules/no-useless-files.d.ts +2 -0
- package/dist/rules/no-useless-files.js +53 -0
- package/dist/rules/no-useless-files.js.map +1 -0
- package/dist/rules/prefer-declare-function.d.ts +5 -0
- package/dist/rules/prefer-declare-function.js +35 -0
- package/dist/rules/prefer-declare-function.js.map +1 -0
- package/dist/rules/redundant-undefined.d.ts +4 -0
- package/dist/rules/redundant-undefined.js +53 -0
- package/dist/rules/redundant-undefined.js.map +1 -0
- package/dist/rules/trim-file.d.ts +2 -0
- package/dist/rules/trim-file.js +43 -0
- package/dist/rules/trim-file.js.map +1 -0
- package/dist/util.d.ts +4 -0
- package/dist/util.js +23 -1
- package/dist/util.js.map +1 -1
- package/docs/dt-header.md +88 -0
- package/docs/export-just-namespace.md +29 -0
- package/docs/no-any-union.md +27 -0
- package/docs/no-bad-reference.md +28 -0
- package/docs/no-const-enum.md +16 -0
- package/docs/no-dead-reference.md +17 -0
- package/docs/no-declare-current-package.md +35 -0
- package/docs/no-import-default-of-export-equals.md +22 -0
- package/docs/no-outside-dependencies.md +23 -0
- package/docs/no-self-import.md +27 -0
- package/docs/no-single-element-tuple-type.md +15 -0
- package/docs/no-unnecessary-generics.md +69 -0
- package/docs/no-useless-files.md +14 -0
- package/docs/prefer-declare-function.md +15 -0
- package/docs/redundant-undefined.md +15 -0
- package/docs/trim-file.md +17 -0
- package/package.json +6 -6
- package/src/lint.ts +3 -1
- package/src/rules/dt-header.ts +74 -0
- package/src/rules/export-just-namespace.ts +83 -0
- package/src/rules/no-any-union.ts +34 -0
- package/src/rules/no-bad-reference.ts +62 -0
- package/src/rules/no-const-enum.ts +30 -0
- package/src/rules/no-dead-reference.ts +46 -0
- package/src/rules/no-declare-current-package.ts +45 -0
- package/src/rules/no-import-default-of-export-equals.ts +68 -0
- package/src/rules/no-outside-dependencies.ts +42 -0
- package/src/rules/no-self-import.ts +40 -0
- package/src/rules/no-single-element-tuple-type.ts +31 -0
- package/src/rules/no-unnecessary-generics.ts +126 -0
- package/src/rules/no-useless-files.ts +58 -0
- package/src/rules/prefer-declare-function.ts +37 -0
- package/src/rules/redundant-undefined.ts +62 -0
- package/src/rules/trim-file.ts +45 -0
- package/src/util.ts +25 -0
- package/test/dt-header.test.ts +189 -0
- package/test/export-just-namespace.test.ts +70 -0
- package/test/no-any-union.test.ts +22 -0
- package/test/no-bad-reference.test.ts +66 -0
- package/test/no-const-enum.test.ts +22 -0
- package/test/no-dead-reference.test.ts +66 -0
- package/test/no-declare-current-package.test.ts +61 -0
- package/test/no-import-default-of-export-equals.test.ts +49 -0
- package/test/no-self-import.test.ts +47 -0
- package/test/no-single-element-tuple-type.test.ts +28 -0
- package/test/no-unnecessary-generics.test.ts +152 -0
- package/test/no-useless-files.test.ts +42 -0
- package/test/prefer-declare-function.test.ts +66 -0
- package/test/redundant-undefined.test.ts +39 -0
- package/test/trim-file.test.ts +46 -0
- package/test/tsconfig.json +10 -0
- package/test/tsconfig.no-declare-current-package.json +11 -0
- package/test/tsconfig.no-declare-current-package2.json +11 -0
- package/test/tsconfig.no-import-default-of-export-equals.json +11 -0
- package/test/tsconfig.no-self-import.json +7 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
|
|
3
|
+
import * as dtHeader from "../src/rules/dt-header";
|
|
4
|
+
|
|
5
|
+
const ruleTester = new ESLintUtils.RuleTester({
|
|
6
|
+
parser: "@typescript-eslint/parser",
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
ruleTester.run("dt-header", dtHeader, {
|
|
10
|
+
invalid: [
|
|
11
|
+
{
|
|
12
|
+
code: ``,
|
|
13
|
+
errors: [
|
|
14
|
+
{
|
|
15
|
+
column: 2,
|
|
16
|
+
data: {
|
|
17
|
+
expected: "/\\/\\/ Type definitions for (non-npm package )?/",
|
|
18
|
+
},
|
|
19
|
+
line: 1,
|
|
20
|
+
messageId: "parseError",
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
filename: "types/blank/index.d.ts",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
code: `
|
|
27
|
+
// ...
|
|
28
|
+
`,
|
|
29
|
+
errors: [
|
|
30
|
+
{
|
|
31
|
+
column: 1,
|
|
32
|
+
data: {
|
|
33
|
+
expected: "/\\/\\/ Type definitions for (non-npm package )?/",
|
|
34
|
+
},
|
|
35
|
+
line: 2,
|
|
36
|
+
messageId: "parseError",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
filename: "types/only-comment/index.d.ts",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
code: `
|
|
43
|
+
// Type definitions for dt-header 0.75
|
|
44
|
+
// Project: https://github.com/bobby-headers/dt-header
|
|
45
|
+
// Definitions by: Jane Doe <https://github.com/janedoe>
|
|
46
|
+
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
47
|
+
// Minimum TypeScript Version: 3.1
|
|
48
|
+
|
|
49
|
+
`,
|
|
50
|
+
errors: [
|
|
51
|
+
{
|
|
52
|
+
column: 1,
|
|
53
|
+
data: {
|
|
54
|
+
expected: "/\\/\\/ Type definitions for (non-npm package )?/",
|
|
55
|
+
},
|
|
56
|
+
line: 2,
|
|
57
|
+
messageId: "parseError",
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
filename: "types/start-with-whitespace/index.d.ts",
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
code: `// Type definitions for dt-header 1.0
|
|
64
|
+
// Project: https://github.com/bobby-headers/dt-header
|
|
65
|
+
// Definitions by: Jane Doe <https://github.ORG/janedoe>
|
|
66
|
+
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
67
|
+
`,
|
|
68
|
+
errors: [
|
|
69
|
+
{
|
|
70
|
+
column: 30,
|
|
71
|
+
data: {
|
|
72
|
+
expected: "/\\<https\\:\\/\\/github\\.com\\/([a-zA-Z\\d\\-]+)\\/?\\>/",
|
|
73
|
+
},
|
|
74
|
+
line: 3,
|
|
75
|
+
messageId: "parseError",
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
filename: "types/bad-url-github-org/index.d.ts",
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
code: `// Type definitions for dt-header 1.0
|
|
82
|
+
// Project: https://github.com/bobby-headers/dt-header
|
|
83
|
+
// Definitions by: Jane Doe <https://github.com/jane doe>
|
|
84
|
+
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
85
|
+
`,
|
|
86
|
+
errors: [
|
|
87
|
+
{
|
|
88
|
+
column: 30,
|
|
89
|
+
data: {
|
|
90
|
+
expected: "/\\<https\\:\\/\\/github\\.com\\/([a-zA-Z\\d\\-]+)\\/?\\>/",
|
|
91
|
+
},
|
|
92
|
+
line: 3,
|
|
93
|
+
messageId: "parseError",
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
filename: "types/bad-url-space/index.d.ts",
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
code: `// Type definitions for dt-header 1.0
|
|
100
|
+
// Project: https://github.com/not/important
|
|
101
|
+
// Definitions by: My Self <https://github.com/me>
|
|
102
|
+
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
103
|
+
|
|
104
|
+
`,
|
|
105
|
+
errors: [
|
|
106
|
+
{
|
|
107
|
+
column: 1,
|
|
108
|
+
endColumn: 27,
|
|
109
|
+
line: 3,
|
|
110
|
+
messageId: "definitionsBy",
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
filename: "types/bad-username/index.d.ts",
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
code: `// Type definitions for dt-header v1.0.3
|
|
117
|
+
// Project: https://github.com/bobby-headers/dt-header
|
|
118
|
+
// Definitions by: Jane Doe <https://github.com/janedoe>
|
|
119
|
+
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
120
|
+
`,
|
|
121
|
+
errors: [
|
|
122
|
+
{
|
|
123
|
+
column: 26,
|
|
124
|
+
data: {
|
|
125
|
+
expected: "foo MAJOR.MINOR (patch version not allowed)",
|
|
126
|
+
},
|
|
127
|
+
line: 1,
|
|
128
|
+
messageId: "parseError",
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
filename: "types/foo/index.d.ts",
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
code: `// Type definitions for
|
|
135
|
+
`,
|
|
136
|
+
errors: [
|
|
137
|
+
{
|
|
138
|
+
column: 1,
|
|
139
|
+
endColumn: 24,
|
|
140
|
+
line: 1,
|
|
141
|
+
messageId: "typeDefinitionsFor",
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
filename: "types/foo/notIndex.d.ts",
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
valid: [
|
|
148
|
+
``,
|
|
149
|
+
{
|
|
150
|
+
code: `// This isn't the main index
|
|
151
|
+
`,
|
|
152
|
+
filename: "types/foo/bar/index.d.ts",
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
code: `// Type definitions for dt-header 0.75
|
|
156
|
+
// Project: https://github.com/bobby-headers/dt-header
|
|
157
|
+
// Definitions by: Jane Doe <https://github.com/janedoe>
|
|
158
|
+
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
159
|
+
// Minimum TypeScript Version: 3.1
|
|
160
|
+
|
|
161
|
+
`,
|
|
162
|
+
filename: "types/foo/v0.75/index.d.ts",
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
code: `// Type definitions for dt-header 1.0
|
|
166
|
+
// Project: https://github.com/bobby-headers/dt-header
|
|
167
|
+
// Definitions by: Jane Doe <https://github.com/janedoe>
|
|
168
|
+
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
169
|
+
// Minimum TypeScript Version: 3.1
|
|
170
|
+
|
|
171
|
+
`,
|
|
172
|
+
filename: "types/foo/v1/index.d.ts",
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
code: `// Type definitions for dt-header 2.0
|
|
176
|
+
// Project: https://github.com/bobby-headers/dt-header
|
|
177
|
+
// Definitions by: Jane Doe <https://github.com/janedoe>
|
|
178
|
+
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
179
|
+
// Minimum TypeScript Version: 3.1
|
|
180
|
+
|
|
181
|
+
`,
|
|
182
|
+
filename: "types/foo/index.d.ts",
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
code: ``,
|
|
186
|
+
filename: "types/foo/notIndex.d.ts",
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
});
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
|
|
3
|
+
import * as exportJustNamespace from "../src/rules/export-just-namespace";
|
|
4
|
+
|
|
5
|
+
const ruleTester = new ESLintUtils.RuleTester({
|
|
6
|
+
parser: "@typescript-eslint/parser",
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
ruleTester.run("export-just-namespace", exportJustNamespace, {
|
|
10
|
+
invalid: [
|
|
11
|
+
{
|
|
12
|
+
code: `
|
|
13
|
+
export = Stuff;
|
|
14
|
+
namespace Stuff {}
|
|
15
|
+
`,
|
|
16
|
+
errors: [
|
|
17
|
+
{
|
|
18
|
+
line: 2,
|
|
19
|
+
messageId: "useTheBody",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
code: `
|
|
25
|
+
namespace Stuff {}
|
|
26
|
+
export = Stuff;
|
|
27
|
+
`,
|
|
28
|
+
errors: [
|
|
29
|
+
{
|
|
30
|
+
line: 3,
|
|
31
|
+
messageId: "useTheBody",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
code: `
|
|
37
|
+
namespace Stuff {}
|
|
38
|
+
const other = "code";
|
|
39
|
+
export = Stuff;
|
|
40
|
+
`,
|
|
41
|
+
errors: [
|
|
42
|
+
{
|
|
43
|
+
line: 4,
|
|
44
|
+
messageId: "useTheBody",
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
valid: [
|
|
50
|
+
`export const value = 3;`,
|
|
51
|
+
`export default class Hello {}`,
|
|
52
|
+
'import * as fs from "fs";',
|
|
53
|
+
"const value = 123;",
|
|
54
|
+
`export = stuff;`,
|
|
55
|
+
`export = createStuff();`,
|
|
56
|
+
`
|
|
57
|
+
class Stuff {}
|
|
58
|
+
namespace Stuff {}
|
|
59
|
+
export = Stuff;
|
|
60
|
+
`,
|
|
61
|
+
`export = First
|
|
62
|
+
namespace First {}
|
|
63
|
+
declare function First()
|
|
64
|
+
`,
|
|
65
|
+
`declare namespace Second {}
|
|
66
|
+
export = Second
|
|
67
|
+
declare function Second<U, S>(s: U): S
|
|
68
|
+
`,
|
|
69
|
+
],
|
|
70
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
|
|
3
|
+
import * as noAnyUnion from "../src/rules/no-any-union";
|
|
4
|
+
|
|
5
|
+
const ruleTester = new ESLintUtils.RuleTester({
|
|
6
|
+
parser: "@typescript-eslint/parser",
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
ruleTester.run("no-any-union", noAnyUnion, {
|
|
10
|
+
invalid: [
|
|
11
|
+
{
|
|
12
|
+
code: `export const y: string | any;`,
|
|
13
|
+
errors: [
|
|
14
|
+
{
|
|
15
|
+
line: 1,
|
|
16
|
+
messageId: "anyUnion",
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
valid: [`export const x: any;`],
|
|
22
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
|
|
3
|
+
import * as noBadReference from "../src/rules/no-bad-reference";
|
|
4
|
+
|
|
5
|
+
const ruleTester = new ESLintUtils.RuleTester({
|
|
6
|
+
parser: "@typescript-eslint/parser",
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
ruleTester.run("no-bad-reference", noBadReference, {
|
|
10
|
+
invalid: [
|
|
11
|
+
{
|
|
12
|
+
code: `/// <reference path="../other" />`,
|
|
13
|
+
errors: [
|
|
14
|
+
{
|
|
15
|
+
column: 20,
|
|
16
|
+
endColumn: 28,
|
|
17
|
+
line: 1,
|
|
18
|
+
messageId: "referencePathTest",
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
filename: "types.ts",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
code: `/// <reference path="other" />`,
|
|
25
|
+
errors: [
|
|
26
|
+
{
|
|
27
|
+
column: 20,
|
|
28
|
+
endColumn: 25,
|
|
29
|
+
line: 1,
|
|
30
|
+
messageId: "referencePathTest",
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
filename: "types.ts",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
code: `/// <reference path="../other" />`,
|
|
37
|
+
errors: [
|
|
38
|
+
{
|
|
39
|
+
column: 20,
|
|
40
|
+
endColumn: 28,
|
|
41
|
+
line: 1,
|
|
42
|
+
messageId: "referencePathPackage",
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
filename: "types.d.ts",
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
valid: [
|
|
49
|
+
``,
|
|
50
|
+
`// unrelated comment`,
|
|
51
|
+
`/// similar (reference path) comment`,
|
|
52
|
+
{
|
|
53
|
+
code: `/// <reference path="other" />`,
|
|
54
|
+
filename: "types.d.ts",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
code: `/// <reference path="./other" />`,
|
|
58
|
+
filename: "types.d.ts",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
code: `/// <reference path="other" />
|
|
62
|
+
/// <reference path="other2" />`,
|
|
63
|
+
filename: "types.d.ts",
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
|
|
3
|
+
import * as noConstEnum from "../src/rules/no-const-enum";
|
|
4
|
+
|
|
5
|
+
const ruleTester = new ESLintUtils.RuleTester({
|
|
6
|
+
parser: "@typescript-eslint/parser",
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
ruleTester.run("no-const-enum", noConstEnum, {
|
|
10
|
+
invalid: [
|
|
11
|
+
{
|
|
12
|
+
code: ` const enum E { } `,
|
|
13
|
+
errors: [
|
|
14
|
+
{
|
|
15
|
+
line: 1,
|
|
16
|
+
messageId: "constEnum",
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
valid: [` enum F {}`],
|
|
22
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
|
|
3
|
+
import * as noDeadReference from "../src/rules/no-dead-reference";
|
|
4
|
+
|
|
5
|
+
const ruleTester = new ESLintUtils.RuleTester({
|
|
6
|
+
parser: "@typescript-eslint/parser",
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
ruleTester.run("no-dead-reference", noDeadReference, {
|
|
10
|
+
invalid: [
|
|
11
|
+
{
|
|
12
|
+
code: `
|
|
13
|
+
export class C { }
|
|
14
|
+
/// <reference types="terms" />
|
|
15
|
+
`,
|
|
16
|
+
errors: [
|
|
17
|
+
{
|
|
18
|
+
line: 3,
|
|
19
|
+
messageId: "referenceAtTop",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
code: `
|
|
25
|
+
export class C { }
|
|
26
|
+
/// <reference types="terms" />
|
|
27
|
+
/// <reference types="multiple" />
|
|
28
|
+
`,
|
|
29
|
+
errors: [
|
|
30
|
+
{
|
|
31
|
+
line: 3,
|
|
32
|
+
messageId: "referenceAtTop",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
line: 4,
|
|
36
|
+
messageId: "referenceAtTop",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
code: `
|
|
42
|
+
export class C { }
|
|
43
|
+
/// <reference types="terms" />
|
|
44
|
+
export class D { }
|
|
45
|
+
/// <reference types="multiple" />
|
|
46
|
+
export class E { }
|
|
47
|
+
`,
|
|
48
|
+
errors: [
|
|
49
|
+
{
|
|
50
|
+
line: 3,
|
|
51
|
+
messageId: "referenceAtTop",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
line: 5,
|
|
55
|
+
messageId: "referenceAtTop",
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
valid: [
|
|
61
|
+
`
|
|
62
|
+
/// <reference types="tones" />
|
|
63
|
+
export class K {}
|
|
64
|
+
`,
|
|
65
|
+
],
|
|
66
|
+
});
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
|
|
3
|
+
import * as noDeclareCurrentPackage from "../src/rules/no-declare-current-package";
|
|
4
|
+
|
|
5
|
+
const ruleTester = new ESLintUtils.RuleTester({
|
|
6
|
+
parser: "@typescript-eslint/parser",
|
|
7
|
+
parserOptions: {
|
|
8
|
+
ecmaVersion: 2018,
|
|
9
|
+
tsconfigRootDir: __dirname,
|
|
10
|
+
project: "./tsconfig.no-declare-current-package.json",
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
ruleTester.run("no-declare-current-package", noDeclareCurrentPackage, {
|
|
15
|
+
invalid: [
|
|
16
|
+
{
|
|
17
|
+
filename: "index.d.ts",
|
|
18
|
+
code: `module "test" { }`,
|
|
19
|
+
errors: [
|
|
20
|
+
{
|
|
21
|
+
line: 1,
|
|
22
|
+
messageId: "noDeclareCurrentPackage",
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
valid: [
|
|
28
|
+
{
|
|
29
|
+
filename: "index.d.ts",
|
|
30
|
+
code: `module "foo" { }
|
|
31
|
+
module "foo/bar/baz" { }
|
|
32
|
+
`,
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
});
|
|
36
|
+
// needed because you can only test one non-file.ts file per tsconfig
|
|
37
|
+
// (and tsconfig is required for typed-based rules)
|
|
38
|
+
const ruleTester2 = new ESLintUtils.RuleTester({
|
|
39
|
+
parser: "@typescript-eslint/parser",
|
|
40
|
+
parserOptions: {
|
|
41
|
+
ecmaVersion: 2018,
|
|
42
|
+
tsconfigRootDir: __dirname,
|
|
43
|
+
project: "./tsconfig.no-declare-current-package2.json",
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
ruleTester2.run("no-declare-current-package", noDeclareCurrentPackage, {
|
|
48
|
+
invalid: [
|
|
49
|
+
{
|
|
50
|
+
filename: "deep/import.d.ts",
|
|
51
|
+
code: `module "test/deep/import" { }`,
|
|
52
|
+
errors: [
|
|
53
|
+
{
|
|
54
|
+
line: 1,
|
|
55
|
+
messageId: "noDeclareCurrentPackage",
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
valid: [],
|
|
61
|
+
});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
|
|
3
|
+
import * as noImportDefaultOfExportEquals from "../src/rules/no-import-default-of-export-equals";
|
|
4
|
+
|
|
5
|
+
const ruleTester = new ESLintUtils.RuleTester({
|
|
6
|
+
parser: "@typescript-eslint/parser",
|
|
7
|
+
parserOptions: {
|
|
8
|
+
ecmaVersion: 2018,
|
|
9
|
+
tsconfigRootDir: __dirname,
|
|
10
|
+
project: "./tsconfig.no-import-default-of-export-equals.json",
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
ruleTester.run("no-import-default-of-export-equals", noImportDefaultOfExportEquals, {
|
|
15
|
+
invalid: [
|
|
16
|
+
{
|
|
17
|
+
filename: "index.d.ts",
|
|
18
|
+
code: `declare module "a" {
|
|
19
|
+
interface I {}
|
|
20
|
+
export = I;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
declare module "b" {
|
|
24
|
+
import a from "a";
|
|
25
|
+
}`,
|
|
26
|
+
errors: [
|
|
27
|
+
{
|
|
28
|
+
line: 7,
|
|
29
|
+
messageId: "noImportDefaultOfExportEquals",
|
|
30
|
+
data: { moduleName: "a", importName: "a" },
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
valid: [
|
|
36
|
+
{
|
|
37
|
+
filename: "index.d.ts",
|
|
38
|
+
code: `declare module "a" {
|
|
39
|
+
interface I {}
|
|
40
|
+
export default I;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
declare module "b" {
|
|
44
|
+
import a from "a";
|
|
45
|
+
}
|
|
46
|
+
`,
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
import path from "path";
|
|
3
|
+
|
|
4
|
+
import * as dtHeader from "../src/rules/no-self-import";
|
|
5
|
+
|
|
6
|
+
const ruleTester = new ESLintUtils.RuleTester({
|
|
7
|
+
parser: "@typescript-eslint/parser",
|
|
8
|
+
parserOptions: {
|
|
9
|
+
tsconfigRootDir: __dirname,
|
|
10
|
+
project: "./tsconfig.no-self-import.json",
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
ruleTester.run("no-self-import", dtHeader, {
|
|
15
|
+
invalid: [
|
|
16
|
+
{
|
|
17
|
+
code: `import myself from "this-package";`,
|
|
18
|
+
errors: [
|
|
19
|
+
{
|
|
20
|
+
line: 1,
|
|
21
|
+
messageId: "useRelativeImport",
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
filename: "this-package/index.d.ts",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
code: `import abc from "this-package/abc.d.ts";`,
|
|
28
|
+
errors: [
|
|
29
|
+
{
|
|
30
|
+
line: 1,
|
|
31
|
+
messageId: "useRelativeImport",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
filename: "this-package/index.d.ts",
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
valid: [
|
|
38
|
+
{
|
|
39
|
+
code: `import other from "other-package";`,
|
|
40
|
+
filename: "this-package/index.d.ts",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
code: `import other from "other-package/this-package";`,
|
|
44
|
+
filename: "this-package/index.d.ts",
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
|
|
3
|
+
import * as noDeclareCurrentPackage from "../src/rules/no-single-element-tuple-type";
|
|
4
|
+
|
|
5
|
+
const ruleTester = new ESLintUtils.RuleTester({
|
|
6
|
+
parser: "@typescript-eslint/parser",
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
ruleTester.run("no-single-element-tuple-type", noDeclareCurrentPackage, {
|
|
10
|
+
invalid: [
|
|
11
|
+
{
|
|
12
|
+
code: `type Test<T> = [T];`,
|
|
13
|
+
errors: [
|
|
14
|
+
{
|
|
15
|
+
line: 1,
|
|
16
|
+
messageId: "singleElementTupleType",
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
valid: [
|
|
22
|
+
`type Test = number[];`,
|
|
23
|
+
`type Test<T> = T;`,
|
|
24
|
+
`type Test<T> = T[];`,
|
|
25
|
+
`type Test<T> = [T, number];`,
|
|
26
|
+
`type Test<T> = [T, T];`,
|
|
27
|
+
],
|
|
28
|
+
});
|