@definitelytyped/dtslint 0.0.203 → 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,26 @@
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
+
14
+ ## 0.0.204
15
+
16
+ ### Patch Changes
17
+
18
+ - efd262c9: Prevent npm-naming from being enabled in expectOnly
19
+ - Updated dependencies [4522dfba]
20
+ - @definitelytyped/typescript-versions@0.0.184
21
+ - @definitelytyped/header-parser@0.0.193
22
+ - @definitelytyped/utils@0.0.191
23
+
3
24
  ## 0.0.203
4
25
 
5
26
  ### 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 = "";
@@ -72,6 +64,7 @@ async function lint(dirPath, minVersion, maxVersion, isLatest, expectOnly, tsLoc
72
64
  // Disable the regular config, instead load only the plugins and use just the rule above.
73
65
  // TODO(jakebailey): share this with eslint-plugin
74
66
  options.useEslintrc = false;
67
+ options.baseConfig = undefined;
75
68
  options.overrideConfig.plugins = ["@definitelytyped", "@typescript-eslint", "jsdoc"];
76
69
  const override = options.overrideConfig.overrides[0];
77
70
  override.parser = "@typescript-eslint/parser";
@@ -82,8 +75,8 @@ async function lint(dirPath, minVersion, maxVersion, isLatest, expectOnly, tsLoc
82
75
  }
83
76
  const eslint = new eslint_1.ESLint(options);
84
77
  const formatter = await eslint.loadFormatter("stylish");
85
- const eresults = await eslint.lintFiles(esfiles);
86
- output += formatter.format(eresults);
78
+ const results = await eslint.lintFiles(files);
79
+ output += formatter.format(results);
87
80
  estree.clearCaches();
88
81
  return output;
89
82
  }
@@ -109,7 +102,8 @@ function startsWithDirectory(filePath, dirPath) {
109
102
  const normalDirPath = normalizePath(dirPath).replace(/\/$/, "");
110
103
  return normalFilePath.startsWith(normalDirPath + "/") || normalFilePath.startsWith(normalDirPath + "\\");
111
104
  }
