Tooling: migrated dt-header to ESLint, with a script (#61793)

* Tooling: migrated dt-header to ESLint, with a script

* Update scripts/tslint-rule-to-eslint.js

Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>

* Fix up logging a bit

* Add mistakenly deleted tslint.jsons

* Manual fixup of */v* dt-header overrides

Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
This commit is contained in:
Josh Goldberg
2022-08-18 16:55:02 -04:00
committed by GitHub
parent 7600b05337
commit f3c73434c7
2486 changed files with 6359 additions and 1565 deletions

View File

@@ -7,6 +7,7 @@
"@typescript-eslint"
],
"rules": {
"dt-header": "error",
"no-dead-reference": "error",
"no-const-enum": "error"
}

View File

@@ -31,6 +31,7 @@
"@definitelytyped/utils": "latest",
"@octokit/core": "^3.5.1",
"@octokit/rest": "^16.0.0",
"comment-json": "^4.2.3",
"d3-array": "^3.0.2",
"d3-axis": "^3.0.0",
"d3-scale": "^4.0.0",

View File

@@ -1,5 +1,5 @@
{
"exclude": ["close-old-issues.js", "fix-tslint.js"],
"exclude": ["close-old-issues.js", "fix-tslint.js", "tslint-rule-to-eslint.js"],
"compilerOptions": {
"noUnusedLocals": true,
"target": "es6",

View File

@@ -0,0 +1,69 @@
import { parse } from 'comment-json';
import { promises as fs } from 'fs';
import { format } from 'prettier';
import * as path from 'path';
const emptyObject = {};
const parseAndReadFileContents = async filePath => {
try {
return parse((await fs.readFile(filePath)).toString());
} catch {
return undefined;
}
};
(async () => {
const prettierConfig = await parseAndReadFileContents('.prettierrc.json');
const writeFileFormatted = async (filePath, contents) => {
await fs.writeFile(
filePath,
format(JSON.stringify(contents, null, 4), {
...prettierConfig,
filepath: filePath,
}),
);
};
const [, , tslintRuleName, eslintRuleName = tslintRuleName] = process.argv;
const typeNames = await fs.readdir('types');
for (const typeName of typeNames) {
const typeDirectory = path.join('types', typeName);
const tslintFilePath = path.join(typeDirectory, 'tslint.json');
const tslintData = await parseAndReadFileContents(tslintFilePath);
if (tslintData?.rules?.[tslintRuleName] !== false) {
continue;
}
console.log(`Converting ${typeName}...`);
delete tslintData.rules[tslintRuleName];
if (Object.keys(tslintData.rules).length === 0) {
console.log(`\t${tslintFilePath} has no remaining rules; deleting rules property.`);
delete tslintFilePath.rules;
} else {
console.log(`\t${tslintFilePath} has remaining rules.`);
}
await writeFileFormatted(tslintFilePath, tslintData);
const eslintFilePath = path.join(typeDirectory, '.eslintrc.json');
const eslintData = (await parseAndReadFileContents(eslintFilePath)) ?? emptyObject;
if (eslintData === emptyObject) {
console.log(`\t${eslintFilePath} did not yet exist; creating.`);
} else {
console.log(`\t${eslintFilePath} already exists; modifying.`);
}
writeFileFormatted(eslintFilePath, {
...eslintData,
rules: {
...eslintData.rules,
[eslintRuleName]: 'off',
},
});
}
})();

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"npm-naming": [
true,
{

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"ban-types": false,
"dt-header": false,
"no-consecutive-blank-lines": false,
"no-trailing-whitespace": false,
"no-var-keyword": false,

5
types/ace/.eslintrc.json Normal file
View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -4,7 +4,6 @@
"adjacent-overload-signatures": false,
"ban-types": false,
"comment-format": false,
"dt-header": false,
"interface-name": false,
"jsdoc-format": false,
"max-line-length": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"jsdoc-format": false,
"no-consecutive-blank-lines": false,
"no-redundant-jsdoc-2": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"ban-types": false,
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-trailing-whitespace": false,

5
types/alt/.eslintrc.json Normal file
View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -5,7 +5,6 @@
"array-type": false,
"ban-types": false,
"comment-format": false,
"dt-header": false,
"interface-over-type-literal": false,
"no-declare-current-package": false,
"no-inferrable-types": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"ban-types": false,
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"one-line": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"comment-format": false,
"dt-header": false,
"no-consecutive-blank-lines": false,
"no-unnecessary-generics": false,
"no-var-keyword": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"arrow-return-shorthand": false,
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-object-literal-type-assertion": false,
@@ -11,12 +10,7 @@
"npm-naming": [
true,
{
"errors": [
[
"NeedsExportEquals",
false
]
],
"errors": [["NeedsExportEquals", false]],
"mode": "code"
}
],

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -4,7 +4,6 @@
"array-type": false,
"ban-types": false,
"comment-format": false,
"dt-header": false,
"interface-name": false,
"max-line-length": false,
"no-padding": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"ban-types": false,
"dt-header": false,
"interface-name": false,
"jsdoc-format": false,
"max-line-length": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,6 +1 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false
}
}
{ "extends": "@definitelytyped/dtslint/dt.json" }

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"ban-types": false,
"dt-header": false,
"no-trailing-whitespace": false,
"no-var-keyword": false,
"object-literal-shorthand": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"no-internal-module": false,
"no-unnecessary-qualifier": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-padding": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"array-type": false,
"dt-header": false,
"no-trailing-whitespace": false,
"no-unnecessary-qualifier": false,
"no-var-keyword": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -3,7 +3,6 @@
"rules": {
"array-type": false,
"ban-types": false,
"dt-header": false,
"no-declare-current-package": false,
"no-duplicate-imports": false,
"no-padding": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"array-type": false,
"dt-header": false,
"no-reference-import": false,
"no-unnecessary-qualifier": false,
"only-arrow-functions": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -4,7 +4,6 @@
"array-type": false,
"ban-types": false,
"comment-format": false,
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-declare-current-package": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-padding": false,
@@ -9,12 +8,7 @@
"npm-naming": [
true,
{
"errors": [
[
"NeedsExportEquals",
false
]
],
"errors": [["NeedsExportEquals", false]],
"mode": "code"
}
],

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"comment-format": false,
"dt-header": false,
"jsdoc-format": false,
"max-line-length": false,
"no-consecutive-blank-lines": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -3,7 +3,6 @@
"rules": {
"array-type": false,
"ban-types": false,
"dt-header": false,
"no-redundant-jsdoc-2": false,
"no-reference-import": false,
"no-trailing-whitespace": false,
@@ -11,12 +10,7 @@
"npm-naming": [
true,
{
"errors": [
[
"NeedsExportEquals",
false
]
],
"errors": [["NeedsExportEquals", false]],
"mode": "code"
}
],

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"ban-types": false,
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-reference-import": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"no-consecutive-blank-lines": false,
"no-padding": false,
"no-unnecessary-generics": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-padding": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"max-line-length": false,
"no-consecutive-blank-lines": false,
@@ -11,12 +10,7 @@
"npm-naming": [
true,
{
"errors": [
[
"NeedsExportEquals",
false
]
],
"errors": [["NeedsExportEquals", false]],
"mode": "code"
}
],

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-padding": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"no-padding": false,
"no-redundant-jsdoc-2": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -3,7 +3,6 @@
"rules": {
"array-type": false,
"comment-format": false,
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-padding": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -4,7 +4,6 @@
"array-type": false,
"ban-types": false,
"comment-format": false,
"dt-header": false,
"interface-name": false,
"jsdoc-format": false,
"no-consecutive-blank-lines": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"ban-types": false,
"dt-header": false,
"no-consecutive-blank-lines": false,
"no-padding": false,
"no-unnecessary-class": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"array-type": false,
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-padding": false,
@@ -12,12 +11,7 @@
"npm-naming": [
true,
{
"errors": [
[
"NeedsExportEquals",
false
]
],
"errors": [["NeedsExportEquals", false]],
"mode": "code"
}
],

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"comment-format": false,
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-padding": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"ban-types": false,
"dt-header": false,
"interface-name": false,
"jsdoc-format": false,
"no-consecutive-blank-lines": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"no-any-union": false,
"no-consecutive-blank-lines": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"no-object-literal-type-assertion": false,
"no-reference-import": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"jsdoc-format": false,
"max-line-length": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -3,7 +3,6 @@
"rules": {
"adjacent-overload-signatures": false,
"ban-types": false,
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-namespace": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"array-type": false,
"dt-header": false,
"member-access": false,
"no-declare-current-package": false,
"no-single-declare-module": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"jsdoc-format": false,
"no-var-keyword": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-padding": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"no-redundant-jsdoc-2": false,
"no-reference-import": false,
@@ -9,12 +8,7 @@
"npm-naming": [
true,
{
"errors": [
[
"NeedsExportEquals",
false
]
],
"errors": [["NeedsExportEquals", false]],
"mode": "code"
}
],

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"ban-types": false,
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-padding": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -3,7 +3,6 @@
"rules": {
"array-type": false,
"ban-types": false,
"dt-header": false,
"interface-name": false,
"max-line-length": false,
"no-consecutive-blank-lines": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,19 +1,13 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"max-line-length": false,
"no-reference-import": false,
"npm-naming": [
true,
{
"errors": [
[
"NeedsExportEquals",
false
]
],
"errors": [["NeedsExportEquals", false]],
"mode": "code"
}
],

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -3,7 +3,6 @@
"rules": {
"ban-types": false,
"comment-format": false,
"dt-header": false,
"interface-name": false,
"jsdoc-format": false,
"max-line-length": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -2,7 +2,6 @@
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"array-type": false,
"dt-header": false,
"interface-name": false,
"no-consecutive-blank-lines": false,
"no-inferrable-types": false,

View File

@@ -0,0 +1,5 @@
{
"rules": {
"dt-header": "off"
}
}

View File

@@ -1,7 +1,6 @@
{
"extends": "@definitelytyped/dtslint/dt.json",
"rules": {
"dt-header": false,
"interface-name": false,
"jsdoc-format": false,
"no-consecutive-blank-lines": false,

Some files were not shown because too many files have changed in this diff Show More