@definitelytyped/eslint-plugin 0.0.180 → 0.0.182

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 (43) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/rules/index.d.ts +4 -4
  3. package/dist/rules/index.js +4 -4
  4. package/dist/rules/index.js.map +1 -1
  5. package/dist/rules/no-bad-reference.d.ts +1 -1
  6. package/dist/rules/no-bad-reference.js +7 -9
  7. package/dist/rules/no-bad-reference.js.map +1 -1
  8. package/dist/rules/no-import-of-dev-dependencies.d.ts +2 -0
  9. package/dist/rules/no-import-of-dev-dependencies.js +89 -0
  10. package/dist/rules/no-import-of-dev-dependencies.js.map +1 -0
  11. package/dist/rules/no-old-dt-header.d.ts +2 -0
  12. package/dist/rules/no-old-dt-header.js +37 -0
  13. package/dist/rules/no-old-dt-header.js.map +1 -0
  14. package/dist/rules/no-self-import.d.ts +1 -1
  15. package/dist/rules/no-self-import.js +8 -1
  16. package/dist/rules/no-self-import.js.map +1 -1
  17. package/dist/rules/no-useless-files.js +2 -8
  18. package/dist/rules/no-useless-files.js.map +1 -1
  19. package/dist/util.d.ts +3 -1
  20. package/dist/util.js +9 -1
  21. package/dist/util.js.map +1 -1
  22. package/package.json +3 -3
  23. package/src/rules/index.ts +4 -4
  24. package/src/rules/no-bad-reference.ts +9 -13
  25. package/src/rules/no-import-of-dev-dependencies.ts +84 -0
  26. package/src/rules/no-old-dt-header.ts +40 -0
  27. package/src/rules/no-self-import.ts +8 -2
  28. package/src/rules/no-useless-files.ts +3 -9
  29. package/src/util.ts +13 -2
  30. package/test/no-bad-reference.test.ts +68 -0
  31. package/test/no-import-of-dev-dependencies.test.ts +72 -0
  32. package/test/no-old-dt-header.test.ts +71 -0
  33. package/test/no-self-import.test.ts +68 -0
  34. package/tsconfig.tsbuildinfo +1 -1
  35. package/dist/rules/dt-header.d.ts +0 -2
  36. package/dist/rules/dt-header.js +0 -62
  37. package/dist/rules/dt-header.js.map +0 -1
  38. package/dist/rules/no-outside-dependencies.d.ts +0 -2
  39. package/dist/rules/no-outside-dependencies.js +0 -41
  40. package/dist/rules/no-outside-dependencies.js.map +0 -1
  41. package/src/rules/dt-header.ts +0 -74
  42. package/src/rules/no-outside-dependencies.ts +0 -42
  43. package/test/dt-header.test.ts +0 -189
@@ -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;
@@ -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
- });