@definitelytyped/dtslint 0.0.204 → 0.1.0

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 CHANGED
@@ -1,5 +1,16 @@
1
1
  # @definitelytyped/dtslint
2
2
 
3
+ ## 0.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 02c11c32: Remove TSLint remnants
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [02c11c32]
12
+ - @definitelytyped/header-parser@0.1.0
13
+
3
14
  ## 0.0.204
4
15
 
5
16
  ### Patch Changes
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  `dtslint` tests a TypeScript declaration file for style and correctness.
2
- It will install `typescript` and `tslint` for you, so this is the only tool you need to test a type definition.
2
+ It will install `typescript` and `eslint` for you, so this is the only tool you need to test a type definition.
3
3
 
4
4
  Lint rules new to dtslint are documented in the [docs](docs) directory.
5
5
 
@@ -101,24 +101,23 @@ For types that do not have a matching NPM package, add two properties:
101
101
  1. `"nonNpm": true`
102
102
  2. `"nonNpmDescription"`, a human-readable name for the project that is being typed.
103
103
 
104
- #### `types/tslint.json` or `types/.eslintrc.json`
104
+ #### `types/.eslintrc.json`
105
105
 
106
- Definitely Typed is in the process of migrating from tslint to eslint.
107
- If you are using the default rules, .eslintrc.json is optional; tslint.json should be
106
+ An `.eslintrc.json` file is optional.
107
+ You can skip it if you don't need to modify any lint rule settings.
108
+ We recommend not adding an `.eslintrc.json` file.
108
109
 
109
110
  ```json5
110
111
  { "extends": "@definitelytyped/dtslint/dt.json" }
111
112
  ```
112
113
 
