@definitelytyped/eslint-plugin 0.0.179 → 0.0.181
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/CHANGELOG.md +16 -0
- package/dist/rules/index.d.ts +5 -4
- package/dist/rules/index.js +6 -4
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/no-bad-reference.d.ts +1 -1
- package/dist/rules/no-bad-reference.js +7 -9
- package/dist/rules/no-bad-reference.js.map +1 -1
- package/dist/rules/no-import-of-dev-dependencies.d.ts +2 -0
- package/dist/rules/no-import-of-dev-dependencies.js +89 -0
- package/dist/rules/no-import-of-dev-dependencies.js.map +1 -0
- package/dist/rules/no-old-dt-header.d.ts +2 -0
- package/dist/rules/no-old-dt-header.js +37 -0
- package/dist/rules/no-old-dt-header.js.map +1 -0
- package/dist/rules/no-self-import.d.ts +1 -1
- package/dist/rules/no-self-import.js +8 -1
- package/dist/rules/no-self-import.js.map +1 -1
- package/dist/rules/no-single-declare-module.d.ts +2 -0
- package/dist/rules/no-single-declare-module.js +75 -0
- package/dist/rules/no-single-declare-module.js.map +1 -0
- package/dist/rules/no-useless-files.js +2 -8
- package/dist/rules/no-useless-files.js.map +1 -1
- package/dist/util.d.ts +3 -1
- package/dist/util.js +9 -1
- package/dist/util.js.map +1 -1
- package/package.json +3 -3
- package/src/rules/index.ts +6 -4
- package/src/rules/no-bad-reference.ts +9 -13
- package/src/rules/no-import-of-dev-dependencies.ts +84 -0
- package/src/rules/no-old-dt-header.ts +40 -0
- package/src/rules/no-self-import.ts +8 -2
- package/src/rules/no-single-declare-module.ts +58 -0
- package/src/rules/no-useless-files.ts +3 -9
- package/src/util.ts +13 -2
- package/test/no-bad-reference.test.ts +68 -0
- package/test/no-import-of-dev-dependencies.test.ts +72 -0
- package/test/no-old-dt-header.test.ts +71 -0
- package/test/no-self-import.test.ts +68 -0
- package/test/no-single-declare-module.test.ts +50 -0
- package/test/tsconfig.no-single-declare-module.json +7 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/rules/dt-header.d.ts +0 -2
- package/dist/rules/dt-header.js +0 -62
- package/dist/rules/dt-header.js.map +0 -1
- package/dist/rules/no-outside-dependencies.d.ts +0 -2
- package/dist/rules/no-outside-dependencies.js +0 -41
- package/dist/rules/no-outside-dependencies.js.map +0 -1
- package/src/rules/dt-header.ts +0 -74
- package/src/rules/no-outside-dependencies.ts +0 -42
- package/test/dt-header.test.ts +0 -189
package/src/rules/dt-header.ts
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { renderExpected, validate } from "@definitelytyped/header-parser";
|
|
2
|
-
import { createRule, isMainFile } from "../util";
|
|
3
|
-
|
|
4
|
-
type MessageId =
|
|
5
|
-
| "definitionsBy"
|
|
6
|
-
| "minimumTypeScriptVersion"
|
|
7
|
-
| "parseError"
|
|
8
|
-
| "typeDefinitionsFor"
|
|
9
|
-
| "typescriptVersion";
|
|
10
|
-
|
|
11
|
-
const rule = createRule({
|
|
12
|
-
name: "dt-header",
|
|
13
|
-
defaultOptions: [],
|
|
14
|
-
meta: {
|
|
15
|
-
type: "problem",
|
|
16
|
-
docs: {
|
|
17
|
-
description: "Ensure consistency of DefinitelyTyped headers.",
|
|
18
|
-
recommended: "error",
|
|
19
|
-
},
|
|
20
|
-
messages: {
|
|
21
|
-
definitionsBy: "Author name should be your name, not the default.",
|
|
22
|
-
minimumTypeScriptVersion: "TypeScript version should be specified under header in `index.d.ts`.",
|
|
23
|
-
parseError: "Error parsing header. Expected: {{expected}}",
|
|
24
|
-
typeDefinitionsFor: "Header should only be in `index.d.ts` of the root.",
|
|
25
|
-
typescriptVersion: "Minimum TypeScript version should be specified under header in `index.d.ts`.",
|
|
26
|
-
},
|
|
27
|
-
schema: [],
|
|
28
|
-
},
|
|
29
|
-
create(context) {
|
|
30
|
-
const sourceCode = context.getSourceCode();
|
|
31
|
-
const { lines, text } = sourceCode;
|
|
32
|
-
|
|
33
|
-
const lookFor = (search: string, messageId: MessageId) => {
|
|
34
|
-
for (let i = 0; i < lines.length; i += 1) {
|
|
35
|
-
if (lines[i].startsWith(search)) {
|
|
36
|
-
context.report({
|
|
37
|
-
loc: {
|
|
38
|
-
end: { line: i + 1, column: search.length },
|
|
39
|
-
start: { line: i + 1, column: 0 },
|
|
40
|
-
},
|
|
41
|
-
messageId,
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
if (!isMainFile(context.getFilename(), /*allowNested*/ true)) {
|
|
48
|
-
lookFor("// Type definitions for", "typeDefinitionsFor");
|
|
49
|
-
lookFor("// TypeScript Version", "typescriptVersion");
|
|
50
|
-
lookFor("// Minimum TypeScript Version", "minimumTypeScriptVersion");
|
|
51
|
-
return {};
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
lookFor("// Definitions by: My Self", "definitionsBy");
|
|
55
|
-
|
|
56
|
-
const error = validate(text);
|
|
57
|
-
if (error) {
|
|
58
|
-
context.report({
|
|
59
|
-
data: {
|
|
60
|
-
expected: renderExpected(error.expected),
|
|
61
|
-
},
|
|
62
|
-
loc: {
|
|
63
|
-
column: error.column,
|
|
64
|
-
line: error.line,
|
|
65
|
-
},
|
|
66
|
-
messageId: "parseError",
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return {};
|
|
71
|
-
},
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
export = rule;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { createRule, isMainFile } from "../util";
|
|
2
|
-
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
3
|
-
const rule = createRule({
|
|
4
|
-
name: "no-outside-dependencies",
|
|
5
|
-
defaultOptions: [],
|
|
6
|
-
meta: {
|
|
7
|
-
type: "problem",
|
|
8
|
-
docs: {
|
|
9
|
-
description: "Don't import things in `DefinitelyTyped/node_modules`.",
|
|
10
|
-
recommended: "error",
|
|
11
|
-
},
|
|
12
|
-
messages: {
|
|
13
|
-
noOutsideDependencies: `File {{fileName}} comes from a \`node_modules\` but is not declared in this type's \`package.json\`. `,
|
|
14
|
-
},
|
|
15
|
-
schema: [],
|
|
16
|
-
},
|
|
17
|
-
create(context) {
|
|
18
|
-
if (isMainFile(context.getFilename(), /*allowNested*/ true)) {
|
|
19
|
-
const parserServices = ESLintUtils.getParserServices(context);
|
|
20
|
-
const hasNodeReference = parserServices.program
|
|
21
|
-
.getSourceFiles()
|
|
22
|
-
.some((f) => f.typeReferenceDirectives.some((dir) => dir.fileName === "node"));
|
|
23
|
-
for (const sourceFile of parserServices.program.getSourceFiles()) {
|
|
24
|
-
const fileName = sourceFile.fileName;
|
|
25
|
-
if (
|
|
26
|
-
fileName.includes("/DefinitelyTyped/node_modules/") &&
|
|
27
|
-
!parserServices.program.isSourceFileDefaultLibrary(sourceFile) &&
|
|
28
|
-
!(hasNodeReference && fileName.includes("buffer"))
|
|
29
|
-
) {
|
|
30
|
-
context.report({
|
|
31
|
-
messageId: "noOutsideDependencies",
|
|
32
|
-
data: { fileName },
|
|
33
|
-
loc: { column: 0, line: 1 },
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return {};
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
export = rule;
|
package/test/dt-header.test.ts
DELETED
|
@@ -1,189 +0,0 @@
|
|
|
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("@definitelytyped/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
|
-
});
|