112
- function testNoLintDisables(disabler, text) {
105
+ function testNoLintDisables(text) {
106
+ const disabler = "eslint-disable";
113
107
  let lastIndex = 0;
114
108
  while (true) {
115
109
  const pos = text.indexOf(disabler, lastIndex);
@@ -119,31 +113,15 @@ function testNoLintDisables(disabler, text) {
119
113
  const end = pos + disabler.length;
120
114
  const nextChar = text.charAt(end);
121
115
  const nextChar2 = text.charAt(end + 1);
122
- if (nextChar !== "-" &&
123
- !(disabler === "tslint:disable" && nextChar === ":") &&
124
- !(disabler === "eslint-disable" && nextChar === " " && nextChar2 !== "*")) {
116
+ if (nextChar !== "-" && !(nextChar === " " && nextChar2 !== "*")) {
125
117
  const message = `'${disabler}' is forbidden. ` +
126
118
  "Per-line and per-rule disabling is allowed, for example: " +
127
- "'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.";
128
120
  return { pos, message };
129
121
  }
130
122
  lastIndex = end;
131
123
  }
132
124
  }
133
- function checkTslintJson(dirPath) {
134
- const configPath = getConfigPath(dirPath);
135
- const shouldExtend = "@definitelytyped/dtslint/dt.json";
136
- if (!fs_1.default.existsSync(configPath)) {
137
- throw new Error(`Missing \`tslint.json\` that contains \`{ "extends": "${shouldExtend}" }\`.`);
138
- }
139
- if ((0, util_1.readJson)(configPath).extends !== shouldExtend) {
140
- throw new Error(`'tslint.json' must extend "${shouldExtend}"`);
141
- }
142
- }
143
- exports.checkTslintJson = checkTslintJson;
144
- function getConfigPath(dirPath) {
145
- return (0, path_1.join)(dirPath, "tslint.json");
146
- }
147
125
  function range(minVersion, maxVersion) {
148
126
  if (minVersion === "local") {
149
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":";;;;;;AAAA,8EAAyE;AACzE,kDAAsE;AACtE,iCAAkC;AAClC,4CAAoB;AACpB,+BAAoD;AACpD,mCAAgC;AAChC,mCAAgC;AAGhC,iCAAkC;AAE3B,KAAK,UAAU,IAAI,CACxB,OAAe,EACf,UAAqB,EACrB,UAAqB,EACrB,QAAiB,EACjB,UAAmB,EACnB,OAA2B;IAE3B,MAAM,YAAY,GAAG,IAAA,WAAS,EAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CACpB,OAAO,CAAC,OAAO,CAAC,sCAAsC,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CACrB,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,MAAM,CAAC;IACzC,0EAA0E;IAC1E,MAAM,WAAW,GAAG,eAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAEvD,gGAAgG;IAChG,kFAAkF;IAClF,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE;QAC/C,IAAI,WAAW,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;YAChD,SAAS;SACV;QAED,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACtC,MAAM,GAAG,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACrG,IAAI,GAAG,EAAE;gBACP,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC;gBACtD,OAAO,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC;aAC9D;SACF;QAED,wEAAwE;QACxE,qDAAqD;QACrD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE;YAC9G,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACxB;KACF;IACD,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACzE,WAAW;QACX,IAAI,EAAE,IAAA,sBAAc,EAAC,WAAW,EAAE,OAAO,CAAC;KAC3C,CAAC,CAAC,CAAC;IAEJ,MAAM,OAAO,GAAmB;QAC9B,GAAG,EAAE,OAAO;QACZ,UAAU,EAAE;YACV,SAAS,EAAE;gBACT;oBACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;oBAC1C,KAAK,EAAE;wBACL,6BAA6B,EAAE,OAAO;qBACvC;iBACF;aACF;SACF;QACD,cAAc,EAAE;YACd,SAAS,EAAE;gBACT;oBACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;oBAC1C,KAAK,EAAE;wBACL,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC;qBACzD;iBACF;aACF;SACF;KACF,CAAC;IAEF,IAAI,UAAU,EAAE;QACd,yFAAyF;QACzF,kDAAkD;QAClD,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;QAC5B,OAAO,CAAC,cAAe,CAAC,OAAO,GAAG,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAe,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC;QACvD,QAAQ,CAAC,MAAM,GAAG,2BAA2B,CAAC;QAC9C,QAAQ,CAAC,aAAa,GAAG;YACvB,OAAO,EAAE,IAAI;YACb,kCAAkC,EAAE,KAAK;SAC1C,CAAC;KACH;IAED,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,CAAC,WAAW,EAAE,CAAC;IAErB,OAAO,MAAM,CAAC;AAChB,CAAC;AA5FD,oBA4FC;AAED,SAAgB,oBAAoB,CAAC,IAAuB,EAAE,OAAe,EAAE,OAAuB;IACpG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;AACvG,CAAC;AAFD,oDAEC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,0EAA0E;IAC1E,OAAO,IAAA,gBAAS,EAAC,IAAI,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,OAAe;IAC3D,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAA,oBAAY,EAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC/D,OAAO,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB,EAAE,OAAe;IAC5D,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChE,OAAO,cAAc,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;AAC3G,CAAC;AAMD,SAAS,kBAAkB,CAAC,QAA6C,EAAE,IAAY;IACrF,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,OAAO,IAAI,EAAE;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC9C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;YACd,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,GAAG,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACvC,IACE,QAAQ,KAAK,GAAG;YAChB,CAAC,CAAC,QAAQ,KAAK,gBAAgB,IAAI,QAAQ,KAAK,GAAG,CAAC;YACpD,CAAC,CAAC,QAAQ,KAAK,gBAAgB,IAAI,QAAQ,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,CAAC,EACzE;YACA,MAAM,OAAO,GACX,IAAI,QAAQ,kBAAkB;gBAC9B,2DAA2D;gBAC3D,6FAA6F,CAAC;YAChG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;SACzB;QACD,SAAS,GAAG,GAAG,CAAC;KACjB;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,OAAe;IAC7C,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,kCAAkC,CAAC;IACxD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,yDAAyD,YAAY,QAAQ,CAAC,CAAC;KAChG;IACD,IAAI,IAAA,eAAQ,EAAC,UAAU,CAAC,CAAC,OAAO,KAAK,YAAY,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,GAAG,CAAC,CAAC;KAChE;AACH,CAAC;AATD,0CASC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,IAAA,WAAS,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,KAAK,CAAC,UAAqB,EAAE,UAAqB;IACzD,IAAI,UAAU,KAAK,OAAO,EAAE;QAC1B,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;KAClB;IACD,IAAI,UAAU,KAAK,uCAAiB,CAAC,MAAM,EAAE;QAC3C,MAAM,CAAC,UAAU,KAAK,uCAAiB,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,CAAC,uCAAiB,CAAC,MAAM,CAAC,CAAC;KACnC;IACD,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,uCAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACpB,IAAI,UAAU,KAAK,uCAAiB,CAAC,MAAM,EAAE;QAC3C,OAAO,CAAC,GAAG,uCAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,uCAAiB,CAAC,MAAM,CAAC,CAAC;KACjF;IACD,MAAM,MAAM,GAAG,uCAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,UAA+B,CAAC,CAAC;IACpF,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;IACzB,OAAO,uCAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC"}
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.203",
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,20 +25,16 @@
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.192",
33
- "@definitelytyped/typescript-versions": "0.0.183",
34
- "@definitelytyped/utils": "0.0.190"
29
+ "@definitelytyped/header-parser": "0.1.0",
30
+ "@definitelytyped/typescript-versions": "0.0.184",
31
+ "@definitelytyped/utils": "0.0.191"
35
32
  },
36
33
  "peerDependencies": {
37
34
  "typescript": ">= 3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.7.0-dev || >= 3.8.0-dev || >= 3.9.0-dev || >= 4.0.0-dev || >=5.0.0-dev"
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 = "";
@@ -85,6 +79,7 @@ export async function lint(
85
79
  // Disable the regular config, instead load only the plugins and use just the rule above.
86
80
  // TODO(jakebailey): share this with eslint-plugin
87
81
  options.useEslintrc = false;
82
+ options.baseConfig = undefined;
88
83
  options.overrideConfig!.plugins = ["@definitelytyped", "@typescript-eslint", "jsdoc"];
89
84
  const override = options.overrideConfig!.overrides![0];
90
85
  override.parser = "@typescript-eslint/parser";
@@ -96,8 +91,8 @@ export async function lint(
96
91
 
97
92
  const eslint = new ESLint(options);
98
93
  const formatter = await eslint.loadFormatter("stylish");
99
- const eresults = await eslint.lintFiles(esfiles);
100
- output += formatter.format(eresults);
94
+ const results = await eslint.lintFiles(files);
95
+ output += formatter.format(results);
101
96
  estree.clearCaches();
102
97
 
103
98
  return output;
@@ -131,7 +126,8 @@ interface Err {
131
126
  pos: number;
132
127
  message: string;
133
128
  }
134
- function testNoLintDisables(disabler: "tslint:disable" | "eslint-disable", text: string): Err | undefined {
129
+ function testNoLintDisables(text: string): Err | undefined {
130
+ const disabler = "eslint-disable";
135
131
  let lastIndex = 0;
136
132
  while (true) {
137
133
  const pos = text.indexOf(disabler, lastIndex);
@@ -141,36 +137,17 @@ function testNoLintDisables(disabler: "tslint:disable" | "eslint-disable", text:
141
137
  const end = pos + disabler.length;
142
138
  const nextChar = text.charAt(end);
143
139
  const nextChar2 = text.charAt(end + 1);
144
- if (
145
- nextChar !== "-" &&
146
- !(disabler === "tslint:disable" && nextChar === ":") &&
147
- !(disabler === "eslint-disable" && nextChar === " " && nextChar2 !== "*")
148
- ) {
140
+ if (nextChar !== "-" && !(nextChar === " " && nextChar2 !== "*")) {
149
141
  const message =
150
142
  `'${disabler}' is forbidden. ` +
151
143
  "Per-line and per-rule disabling is allowed, for example: " +
152
- "'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.";
153
145
  return { pos, message };
154
146
  }
155
147
  lastIndex = end;
156
148
  }
157
149
  }
158
150
 
159
- export function checkTslintJson(dirPath: string): void {
160
- const configPath = getConfigPath(dirPath);
161
- const shouldExtend = "@definitelytyped/dtslint/dt.json";
162
- if (!fs.existsSync(configPath)) {
163
- throw new Error(`Missing \`tslint.json\` that contains \`{ "extends": "${shouldExtend}" }\`.`);
164
- }
165
- if (readJson(configPath).extends !== shouldExtend) {
166
- throw new Error(`'tslint.json' must extend "${shouldExtend}"`);
167
- }
168
- }
169
-
170
- function getConfigPath(dirPath: string): string {
171
- return joinPaths(dirPath, "tslint.json");
172
- }
173
-
174
151
  function range(minVersion: TsVersion, maxVersion: TsVersion): readonly TsVersion[] {
175
152
  if (minVersion === "local") {
176
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
  });