113
- If present, this will override `dtslint`'s [default](https://github.com/microsoft/DefinitelyTyped-tools/blob/main/packages/dtslint/dtslint.json) settings.
114
- You can specify new lint [rules](https://palantir.github.io/tslint/rules/), or disable some. An example:
114
+ If present, this will override `dtslint`'s default "[`all`](https://github.com/microsoft/DefinitelyTyped-tools/blob/main/packages/eslint-plugin/src/configs/all.ts)" config.
115
+ You can specify new [lint rules](https://eslint.org/docs/latest/rules/), or disable some. An example:
115
116
 
116
117
  ```json5
117
118
  {
118
- "extends": "@definitelytyped/dtslint/dtslint.json", // Or "@definitelytyped/dtslint/dt.json" if on DefinitelyTyped
119
119
  "rules": {
120
- "semicolon": false,
121
- "indent": [true, "tabs"]
120
+ "@definitelytyped/no-unnecessary-generics": "off"
122
121
  }
123
122
  }
124
123
  ```
@@ -199,8 +198,6 @@ npm run watch
199
198
 
200
199
  Use `pnpm test` to run all tests.
201
200
 
202
- To run a single test: `node node_modules/tslint/bin/tslint --rules-dir dist/rules --test test/expect`.
203
-
204
201
  ## Code of Conduct
205
202
 
206
203
  This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
@@ -0,0 +1,2 @@
1
+ import * as ts from "typescript";
2
+ export declare function createProgram(configFile: string): ts.Program;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ // This file is intentionally similar to TSLint's old Linter.createProgram API:
3
+ // https://github.com/palantir/tslint/blob/285fc1db18d1fd24680d6a2282c6445abf1566ee/src/linter.ts#L54
4
+ // TODO: creating a program to get a list of files is pretty heavyweight.
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.createProgram = void 0;
30
+ const fs = __importStar(require("fs"));
31
+ const path = __importStar(require("path"));
32
+ const ts = __importStar(require("typescript"));
33
+ function createProgram(configFile) {
34
+ var _a;
35
+ const config = ts.readConfigFile(configFile, ts.sys.readFile);
36
+ if (config.error !== undefined) {
37
+ throw new Error(ts.formatDiagnostics([config.error], {
38
+ getCanonicalFileName: (f) => f,
39
+ getCurrentDirectory: process.cwd,
40
+ getNewLine: () => "\n",
41
+ }));
42
+ }
43
+ const parseConfigHost = {
44
+ fileExists: fs.existsSync,
45
+ readDirectory: ts.sys.readDirectory,
46
+ readFile: (file) => fs.readFileSync(file, "utf8"),
47
+ useCaseSensitiveFileNames: true,
48
+ };
49
+ const projectDirectory = path.dirname(configFile);
50
+ const parsed = ts.parseJsonConfigFileContent(config.config, parseConfigHost, path.resolve(projectDirectory), {
51
+ noEmit: true,
52
+ });
53
+ // ignore warnings and 'TS18003: No inputs were found in config file ...'
54
+ const errors = (_a = parsed.errors) === null || _a === void 0 ? void 0 : _a.filter((d) => d.category === ts.DiagnosticCategory.Error && d.code !== 18003);
55
+ if (errors === null || errors === void 0 ? void 0 : errors.length) {
56
+ throw new Error(ts.formatDiagnostics(errors, {
57
+ getCanonicalFileName: (f) => f,
58
+ getCurrentDirectory: process.cwd,
59
+ getNewLine: () => "\n",
60
+ }));
61
+ }
62
+ const host = ts.createCompilerHost(parsed.options, true);
63
+ return ts.createProgram(parsed.fileNames, parsed.options, host);
64
+ }
65
+ exports.createProgram = createProgram;
66
+ //# sourceMappingURL=createProgram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createProgram.js","sourceRoot":"","sources":["../src/createProgram.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,qGAAqG;AACrG,yEAAyE;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzE,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAiC;AAEjC,SAAgB,aAAa,CAAC,UAAkB;;IAC9C,MAAM,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,EAAE,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACnC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,mBAAmB,EAAE,OAAO,CAAC,GAAG;YAChC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;SACvB,CAAC,CACH,CAAC;KACH;IAED,MAAM,eAAe,GAAuB;QAC1C,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,aAAa,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa;QACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;QACjD,yBAAyB,EAAE,IAAI;KAChC,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QAC3G,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,yEAAyE;IACzE,MAAM,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IAC5G,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE;QAClB,MAAM,IAAI,KAAK,CACb,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAC3B,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,mBAAmB,EAAE,OAAO,CAAC,GAAG;YAChC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;SACvB,CAAC,CACH,CAAC;KACH;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAEzD,OAAO,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAvCD,sCAuCC"}
package/dist/index.js CHANGED
@@ -152,7 +152,6 @@ function next(v) {
152
152
  return typescript_versions_1.TypeScriptVersion.supported[index + 1];
153
153
  }
154
154
  async function testTypesVersion(dirPath, lowVersion, hiVersion, expectOnly, tsLocal, isLatest) {
155
- (0, lint_1.checkTslintJson)(dirPath);
156
155
  const tsconfigErrors = (0, checks_1.checkTsconfig)(dirPath, (0, util_1.getCompilerOptions)(dirPath));
157
156
  if (tsconfigErrors.length > 0) {
158
157
  throw new Error("\n\t* " + tsconfigErrors.join("\n\t* "));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/lint.d.ts CHANGED
@@ -2,5 +2,4 @@ import { TypeScriptVersion } from "@definitelytyped/typescript-versions";
2
2
  import * as TsType from "typescript";
3
3
  export declare function lint(dirPath: string, minVersion: TsVersion, maxVersion: TsVersion, isLatest: boolean, expectOnly: boolean, tsLocal: string | undefined): Promise<string | undefined>;
4
4
  export declare function isExternalDependency(file: TsType.SourceFile, dirPath: string, program: TsType.Program): boolean;
5
- export declare function checkTslintJson(dirPath: string): void;
6
5
  export type TsVersion = TypeScriptVersion | "local";
package/dist/lint.js CHANGED
@@ -1,33 +1,25 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.checkTslintJson = exports.isExternalDependency = exports.lint = void 0;
3
+ exports.isExternalDependency = exports.lint = void 0;
7
4
  const typescript_versions_1 = require("@definitelytyped/typescript-versions");
8
5
  const utils_1 = require("@definitelytyped/utils");
9
6
  const assert = require("assert");
10
- const fs_1 = __importDefault(require("fs"));
11
7
  const path_1 = require("path");
12
- const tslint_1 = require("tslint");
13
8
  const eslint_1 = require("eslint");
14
- const util_1 = require("./util");
9
+ const createProgram_1 = require("./createProgram");
15
10
  async function lint(dirPath, minVersion, maxVersion, isLatest, expectOnly, tsLocal) {
16
11
  const tsconfigPath = (0, path_1.join)(dirPath, "tsconfig.json");
17
12
  const estree = require(require.resolve("@typescript-eslint/typescript-estree", { paths: [dirPath] }));
18
13
  process.env.TSESTREE_SINGLE_RUN = "true";
19
- // TODO: To remove tslint, replace this with a ts.createProgram (probably)
20
- const lintProgram = tslint_1.Linter.createProgram(tsconfigPath);
21
- // TODO: To port expect-rule, eslint's config will also need to include [minVersion, maxVersion]
22
- // Also: expect-rule should be renamed to expect-type or check-type or something
23
- const esfiles = [];
14
+ const lintProgram = (0, createProgram_1.createProgram)(tsconfigPath);
15
+ const files = [];
24
16
  for (const file of lintProgram.getSourceFiles()) {
25
17
  if (lintProgram.isSourceFileDefaultLibrary(file)) {
26
18
  continue;
27
19
  }
28
20
  const { fileName, text } = file;
29
21
  if (!fileName.includes("node_modules")) {
30
- const err = testNoLintDisables("tslint:disable", text) || testNoLintDisables("eslint-disable", text);
22
+ const err = testNoLintDisables(text);
31
23
  if (err) {
32
24
  const { pos, message } = err;
33
25
  const place = file.getLineAndCharacterOfPosition(pos);
@@ -37,7 +29,7 @@ async function lint(dirPath, minVersion, maxVersion, isLatest, expectOnly, tsLoc
37
29
  // External dependencies should have been handled by `testDependencies`;
38
30
  // typesVersions should be handled in a separate lint
39
31
  if (!isExternalDependency(file, dirPath, lintProgram) && (!isLatest || !isTypesVersionPath(fileName, dirPath))) {
40
- esfiles.push(fileName);
32
+ files.push(fileName);
41
33
  }
42
34
  }
43
35
  let output = "";
@@ -83,8 +75,8 @@ async function lint(dirPath, minVersion, maxVersion, isLatest, expectOnly, tsLoc
83
75
  }
84
76
  const eslint = new eslint_1.ESLint(options);
85
77
  const formatter = await eslint.loadFormatter("stylish");
86
- const eresults = await eslint.lintFiles(esfiles);
87
- output += formatter.format(eresults);
78
+ const results = await eslint.lintFiles(files);
79
+ output += formatter.format(results);
88
80
  estree.clearCaches();
89
81
  return output;
90
82
  }
@@ -110,7 +102,8 @@ function startsWithDirectory(filePath, dirPath) {
110
102
  const normalDirPath = normalizePath(dirPath).replace(/\/$/, "");
111
103
  return normalFilePath.startsWith(normalDirPath + "/") || normalFilePath.startsWith(normalDirPath + "\\");
112
104
  }
113
- function testNoLintDisables(disabler, text) {
105
+ function testNoLintDisables(text) {
106
+ const disabler = "eslint-disable";
114
107
  let lastIndex = 0;
115
108
  while (true) {
116
109
  const pos = text.indexOf(disabler, lastIndex);
@@ -120,31 +113,15 @@ function testNoLintDisables(disabler, text) {
120
113
  const end = pos + disabler.length;
121
114
  const nextChar = text.charAt(end);
122
115
  const nextChar2 = text.charAt(end + 1);
123
- if (nextChar !== "-" &&
124
- !(disabler === "tslint:disable" && nextChar === ":") &&
125
- !(disabler === "eslint-disable" && nextChar === " " && nextChar2 !== "*")) {
116
+ if (nextChar !== "-" && !(nextChar === " " && nextChar2 !== "*")) {
126
117
  const message = `'${disabler}' is forbidden. ` +
127
118
  "Per-line and per-rule disabling is allowed, for example: " +
128
- "'tslint:disable:rulename', tslint:disable-line' and 'tslint:disable-next-line' are allowed.";
119
+ "'eslint-disable:rulename', eslint-disable-line' and 'eslint-disable-next-line' are allowed.";
129
120
  return { pos, message };
130
121
  }
131
122
  lastIndex = end;
132
123
  }
133
124
  }
134
- function checkTslintJson(dirPath) {
135
- const configPath = getConfigPath(dirPath);
136
- const shouldExtend = "@definitelytyped/dtslint/dt.json";
137
- if (!fs_1.default.existsSync(configPath)) {
138
- throw new Error(`Missing \`tslint.json\` that contains \`{ "extends": "${shouldExtend}" }\`.`);
139
- }
140
- if ((0, util_1.readJson)(configPath).extends !== shouldExtend) {
141
- throw new Error(`'tslint.json' must extend "${shouldExtend}"`);
142
- }
143
- }
144
- exports.checkTslintJson = checkTslintJson;
145
- function getConfigPath(dirPath) {
146
- return (0, path_1.join)(dirPath, "tslint.json");
147
- }
148
125
  function range(minVersion, maxVersion) {
149
126
  if (minVersion === "local") {
150
127
  assert(maxVersion === "local");
package/dist/lint.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@definitelytyped/dtslint",
3
- "version": "0.0.204",
3
+ "version": "0.1.0",
4
4
  "description": "Runs tests on TypeScript definition files",
5
5
  "main": "./dist/index.js",
6
6
  "bin": "./dist/index.js",
@@ -25,11 +25,8 @@
25
25
  "@typescript-eslint/utils": "^6.11.0",
26
26
  "eslint": "^8.53.0",
27
27
  "eslint-plugin-import": "^2.29.0",
28
- "json-stable-stringify": "^1.0.2",
29
28
  "strip-json-comments": "^3.1.1",
30
- "tslint": "5.14.0",
31
- "yargs": "^17.7.2",
32
- "@definitelytyped/header-parser": "0.0.193",
29
+ "@definitelytyped/header-parser": "0.1.0",
33
30
  "@definitelytyped/typescript-versions": "0.0.184",
34
31
  "@definitelytyped/utils": "0.0.191"
35
32
  },
@@ -38,7 +35,6 @@
38
35
  },
39
36
  "devDependencies": {
40
37
  "@types/eslint": "^8.44.7",
41
- "@types/json-stable-stringify": "^1.0.36",
42
38
  "@types/strip-json-comments": "^3.0.0",
43
39
  "typescript": "^5.2.2"
44
40
  },
@@ -0,0 +1,48 @@
1
+ // This file is intentionally similar to TSLint's old Linter.createProgram API:
2
+ // https://github.com/palantir/tslint/blob/285fc1db18d1fd24680d6a2282c6445abf1566ee/src/linter.ts#L54
3
+ // TODO: creating a program to get a list of files is pretty heavyweight.
4
+
5
+ import * as fs from "fs";
6
+ import * as path from "path";
7
+ import * as ts from "typescript";
8
+
9
+ export function createProgram(configFile: string): ts.Program {
10
+ const config = ts.readConfigFile(configFile, ts.sys.readFile);
11
+ if (config.error !== undefined) {
12
+ throw new Error(
13
+ ts.formatDiagnostics([config.error], {
14
+ getCanonicalFileName: (f) => f,
15
+ getCurrentDirectory: process.cwd,
16
+ getNewLine: () => "\n",
17
+ }),
18
+ );
19
+ }
20
+
21
+ const parseConfigHost: ts.ParseConfigHost = {
22
+ fileExists: fs.existsSync,
23
+ readDirectory: ts.sys.readDirectory,
24
+ readFile: (file) => fs.readFileSync(file, "utf8"),
25
+ useCaseSensitiveFileNames: true,
26
+ };
27
+
28
+ const projectDirectory = path.dirname(configFile);
29
+ const parsed = ts.parseJsonConfigFileContent(config.config, parseConfigHost, path.resolve(projectDirectory), {
30
+ noEmit: true,
31
+ });
32
+
33
+ // ignore warnings and 'TS18003: No inputs were found in config file ...'
34
+ const errors = parsed.errors?.filter((d) => d.category === ts.DiagnosticCategory.Error && d.code !== 18003);
35
+ if (errors?.length) {
36
+ throw new Error(
37
+ ts.formatDiagnostics(errors, {
38
+ getCanonicalFileName: (f) => f,
39
+ getCurrentDirectory: process.cwd,
40
+ getNewLine: () => "\n",
41
+ }),
42
+ );
43
+ }
44
+
45
+ const host = ts.createCompilerHost(parsed.options, true);
46
+
47
+ return ts.createProgram(parsed.fileNames, parsed.options, host);
48
+ }
package/src/index.ts CHANGED
@@ -7,7 +7,7 @@ import { basename, dirname, join as joinPaths, resolve } from "path";
7
7
 
8
8
  import { deepEquals } from "@definitelytyped/utils";
9
9
  import { checkPackageJson, checkTsconfig } from "./checks";
10
- import { checkTslintJson, lint, TsVersion } from "./lint";
10
+ import { lint, TsVersion } from "./lint";
11
11
  import { getCompilerOptions, packageNameFromPath } from "./util";
12
12
  import { getTypesVersions } from "@definitelytyped/header-parser";
13
13
 
@@ -186,7 +186,6 @@ async function testTypesVersion(
186
186
  tsLocal: string | undefined,
187
187
  isLatest: boolean,
188
188
  ): Promise<void> {
189
- checkTslintJson(dirPath);
190
189
  const tsconfigErrors = checkTsconfig(dirPath, getCompilerOptions(dirPath));
191
190
  if (tsconfigErrors.length > 0) {
192
191
  throw new Error("\n\t* " + tsconfigErrors.join("\n\t* "));
package/src/lint.ts CHANGED
@@ -1,13 +1,11 @@
1
1
  import { TypeScriptVersion } from "@definitelytyped/typescript-versions";
2
2
  import { typeScriptPath, withoutStart } from "@definitelytyped/utils";
3
3
  import assert = require("assert");
4
- import fs from "fs";
5
4
  import { join as joinPaths, normalize } from "path";
6
- import { Linter } from "tslint";
7
5
  import { ESLint } from "eslint";
8
6
  import * as TsType from "typescript";
9
7
 
10
- import { readJson } from "./util";
8
+ import { createProgram } from "./createProgram";
11
9
 
12
10
  export async function lint(
13
11
  dirPath: string,
@@ -22,12 +20,8 @@ export async function lint(
22
20
  require.resolve("@typescript-eslint/typescript-estree", { paths: [dirPath] }),
23
21
  ) as typeof import("@typescript-eslint/typescript-estree");
24
22
  process.env.TSESTREE_SINGLE_RUN = "true";
25
- // TODO: To remove tslint, replace this with a ts.createProgram (probably)
26
- const lintProgram = Linter.createProgram(tsconfigPath);
27
-
28
- // TODO: To port expect-rule, eslint's config will also need to include [minVersion, maxVersion]
29
- // Also: expect-rule should be renamed to expect-type or check-type or something
30
- const esfiles = [];
23
+ const lintProgram = createProgram(tsconfigPath);
24
+ const files = [];
31
25
 
32
26
  for (const file of lintProgram.getSourceFiles()) {
33
27
  if (lintProgram.isSourceFileDefaultLibrary(file)) {
@@ -36,7 +30,7 @@ export async function lint(
36
30
 
37
31
  const { fileName, text } = file;
38
32
  if (!fileName.includes("node_modules")) {
39
- const err = testNoLintDisables("tslint:disable", text) || testNoLintDisables("eslint-disable", text);
33
+ const err = testNoLintDisables(text);
40
34
  if (err) {
41
35
  const { pos, message } = err;
42
36
  const place = file.getLineAndCharacterOfPosition(pos);
@@ -47,7 +41,7 @@ export async function lint(
47
41
  // External dependencies should have been handled by `testDependencies`;
48
42
  // typesVersions should be handled in a separate lint
49
43
  if (!isExternalDependency(file, dirPath, lintProgram) && (!isLatest || !isTypesVersionPath(fileName, dirPath))) {
50
- esfiles.push(fileName);
44
+ files.push(fileName);
51
45
  }
52
46
  }
53
47
  let output = "";
@@ -97,8 +91,8 @@ export async function lint(
97
91
 
98
92
  const eslint = new ESLint(options);
99
93
  const formatter = await eslint.loadFormatter("stylish");
100
- const eresults = await eslint.lintFiles(esfiles);
101
- output += formatter.format(eresults);
94
+ const results = await eslint.lintFiles(files);
95
+ output += formatter.format(results);
102
96
  estree.clearCaches();
103
97
 
104
98
  return output;
@@ -132,7 +126,8 @@ interface Err {
132
126
  pos: number;
133
127
  message: string;
134
128
  }
135
- function testNoLintDisables(disabler: "tslint:disable" | "eslint-disable", text: string): Err | undefined {
129
+ function testNoLintDisables(text: string): Err | undefined {
130
+ const disabler = "eslint-disable";
136
131
  let lastIndex = 0;
137
132
  while (true) {
138
133
  const pos = text.indexOf(disabler, lastIndex);
@@ -142,36 +137,17 @@ function testNoLintDisables(disabler: "tslint:disable" | "eslint-disable", text:
142
137
  const end = pos + disabler.length;
143
138
  const nextChar = text.charAt(end);
144
139
  const nextChar2 = text.charAt(end + 1);
145
- if (
146
- nextChar !== "-" &&
147
- !(disabler === "tslint:disable" && nextChar === ":") &&
148
- !(disabler === "eslint-disable" && nextChar === " " && nextChar2 !== "*")
149
- ) {
140
+ if (nextChar !== "-" && !(nextChar === " " && nextChar2 !== "*")) {
150
141
  const message =
151
142
  `'${disabler}' is forbidden. ` +
152
143
  "Per-line and per-rule disabling is allowed, for example: " +
153
- "'tslint:disable:rulename', tslint:disable-line' and 'tslint:disable-next-line' are allowed.";
144
+ "'eslint-disable:rulename', eslint-disable-line' and 'eslint-disable-next-line' are allowed.";
154
145
  return { pos, message };
155
146
  }
156
147
  lastIndex = end;
157
148
  }
158
149
  }
159
150
 
160
- export function checkTslintJson(dirPath: string): void {
161
- const configPath = getConfigPath(dirPath);
162
- const shouldExtend = "@definitelytyped/dtslint/dt.json";
163
- if (!fs.existsSync(configPath)) {
164
- throw new Error(`Missing \`tslint.json\` that contains \`{ "extends": "${shouldExtend}" }\`.`);
165
- }
166
- if (readJson(configPath).extends !== shouldExtend) {
167
- throw new Error(`'tslint.json' must extend "${shouldExtend}"`);
168
- }
169
- }
170
-
171
- function getConfigPath(dirPath: string): string {
172
- return joinPaths(dirPath, "tslint.json");
173
- }
174
-
175
151
  function range(minVersion: TsVersion, maxVersion: TsVersion): readonly TsVersion[] {
176
152
  if (minVersion === "local") {
177
153
  assert(maxVersion === "local");
@@ -1,34 +1,7 @@
1
1
  /// <reference types="jest" />
2
- import { join } from "path";
3
- import { consoleTestResultHandler, runTest } from "tslint/lib/test";
4
- import { existsSync, readdirSync, statSync } from "fs";
5
2
  import { CompilerOptionsRaw, checkTsconfig } from "../src/checks";
6
3
  import { assertPackageIsNotDeprecated } from "../src/index";
7
4
 
8
- const testDir = __dirname;
9
-
10
- class Logger {
11
- logmsg = "";
12
- errormsg = "";
13
- log(message: string): void {
14
- this.logmsg += message;
15
- }
16
- error(message: string): void {
17
- this.errormsg += message;
18
- }
19
- }
20
-
21
- function testSingle(testDirectory: string) {
22
- test(testDirectory, () => {
23
- const logger = new Logger();
24
- const result = consoleTestResultHandler(runTest(testDirectory), logger);
25
- if (!result) {
26
- console.log(logger.logmsg + logger.errormsg);
27
- }
28
- expect(result).toBeTruthy();
29
- });
30
- }
31
-
32
5
  describe("dtslint", () => {
33
6
  const base: CompilerOptionsRaw = {
34
7
  module: "commonjs",
@@ -145,17 +118,4 @@ describe("dtslint", () => {
145
118
  });
146
119
  });
147
120
  });
148
- describe("rules", () => {
149
- const tests = readdirSync(testDir);
150
- for (const testName of tests) {
151
- const testDirectory = join(testDir, testName);
152
- if (existsSync(join(testDirectory, "tslint.json"))) {
153
- testSingle(testDirectory);
154
- } else if (statSync(testDirectory).isDirectory()) {
155
- for (const subTestName of readdirSync(testDirectory)) {
156
- testSingle(join(testDirectory, subTestName));
157
- }
158
- }
159
- }
160
- });
161
121
  });