@nrwl/linter 15.9.2 → 16.0.0-beta.1
Sign up to get free protection for your applications and to get access to all the features.
- package/executors.json +5 -5
- package/generators.json +2 -28
- package/index.d.ts +1 -5
- package/index.js +1 -13
- package/index.js.map +1 -1
- package/package.json +7 -20
- package/README.md +0 -61
- package/migrations.json +0 -226
- package/src/executors/eslint/compat.d.ts +0 -2
- package/src/executors/eslint/compat.js +0 -6
- package/src/executors/eslint/compat.js.map +0 -1
- package/src/executors/eslint/hasher.d.ts +0 -7
- package/src/executors/eslint/hasher.js +0 -47
- package/src/executors/eslint/hasher.js.map +0 -1
- package/src/executors/eslint/lint.impl.d.ts +0 -5
- package/src/executors/eslint/lint.impl.js +0 -116
- package/src/executors/eslint/lint.impl.js.map +0 -1
- package/src/executors/eslint/schema.d.ts +0 -38
- package/src/executors/eslint/schema.json +0 -139
- package/src/executors/eslint/utility/eslint-utils.d.ts +0 -4
- package/src/executors/eslint/utility/eslint-utils.js +0 -52
- package/src/executors/eslint/utility/eslint-utils.js.map +0 -1
- package/src/generators/init/global-eslint-config.d.ts +0 -36
- package/src/generators/init/global-eslint-config.js +0 -77
- package/src/generators/init/global-eslint-config.js.map +0 -1
- package/src/generators/init/init-migration.d.ts +0 -3
- package/src/generators/init/init-migration.js +0 -68
- package/src/generators/init/init-migration.js.map +0 -1
- package/src/generators/init/init.d.ts +0 -9
- package/src/generators/init/init.js +0 -63
- package/src/generators/init/init.js.map +0 -1
- package/src/generators/lint-project/lint-project.d.ts +0 -16
- package/src/generators/lint-project/lint-project.js +0 -137
- package/src/generators/lint-project/lint-project.js.map +0 -1
- package/src/generators/utils/eslint-file.d.ts +0 -4
- package/src/generators/utils/eslint-file.js +0 -27
- package/src/generators/utils/eslint-file.js.map +0 -1
- package/src/generators/utils/eslint-targets.d.ts +0 -2
- package/src/generators/utils/eslint-targets.js +0 -13
- package/src/generators/utils/eslint-targets.js.map +0 -1
- package/src/generators/utils/linter.d.ts +0 -4
- package/src/generators/utils/linter.js +0 -9
- package/src/generators/utils/linter.js.map +0 -1
- package/src/generators/workspace-rule/files/__name__.spec.ts__tmpl__ +0 -11
- package/src/generators/workspace-rule/files/__name__.ts__tmpl__ +0 -37
- package/src/generators/workspace-rule/schema.json +0 -26
- package/src/generators/workspace-rule/workspace-rule.d.ts +0 -7
- package/src/generators/workspace-rule/workspace-rule.js +0 -79
- package/src/generators/workspace-rule/workspace-rule.js.map +0 -1
- package/src/generators/workspace-rules-project/files/index.ts__tmpl__ +0 -27
- package/src/generators/workspace-rules-project/files/tsconfig.json__tmpl__ +0 -13
- package/src/generators/workspace-rules-project/files/tsconfig.lint.json__tmpl__ +0 -9
- package/src/generators/workspace-rules-project/schema.json +0 -23
- package/src/generators/workspace-rules-project/workspace-rules-project.d.ts +0 -8
- package/src/generators/workspace-rules-project/workspace-rules-project.js +0 -86
- package/src/generators/workspace-rules-project/workspace-rules-project.js.map +0 -1
- package/src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules.d.ts +0 -2
- package/src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules.js +0 -32
- package/src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules.js.map +0 -1
- package/src/migrations/update-12-9-0/add-outputs.d.ts +0 -2
- package/src/migrations/update-12-9-0/add-outputs.js +0 -23
- package/src/migrations/update-12-9-0/add-outputs.js.map +0 -1
- package/src/migrations/update-13-3-0/eslint-8-updates.d.ts +0 -2
- package/src/migrations/update-13-3-0/eslint-8-updates.js +0 -44
- package/src/migrations/update-13-3-0/eslint-8-updates.js.map +0 -1
- package/src/migrations/update-14-1-9/add-swc-deps-if-needed.d.ts +0 -2
- package/src/migrations/update-14-1-9/add-swc-deps-if-needed.js +0 -20
- package/src/migrations/update-14-1-9/add-swc-deps-if-needed.js.map +0 -1
- package/src/migrations/update-14-4-4/experimental-to-utils-deps.d.ts +0 -2
- package/src/migrations/update-14-4-4/experimental-to-utils-deps.js +0 -30
- package/src/migrations/update-14-4-4/experimental-to-utils-deps.js.map +0 -1
- package/src/migrations/update-14-4-4/experimental-to-utils-rules.d.ts +0 -2
- package/src/migrations/update-14-4-4/experimental-to-utils-rules.js +0 -38
- package/src/migrations/update-14-4-4/experimental-to-utils-rules.js.map +0 -1
- package/src/migrations/update-15-0-0/add-eslint-inputs.d.ts +0 -2
- package/src/migrations/update-15-0-0/add-eslint-inputs.js +0 -33
- package/src/migrations/update-15-0-0/add-eslint-inputs.js.map +0 -1
- package/src/migrations/update-15-7-1/add-eslint-ignore.d.ts +0 -2
- package/src/migrations/update-15-7-1/add-eslint-ignore.js +0 -42
- package/src/migrations/update-15-7-1/add-eslint-ignore.js.map +0 -1
- package/src/utils/convert-tslint-to-eslint/convert-nx-enforce-module-boundaries-rule.d.ts +0 -5
- package/src/utils/convert-tslint-to-eslint/convert-nx-enforce-module-boundaries-rule.js +0 -57
- package/src/utils/convert-tslint-to-eslint/convert-nx-enforce-module-boundaries-rule.js.map +0 -1
- package/src/utils/convert-tslint-to-eslint/convert-to-eslint-config.d.ts +0 -9
- package/src/utils/convert-tslint-to-eslint/convert-to-eslint-config.js +0 -152
- package/src/utils/convert-tslint-to-eslint/convert-to-eslint-config.js.map +0 -1
- package/src/utils/convert-tslint-to-eslint/example-tslint-configs.d.ts +0 -326
- package/src/utils/convert-tslint-to-eslint/example-tslint-configs.js +0 -325
- package/src/utils/convert-tslint-to-eslint/example-tslint-configs.js.map +0 -1
- package/src/utils/convert-tslint-to-eslint/index.d.ts +0 -2
- package/src/utils/convert-tslint-to-eslint/index.js +0 -9
- package/src/utils/convert-tslint-to-eslint/index.js.map +0 -1
- package/src/utils/convert-tslint-to-eslint/project-converter.d.ts +0 -72
- package/src/utils/convert-tslint-to-eslint/project-converter.js +0 -396
- package/src/utils/convert-tslint-to-eslint/project-converter.js.map +0 -1
- package/src/utils/convert-tslint-to-eslint/utils.d.ts +0 -10
- package/src/utils/convert-tslint-to-eslint/utils.js +0 -91
- package/src/utils/convert-tslint-to-eslint/utils.js.map +0 -1
- package/src/utils/rules-requiring-type-checking.d.ts +0 -3
- package/src/utils/rules-requiring-type-checking.js +0 -88
- package/src/utils/rules-requiring-type-checking.js.map +0 -1
- package/src/utils/testing.d.ts +0 -2
- package/src/utils/testing.js +0 -13
- package/src/utils/testing.js.map +0 -1
- package/src/utils/versions.d.ts +0 -5
- package/src/utils/versions.js +0 -9
- package/src/utils/versions.js.map +0 -1
- package/src/utils/workspace-lint-rules.d.ts +0 -1
- package/src/utils/workspace-lint-rules.js +0 -6
- package/src/utils/workspace-lint-rules.js.map +0 -1
@@ -1,23 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const tslib_1 = require("tslib");
|
4
|
-
const devkit_1 = require("@nrwl/devkit");
|
5
|
-
function addOutputs(tree) {
|
6
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
7
|
-
for (const [projectName, project] of (0, devkit_1.getProjects)(tree)) {
|
8
|
-
if (!project.targets) {
|
9
|
-
continue;
|
10
|
-
}
|
11
|
-
for (const target of Object.values(project.targets)) {
|
12
|
-
if (target.executor !== '@nrwl/linter:eslint' || target.outputs) {
|
13
|
-
continue;
|
14
|
-
}
|
15
|
-
target.outputs = ['{options.outputFile}'];
|
16
|
-
(0, devkit_1.updateProjectConfiguration)(tree, projectName, project);
|
17
|
-
}
|
18
|
-
}
|
19
|
-
yield (0, devkit_1.formatFiles)(tree);
|
20
|
-
});
|
21
|
-
}
|
22
|
-
exports.default = addOutputs;
|
23
|
-
//# sourceMappingURL=add-outputs.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"add-outputs.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/migrations/update-12-9-0/add-outputs.ts"],"names":[],"mappings":";;;AAAA,yCAKsB;AAEtB,SAA8B,UAAU,CAAC,IAAU;;QACjD,KAAK,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,EAAE;YACtD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACpB,SAAS;aACV;YAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACnD,IAAI,MAAM,CAAC,QAAQ,KAAK,qBAAqB,IAAI,MAAM,CAAC,OAAO,EAAE;oBAC/D,SAAS;iBACV;gBAED,MAAM,CAAC,OAAO,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAE1C,IAAA,mCAA0B,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;aACxD;SACF;QAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAlBD,6BAkBC"}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const tslib_1 = require("tslib");
|
4
|
-
const devkit_1 = require("@nrwl/devkit");
|
5
|
-
const tsquery_1 = require("@phenomnomnominal/tsquery");
|
6
|
-
const versions_1 = require("../../utils/versions");
|
7
|
-
function eslint8Updates(tree) {
|
8
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
9
|
-
try {
|
10
|
-
const { addPropertyToJestConfig } = (0, devkit_1.ensurePackage)('@nrwl/jest', versions_1.nxVersion);
|
11
|
-
const existingJestConfigPath = (0, devkit_1.normalizePath)('tools/eslint-rules/jest.config.js');
|
12
|
-
// Add extra config to the jest.config.js file to allow ESLint 8 exports mapping to work with jest
|
13
|
-
addPropertyToJestConfig(tree, existingJestConfigPath, 'moduleNameMapper', {
|
14
|
-
'@eslint/eslintrc': '@eslint/eslintrc/dist/eslintrc-universal.cjs',
|
15
|
-
});
|
16
|
-
(0, devkit_1.visitNotIgnoredFiles)(tree, 'tools/eslint-rules', (path) => {
|
17
|
-
if (!path.endsWith('.ts')) {
|
18
|
-
return;
|
19
|
-
}
|
20
|
-
const fileContents = tree.read(path).toString('utf-8');
|
21
|
-
const fileAst = tsquery_1.tsquery.ast(fileContents);
|
22
|
-
const isESLintRuleFile = (0, tsquery_1.tsquery)(fileAst, 'PropertyAccessExpression[expression.escapedText=ESLintUtils][name.escapedText=RuleCreator]').length > 0;
|
23
|
-
if (!isESLintRuleFile) {
|
24
|
-
return;
|
25
|
-
}
|
26
|
-
const categoryPropertyAssignmentNode = (0, tsquery_1.tsquery)(fileAst, 'PropertyAssignment[name.escapedText=meta] PropertyAssignment[name.escapedText=docs] PropertyAssignment[name.escapedText=category]')[0];
|
27
|
-
if (!categoryPropertyAssignmentNode) {
|
28
|
-
return;
|
29
|
-
}
|
30
|
-
let end = categoryPropertyAssignmentNode.getEnd();
|
31
|
-
if (fileContents.substring(end, end + 1) === ',') {
|
32
|
-
end++;
|
33
|
-
}
|
34
|
-
const updatedContents = fileContents.slice(0, categoryPropertyAssignmentNode.getFullStart()) +
|
35
|
-
fileContents.slice(end);
|
36
|
-
tree.write(path, updatedContents);
|
37
|
-
});
|
38
|
-
yield (0, devkit_1.formatFiles)(tree);
|
39
|
-
}
|
40
|
-
catch (_a) { }
|
41
|
-
});
|
42
|
-
}
|
43
|
-
exports.default = eslint8Updates;
|
44
|
-
//# sourceMappingURL=eslint-8-updates.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"eslint-8-updates.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/migrations/update-13-3-0/eslint-8-updates.ts"],"names":[],"mappings":";;;AAAA,yCAMsB;AACtB,uDAAoD;AACpD,mDAAiD;AAEjD,SAA8B,cAAc,CAAC,IAAU;;QACrD,IAAI;YACF,MAAM,EAAE,uBAAuB,EAAE,GAAG,IAAA,sBAAa,EAAC,YAAY,EAAE,oBAAS,CAAC,CAAC;YAC3E,MAAM,sBAAsB,GAAG,IAAA,sBAAa,EAC1C,mCAAmC,CACpC,CAAC;YAEF,kGAAkG;YAClG,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,EAAE,kBAAkB,EAAE;gBACxE,kBAAkB,EAAE,8CAA8C;aACnE,CAAC,CAAC;YAEH,IAAA,6BAAoB,EAAC,IAAI,EAAE,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACzB,OAAO;iBACR;gBACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM,OAAO,GAAG,iBAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC1C,MAAM,gBAAgB,GACpB,IAAA,iBAAO,EACL,OAAO,EACP,4FAA4F,CAC7F,CAAC,MAAM,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,gBAAgB,EAAE;oBACrB,OAAO;iBACR;gBACD,MAAM,8BAA8B,GAAG,IAAA,iBAAO,EAC5C,OAAO,EACP,oIAAoI,CACrI,CAAC,CAAC,CAAC,CAAC;gBACL,IAAI,CAAC,8BAA8B,EAAE;oBACnC,OAAO;iBACR;gBACD,IAAI,GAAG,GAAG,8BAA8B,CAAC,MAAM,EAAE,CAAC;gBAClD,IAAI,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;oBAChD,GAAG,EAAE,CAAC;iBACP;gBACD,MAAM,eAAe,GACnB,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,8BAA8B,CAAC,YAAY,EAAE,CAAC;oBACpE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAAC,WAAM,GAAE;IACZ,CAAC;CAAA;AA7CD,iCA6CC"}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const tslib_1 = require("tslib");
|
4
|
-
const devkit_1 = require("@nrwl/devkit");
|
5
|
-
const versions_1 = require("nx/src/utils/versions");
|
6
|
-
const workspace_rules_project_1 = require("../../generators/workspace-rules-project/workspace-rules-project");
|
7
|
-
function addSwcNodeIfNeeded(tree) {
|
8
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
9
|
-
try {
|
10
|
-
if (tree.exists(workspace_rules_project_1.WORKSPACE_PLUGIN_DIR)) {
|
11
|
-
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@swc-node/register': versions_1.swcNodeVersion, '@swc/core': versions_1.swcCoreVersion });
|
12
|
-
yield (0, devkit_1.formatFiles)(tree);
|
13
|
-
return;
|
14
|
-
}
|
15
|
-
}
|
16
|
-
catch (_a) { }
|
17
|
-
});
|
18
|
-
}
|
19
|
-
exports.default = addSwcNodeIfNeeded;
|
20
|
-
//# sourceMappingURL=add-swc-deps-if-needed.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"add-swc-deps-if-needed.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/migrations/update-14-1-9/add-swc-deps-if-needed.ts"],"names":[],"mappings":";;;AAAA,yCAA+E;AAC/E,oDAAuE;AACvE,8GAAwG;AAExG,SAA8B,kBAAkB,CAAC,IAAU;;QACzD,IAAI;YACF,IAAI,IAAI,CAAC,MAAM,CAAC,8CAAoB,CAAC,EAAE;gBACrC,IAAA,qCAA4B,EAC1B,IAAI,EACJ,EAAE,EACF,EAAE,oBAAoB,EAAE,yBAAc,EAAE,WAAW,EAAE,yBAAc,EAAE,CACtE,CAAC;gBACF,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;gBACxB,OAAO;aACR;SACF;QAAC,WAAM,GAAE;IACZ,CAAC;CAAA;AAZD,qCAYC"}
|
@@ -1,30 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const tslib_1 = require("tslib");
|
4
|
-
const devkit_1 = require("@nrwl/devkit");
|
5
|
-
const workspace_rules_project_1 = require("../../generators/workspace-rules-project/workspace-rules-project");
|
6
|
-
const versions_1 = require("../../utils/versions");
|
7
|
-
function addTypescriptEslintUtilsIfNeeded(tree) {
|
8
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
9
|
-
try {
|
10
|
-
const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
|
11
|
-
let removed = false;
|
12
|
-
if (packageJson.devDependencies['@typescript-eslint/experimental-utils']) {
|
13
|
-
yield (0, devkit_1.removeDependenciesFromPackageJson)(tree, [], ['@typescript-eslint/experimental-utils']);
|
14
|
-
removed = true;
|
15
|
-
}
|
16
|
-
if (packageJson.dependencies['@typescript-eslint/experimental-utils']) {
|
17
|
-
yield (0, devkit_1.removeDependenciesFromPackageJson)(tree, ['@typescript-eslint/experimental-utils'], []);
|
18
|
-
removed = true;
|
19
|
-
}
|
20
|
-
if (removed || tree.exists(workspace_rules_project_1.WORKSPACE_PLUGIN_DIR)) {
|
21
|
-
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@typescript-eslint/utils': versions_1.typescriptESLintVersion });
|
22
|
-
yield (0, devkit_1.formatFiles)(tree);
|
23
|
-
}
|
24
|
-
return;
|
25
|
-
}
|
26
|
-
catch (_a) { }
|
27
|
-
});
|
28
|
-
}
|
29
|
-
exports.default = addTypescriptEslintUtilsIfNeeded;
|
30
|
-
//# sourceMappingURL=experimental-to-utils-deps.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"experimental-to-utils-deps.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/migrations/update-14-4-4/experimental-to-utils-deps.ts"],"names":[],"mappings":";;;AAAA,yCAMsB;AACtB,8GAAwG;AACxG,mDAA+D;AAE/D,SAA8B,gCAAgC,CAAC,IAAU;;QACvE,IAAI;YACF,MAAM,WAAW,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACnD,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,IAAI,WAAW,CAAC,eAAe,CAAC,uCAAuC,CAAC,EAAE;gBACxE,MAAM,IAAA,0CAAiC,EACrC,IAAI,EACJ,EAAE,EACF,CAAC,uCAAuC,CAAC,CAC1C,CAAC;gBACF,OAAO,GAAG,IAAI,CAAC;aAChB;YAED,IAAI,WAAW,CAAC,YAAY,CAAC,uCAAuC,CAAC,EAAE;gBACrE,MAAM,IAAA,0CAAiC,EACrC,IAAI,EACJ,CAAC,uCAAuC,CAAC,EACzC,EAAE,CACH,CAAC;gBACF,OAAO,GAAG,IAAI,CAAC;aAChB;YAED,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,8CAAoB,CAAC,EAAE;gBAChD,IAAA,qCAA4B,EAC1B,IAAI,EACJ,EAAE,EACF,EAAE,0BAA0B,EAAE,kCAAuB,EAAE,CACxD,CAAC;gBAEF,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;aACzB;YACD,OAAO;SACR;QAAC,WAAM,GAAE;IACZ,CAAC;CAAA;AAlCD,mDAkCC"}
|
@@ -1,38 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const tslib_1 = require("tslib");
|
4
|
-
const devkit_1 = require("@nrwl/devkit");
|
5
|
-
const tsquery_1 = require("@phenomnomnominal/tsquery");
|
6
|
-
function updateFile(fileAst, fileContents) {
|
7
|
-
const importStatement = (0, tsquery_1.tsquery)(fileAst, 'ImportDeclaration StringLiteral[value=@typescript-eslint/experimental-utils]');
|
8
|
-
if (importStatement.length === 0) {
|
9
|
-
return;
|
10
|
-
}
|
11
|
-
const contentSlices = fileContents.split('@typescript-eslint/experimental-utils');
|
12
|
-
let updatedFileContents = '';
|
13
|
-
for (let i = 0; i < contentSlices.length / 2; i++) {
|
14
|
-
updatedFileContents += `${contentSlices[i]}@typescript-eslint/utils`;
|
15
|
-
}
|
16
|
-
updatedFileContents += contentSlices[contentSlices.length - 1];
|
17
|
-
return updatedFileContents;
|
18
|
-
}
|
19
|
-
function experimentalToUtilsUpdate(tree) {
|
20
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
21
|
-
try {
|
22
|
-
(0, devkit_1.visitNotIgnoredFiles)(tree, 'tools/eslint-rules', (path) => {
|
23
|
-
if (path.endsWith('.ts')) {
|
24
|
-
const fileContents = tree.read(path).toString('utf-8');
|
25
|
-
const fileAst = tsquery_1.tsquery.ast(fileContents);
|
26
|
-
const updatedContents = updateFile(fileAst, fileContents);
|
27
|
-
if (updatedContents) {
|
28
|
-
tree.write(path, updatedContents);
|
29
|
-
}
|
30
|
-
}
|
31
|
-
});
|
32
|
-
yield (0, devkit_1.formatFiles)(tree);
|
33
|
-
}
|
34
|
-
catch (_a) { }
|
35
|
-
});
|
36
|
-
}
|
37
|
-
exports.default = experimentalToUtilsUpdate;
|
38
|
-
//# sourceMappingURL=experimental-to-utils-rules.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"experimental-to-utils-rules.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/migrations/update-14-4-4/experimental-to-utils-rules.ts"],"names":[],"mappings":";;;AAAA,yCAAuE;AACvE,uDAAoD;AAEpD,SAAS,UAAU,CAAC,OAAY,EAAE,YAAoB;IACpD,MAAM,eAAe,GAAU,IAAA,iBAAO,EACpC,OAAO,EACP,8EAA8E,CAC/E,CAAC;IACF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,OAAO;KACR;IACD,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CACtC,uCAAuC,CACxC,CAAC;IACF,IAAI,mBAAmB,GAAG,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACjD,mBAAmB,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,0BAA0B,CAAC;KACtE;IACD,mBAAmB,IAAI,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/D,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,SAA8B,yBAAyB,CAAC,IAAU;;QAChE,IAAI;YACF,IAAA,6BAAoB,EAAC,IAAI,EAAE,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACxB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACvD,MAAM,OAAO,GAAG,iBAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAE1C,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;oBAC1D,IAAI,eAAe,EAAE;wBACnB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;qBACnC;iBACF;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAAC,WAAM,GAAE;IACZ,CAAC;CAAA;AAhBD,4CAgBC"}
|
@@ -1,33 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const tslib_1 = require("tslib");
|
4
|
-
const devkit_1 = require("@nrwl/devkit");
|
5
|
-
const eslint_file_1 = require("../../generators/utils/eslint-file");
|
6
|
-
const eslint_targets_1 = require("../../generators/utils/eslint-targets");
|
7
|
-
function addEslintInputs(tree) {
|
8
|
-
var _a, _b, _c, _d;
|
9
|
-
var _e;
|
10
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
11
|
-
const nxJson = (0, devkit_1.readNxJson)(tree);
|
12
|
-
const globalEslintFile = eslint_file_1.eslintConfigFileWhitelist.find((file) => tree.exists(file));
|
13
|
-
if (globalEslintFile && ((_a = nxJson.namedInputs) === null || _a === void 0 ? void 0 : _a.production)) {
|
14
|
-
const productionFileset = new Set(nxJson.namedInputs.production);
|
15
|
-
productionFileset.add(`!{projectRoot}/${globalEslintFile}`);
|
16
|
-
nxJson.namedInputs.production = Array.from(productionFileset);
|
17
|
-
}
|
18
|
-
for (const targetName of (0, eslint_targets_1.getEslintTargets)(tree)) {
|
19
|
-
(_b = nxJson.targetDefaults) !== null && _b !== void 0 ? _b : (nxJson.targetDefaults = {});
|
20
|
-
const lintTargetDefaults = ((_c = (_e = nxJson.targetDefaults)[targetName]) !== null && _c !== void 0 ? _c : (_e[targetName] = {}));
|
21
|
-
(_d = lintTargetDefaults.inputs) !== null && _d !== void 0 ? _d : (lintTargetDefaults.inputs = [
|
22
|
-
'default',
|
23
|
-
...(globalEslintFile
|
24
|
-
? [(0, devkit_1.joinPathFragments)('{workspaceRoot}', globalEslintFile)]
|
25
|
-
: []),
|
26
|
-
]);
|
27
|
-
}
|
28
|
-
(0, devkit_1.updateNxJson)(tree, nxJson);
|
29
|
-
yield (0, devkit_1.formatFiles)(tree);
|
30
|
-
});
|
31
|
-
}
|
32
|
-
exports.default = addEslintInputs;
|
33
|
-
//# sourceMappingURL=add-eslint-inputs.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"add-eslint-inputs.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/migrations/update-15-0-0/add-eslint-inputs.ts"],"names":[],"mappings":";;;AAAA,yCAMsB;AACtB,oEAA+E;AAC/E,0EAAyE;AAEzE,SAA8B,eAAe,CAAC,IAAU;;;;QACtD,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;QAEhC,MAAM,gBAAgB,GAAG,uCAAyB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAClB,CAAC;QAEF,IAAI,gBAAgB,KAAI,MAAA,MAAM,CAAC,WAAW,0CAAE,UAAU,CAAA,EAAE;YACtD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAEjE,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,gBAAgB,EAAE,CAAC,CAAC;YAE5D,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC/D;QAED,KAAK,MAAM,UAAU,IAAI,IAAA,iCAAgB,EAAC,IAAI,CAAC,EAAE;YAC/C,MAAA,MAAM,CAAC,cAAc,oCAArB,MAAM,CAAC,cAAc,GAAK,EAAE,EAAC;YAE7B,MAAM,kBAAkB,GAAG,aAAC,MAAM,CAAC,cAAc,EAAC,UAAU,wCAAV,UAAU,IAAM,EAAE,EAAC,CAAC;YAEtE,MAAA,kBAAkB,CAAC,MAAM,oCAAzB,kBAAkB,CAAC,MAAM,GAAK;gBAC5B,SAAS;gBACT,GAAG,CAAC,gBAAgB;oBAClB,CAAC,CAAC,CAAC,IAAA,0BAAiB,EAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;oBAC1D,CAAC,CAAC,EAAE,CAAC;aACR,EAAC;SACH;QAED,IAAA,qBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE3B,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;;CACzB;AA/BD,kCA+BC"}
|
@@ -1,42 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const tslib_1 = require("tslib");
|
4
|
-
const devkit_1 = require("@nrwl/devkit");
|
5
|
-
const eslint_file_1 = require("../../generators/utils/eslint-file");
|
6
|
-
const eslint_targets_1 = require("../../generators/utils/eslint-targets");
|
7
|
-
function addEslintIgnore(tree) {
|
8
|
-
var _a, _b;
|
9
|
-
var _c;
|
10
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
11
|
-
const nxJson = (0, devkit_1.readJson)(tree, 'nx.json');
|
12
|
-
const globalEslintFile = eslint_file_1.eslintConfigFileWhitelist.find((file) => tree.exists(file));
|
13
|
-
if (globalEslintFile) {
|
14
|
-
if (tree.exists('.eslintignore')) {
|
15
|
-
const content = tree.read('.eslintignore', 'utf-8');
|
16
|
-
if (!content.includes('node_modules')) {
|
17
|
-
tree.write('.eslintignore', `node_modules\n${content}`);
|
18
|
-
}
|
19
|
-
}
|
20
|
-
else {
|
21
|
-
tree.write('.eslintignore', 'node_modules\n');
|
22
|
-
}
|
23
|
-
for (const targetName of (0, eslint_targets_1.getEslintTargets)(tree)) {
|
24
|
-
(_a = nxJson.targetDefaults) !== null && _a !== void 0 ? _a : (nxJson.targetDefaults = {});
|
25
|
-
const lintTargetDefaults = ((_b = (_c = nxJson.targetDefaults)[targetName]) !== null && _b !== void 0 ? _b : (_c[targetName] = {}));
|
26
|
-
const lintIgnorePath = (0, devkit_1.joinPathFragments)('{workspaceRoot}', globalEslintFile);
|
27
|
-
if (lintTargetDefaults.inputs) {
|
28
|
-
if (!lintTargetDefaults.inputs.includes(lintIgnorePath)) {
|
29
|
-
lintTargetDefaults.inputs.push(lintIgnorePath);
|
30
|
-
}
|
31
|
-
}
|
32
|
-
else {
|
33
|
-
lintTargetDefaults.inputs = ['default', lintIgnorePath];
|
34
|
-
}
|
35
|
-
}
|
36
|
-
(0, devkit_1.updateNxJson)(tree, nxJson);
|
37
|
-
yield (0, devkit_1.formatFiles)(tree);
|
38
|
-
}
|
39
|
-
});
|
40
|
-
}
|
41
|
-
exports.default = addEslintIgnore;
|
42
|
-
//# sourceMappingURL=add-eslint-ignore.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"add-eslint-ignore.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/migrations/update-15-7-1/add-eslint-ignore.ts"],"names":[],"mappings":";;;AAAA,yCAMsB;AACtB,oEAA+E;AAC/E,0EAAyE;AAEzE,SAA8B,eAAe,CAAC,IAAU;;;;QACtD,MAAM,MAAM,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEzC,MAAM,gBAAgB,GAAG,uCAAyB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAClB,CAAC;QAEF,IAAI,gBAAgB,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;gBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACrC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,OAAO,EAAE,CAAC,CAAC;iBACzD;aACF;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;aAC/C;YAED,KAAK,MAAM,UAAU,IAAI,IAAA,iCAAgB,EAAC,IAAI,CAAC,EAAE;gBAC/C,MAAA,MAAM,CAAC,cAAc,oCAArB,MAAM,CAAC,cAAc,GAAK,EAAE,EAAC;gBAC7B,MAAM,kBAAkB,GAAG,aAAC,MAAM,CAAC,cAAc,EAAC,UAAU,wCAAV,UAAU,IAAM,EAAE,EAAC,CAAC;gBAEtE,MAAM,cAAc,GAAG,IAAA,0BAAiB,EACtC,iBAAiB,EACjB,gBAAgB,CACjB,CAAC;gBAEF,IAAI,kBAAkB,CAAC,MAAM,EAAE;oBAC7B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;wBACvD,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;qBAChD;iBACF;qBAAM;oBACL,kBAAkB,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;iBACzD;aACF;YAED,IAAA,qBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;;CACF;AAtCD,kCAsCC"}
|
@@ -1,57 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.convertTslintNxRuleToEslintNxRule = void 0;
|
4
|
-
function convertTSLintRuleSeverity(tslintConfig, tslintSeverity) {
|
5
|
-
if (tslintSeverity === true) {
|
6
|
-
tslintSeverity = 'default';
|
7
|
-
}
|
8
|
-
if (tslintSeverity === false) {
|
9
|
-
tslintSeverity = 'off';
|
10
|
-
}
|
11
|
-
if (tslintSeverity === 'default') {
|
12
|
-
tslintSeverity = tslintConfig.defaultSeverity || 'error';
|
13
|
-
}
|
14
|
-
const narrowedTslintSeverity = tslintSeverity;
|
15
|
-
return narrowedTslintSeverity === 'warning' ? 'warn' : narrowedTslintSeverity;
|
16
|
-
}
|
17
|
-
const NX_TSLINT_RULE_NAME = 'nx-enforce-module-boundaries';
|
18
|
-
function convertTslintNxRuleToEslintNxRule(tslintJson) {
|
19
|
-
var _a;
|
20
|
-
/**
|
21
|
-
* TSLint supports a number of different formats for rule configuration
|
22
|
-
*/
|
23
|
-
const existingRuleDefinition = (_a = tslintJson === null || tslintJson === void 0 ? void 0 : tslintJson.rules) === null || _a === void 0 ? void 0 : _a[NX_TSLINT_RULE_NAME];
|
24
|
-
if (!existingRuleDefinition) {
|
25
|
-
return null;
|
26
|
-
}
|
27
|
-
let existingRuleSeverity = 'error';
|
28
|
-
let existingRuleConfig = {
|
29
|
-
enforceBuildableLibDependency: true,
|
30
|
-
allow: [],
|
31
|
-
depConstraints: [
|
32
|
-
{
|
33
|
-
sourceTag: '*',
|
34
|
-
onlyDependOnLibsWithTags: ['*'],
|
35
|
-
},
|
36
|
-
],
|
37
|
-
};
|
38
|
-
if (Array.isArray(existingRuleDefinition)) {
|
39
|
-
existingRuleSeverity = existingRuleDefinition[0];
|
40
|
-
existingRuleConfig = existingRuleDefinition[1];
|
41
|
-
}
|
42
|
-
else if (typeof existingRuleDefinition === 'object' &&
|
43
|
-
existingRuleDefinition.severity) {
|
44
|
-
existingRuleSeverity = existingRuleDefinition.severity;
|
45
|
-
if (Array.isArray(existingRuleDefinition.options) &&
|
46
|
-
existingRuleDefinition.options[0]) {
|
47
|
-
existingRuleConfig = existingRuleDefinition.options[0];
|
48
|
-
}
|
49
|
-
}
|
50
|
-
const ruleSeverity = convertTSLintRuleSeverity(tslintJson, existingRuleSeverity);
|
51
|
-
return {
|
52
|
-
ruleName: '@nrwl/nx/enforce-module-boundaries',
|
53
|
-
ruleConfig: [ruleSeverity, existingRuleConfig],
|
54
|
-
};
|
55
|
-
}
|
56
|
-
exports.convertTslintNxRuleToEslintNxRule = convertTslintNxRuleToEslintNxRule;
|
57
|
-
//# sourceMappingURL=convert-nx-enforce-module-boundaries-rule.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"convert-nx-enforce-module-boundaries-rule.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/utils/convert-tslint-to-eslint/convert-nx-enforce-module-boundaries-rule.ts"],"names":[],"mappings":";;;AAQA,SAAS,yBAAyB,CAChC,YAAiB,EACjB,cAAkC;IAElC,IAAI,cAAc,KAAK,IAAI,EAAE;QAC3B,cAAc,GAAG,SAAS,CAAC;KAC5B;IACD,IAAI,cAAc,KAAK,KAAK,EAAE;QAC5B,cAAc,GAAG,KAAK,CAAC;KACxB;IACD,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,cAAc,GAAG,YAAY,CAAC,eAAe,IAAI,OAAO,CAAC;KAC1D;IACD,MAAM,sBAAsB,GAC1B,cAAoD,CAAC;IACvD,OAAO,sBAAsB,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC;AAChF,CAAC;AAED,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAE3D,SAAgB,iCAAiC,CAC/C,UAAmC;;IAKnC;;OAEG;IACH,MAAM,sBAAsB,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAG,mBAAmB,CAAC,CAAC;IACxE,IAAI,CAAC,sBAAsB,EAAE;QAC3B,OAAO,IAAI,CAAC;KACb;IACD,IAAI,oBAAoB,GAAuB,OAAO,CAAC;IACvD,IAAI,kBAAkB,GAAG;QACvB,6BAA6B,EAAE,IAAI;QACnC,KAAK,EAAE,EAAE;QACT,cAAc,EAAE;YACd;gBACE,SAAS,EAAE,GAAG;gBACd,wBAAwB,EAAE,CAAC,GAAG,CAAC;aAChC;SACF;KACF,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE;QACzC,oBAAoB,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACjD,kBAAkB,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;KAChD;SAAM,IACL,OAAO,sBAAsB,KAAK,QAAQ;QAC1C,sBAAsB,CAAC,QAAQ,EAC/B;QACA,oBAAoB,GAAG,sBAAsB,CAAC,QAAQ,CAAC;QACvD,IACE,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC;YAC7C,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,EACjC;YACA,kBAAkB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACxD;KACF;IAED,MAAM,YAAY,GAAuB,yBAAyB,CAChE,UAAU,EACV,oBAAoB,CACrB,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,oCAAoC;QAC9C,UAAU,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;KAC/C,CAAC;AACJ,CAAC;AAlDD,8EAkDC"}
|
@@ -1,9 +0,0 @@
|
|
1
|
-
import type { Tree } from '@nrwl/devkit';
|
2
|
-
import type { Linter as ESLintLinter } from 'eslint';
|
3
|
-
import type { TSLintRuleOptions } from 'tslint-to-eslint-config';
|
4
|
-
export declare function convertToESLintConfig(pathToTslintJson: string, tslintJson: Record<string, unknown>, ignoreExtendsVals: string[]): Promise<{
|
5
|
-
convertedESLintConfig: ESLintLinter.Config;
|
6
|
-
unconvertedTSLintRules: TSLintRuleOptions[];
|
7
|
-
ensureESLintPlugins: string[];
|
8
|
-
}>;
|
9
|
-
export declare function convertTSLintDisableCommentsForProject(tree: Tree, projectName: string): void;
|
@@ -1,152 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.convertTSLintDisableCommentsForProject = exports.convertToESLintConfig = void 0;
|
4
|
-
const tslib_1 = require("tslib");
|
5
|
-
const devkit_1 = require("@nrwl/devkit");
|
6
|
-
const child_process_1 = require("child_process");
|
7
|
-
const tmp_1 = require("tmp");
|
8
|
-
const versions_1 = require("../versions");
|
9
|
-
let tslintToEslint;
|
10
|
-
function getConvertToEslintConfig() {
|
11
|
-
if (tslintToEslint) {
|
12
|
-
return tslintToEslint;
|
13
|
-
}
|
14
|
-
try {
|
15
|
-
// This is usually not possible during runtime but makes it easy to mock in tests
|
16
|
-
return require('tslint-to-eslint-config');
|
17
|
-
}
|
18
|
-
catch (_a) { }
|
19
|
-
/**
|
20
|
-
* In order to avoid all users of Nx needing to have tslint-to-eslint-config (and therefore tslint)
|
21
|
-
* in their node_modules, we dynamically install and uninstall the library as part of the conversion
|
22
|
-
* process.
|
23
|
-
*
|
24
|
-
* NOTE: By taking this approach we have to sacrifice dry-run capabilities for this generator.
|
25
|
-
*/
|
26
|
-
const tempDir = (0, tmp_1.dirSync)().name;
|
27
|
-
(0, child_process_1.execSync)(`${(0, devkit_1.getPackageManagerCommand)().addDev} tslint-to-eslint-config@${versions_1.tslintToEslintConfigVersion}`, {
|
28
|
-
cwd: tempDir,
|
29
|
-
stdio: [0, 1, 2],
|
30
|
-
});
|
31
|
-
tslintToEslint = require(require.resolve('tslint-to-eslint-config', {
|
32
|
-
paths: [tempDir],
|
33
|
-
}));
|
34
|
-
return tslintToEslint;
|
35
|
-
}
|
36
|
-
function convertToESLintConfig(pathToTslintJson, tslintJson, ignoreExtendsVals) {
|
37
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
38
|
-
/**
|
39
|
-
* We need to avoid a direct dependency on tslint-to-eslint-config
|
40
|
-
* and ensure we are only resolving the dependency from the user's
|
41
|
-
* node_modules on demand (it will be installed as part of the
|
42
|
-
* conversion generator).
|
43
|
-
*/
|
44
|
-
const { createESLintConfiguration, findReportedConfiguration, joinConfigConversionResults, } = getConvertToEslintConfig();
|
45
|
-
const updatedTSLintJson = tslintJson;
|
46
|
-
/**
|
47
|
-
* If ignoreExtendsVals are provided, strip them from the config
|
48
|
-
* and commit the result to disk per the notes below.
|
49
|
-
*/
|
50
|
-
if (ignoreExtendsVals.length && updatedTSLintJson.extends) {
|
51
|
-
if (typeof updatedTSLintJson.extends === 'string' &&
|
52
|
-
ignoreExtendsVals.includes(updatedTSLintJson.extends)) {
|
53
|
-
delete updatedTSLintJson.extends;
|
54
|
-
}
|
55
|
-
if (Array.isArray(updatedTSLintJson.extends)) {
|
56
|
-
updatedTSLintJson.extends = updatedTSLintJson.extends.filter((ext) => !ignoreExtendsVals.includes(ext));
|
57
|
-
}
|
58
|
-
/**
|
59
|
-
* The reasons we need to interact with the filesystem here:
|
60
|
-
*
|
61
|
-
* 1) The result of the tslint CLI flag `--print-config` is needed for the
|
62
|
-
* conversion process, and unfortunately no equivalent Node API was ever
|
63
|
-
* added to tslint, so the tslint CLI needs to always read from disk.
|
64
|
-
*
|
65
|
-
* 2) When converting project configs, we need to strip the extends path
|
66
|
-
* which corresponds to the workspace's root config, otherwise all of the
|
67
|
-
* root config's rules will be included in the resultant eslint config for
|
68
|
-
* the project. The interaction with the filesystem is needed because of
|
69
|
-
* point (1) above - we need to strip the relevant extends and commit that
|
70
|
-
* change to disk before the tslint CLI reads the config file.
|
71
|
-
*/
|
72
|
-
(0, devkit_1.writeJsonFile)(pathToTslintJson, updatedTSLintJson);
|
73
|
-
}
|
74
|
-
const reportedConfiguration = yield findReportedConfiguration('npx tslint --print-config', pathToTslintJson);
|
75
|
-
if (reportedConfiguration instanceof Error) {
|
76
|
-
if (reportedConfiguration.message.includes('unknown option `--print-config')) {
|
77
|
-
throw new Error('\nError: TSLint v5.18 required in order to run this schematic. Please update your version and try again.\n');
|
78
|
-
}
|
79
|
-
/**
|
80
|
-
* Make a print-config issue easier to understand for the end user.
|
81
|
-
* This error could occur if, for example, the user does not have a TSLint plugin installed correctly that they
|
82
|
-
* reference in their config.
|
83
|
-
*/
|
84
|
-
const printConfigFailureMessageStart = 'Command failed: npx tslint --print-config "tslint.json"';
|
85
|
-
if (reportedConfiguration.message.startsWith(printConfigFailureMessageStart)) {
|
86
|
-
throw new Error(`\nThere was a critical error when trying to inspect your tslint.json: \n${reportedConfiguration.message.replace(printConfigFailureMessageStart, '')}`);
|
87
|
-
}
|
88
|
-
throw new Error(`Unexpected error: ${reportedConfiguration.message}`);
|
89
|
-
}
|
90
|
-
const originalConfigurations = {
|
91
|
-
tslint: {
|
92
|
-
full: reportedConfiguration,
|
93
|
-
raw: updatedTSLintJson,
|
94
|
-
},
|
95
|
-
};
|
96
|
-
const summarizedConfiguration = yield createESLintConfiguration(originalConfigurations);
|
97
|
-
/**
|
98
|
-
* We are expecting it to not find a converter for nx-enforce-module-boundaries
|
99
|
-
* and we will explicitly replace it with the ESLint equivalent ourselves.
|
100
|
-
*/
|
101
|
-
if (summarizedConfiguration.missing) {
|
102
|
-
summarizedConfiguration.missing = summarizedConfiguration.missing.filter((missingRuleData) => missingRuleData.ruleName !== 'nx-enforce-module-boundaries');
|
103
|
-
}
|
104
|
-
// These are already covered by our extraEslintDependencies which get installed by the schematic
|
105
|
-
const expectedESLintPlugins = [
|
106
|
-
'@angular-eslint/eslint-plugin',
|
107
|
-
'@angular-eslint/eslint-plugin-template',
|
108
|
-
];
|
109
|
-
const convertedESLintConfig = joinConfigConversionResults(summarizedConfiguration, originalConfigurations);
|
110
|
-
if (Array.isArray(convertedESLintConfig.extends) &&
|
111
|
-
convertedESLintConfig.extends.length) {
|
112
|
-
// Ignore any tslint-to-eslint-config default extends that do not apply to Nx
|
113
|
-
convertedESLintConfig.extends = convertedESLintConfig.extends.filter((ext) => !ext.startsWith('prettier'));
|
114
|
-
if (convertedESLintConfig.extends.length === 0) {
|
115
|
-
delete convertedESLintConfig.extends;
|
116
|
-
}
|
117
|
-
}
|
118
|
-
return {
|
119
|
-
convertedESLintConfig,
|
120
|
-
unconvertedTSLintRules: summarizedConfiguration.missing,
|
121
|
-
ensureESLintPlugins: Array.from(summarizedConfiguration.plugins).filter((pluginName) => !expectedESLintPlugins.includes(pluginName)),
|
122
|
-
};
|
123
|
-
});
|
124
|
-
}
|
125
|
-
exports.convertToESLintConfig = convertToESLintConfig;
|
126
|
-
function likelyContainsTSLintComment(fileContent) {
|
127
|
-
return fileContent.includes('tslint:');
|
128
|
-
}
|
129
|
-
function convertTSLintDisableCommentsForProject(tree, projectName) {
|
130
|
-
/**
|
131
|
-
* We need to avoid a direct dependency on tslint-to-eslint-config
|
132
|
-
* and ensure we are only resolving the dependency from the user's
|
133
|
-
* node_modules on demand (it will be installed as part of the
|
134
|
-
* conversion generator).
|
135
|
-
*/
|
136
|
-
const { convertFileComments } = getConvertToEslintConfig();
|
137
|
-
const { root } = (0, devkit_1.readProjectConfiguration)(tree, projectName);
|
138
|
-
(0, devkit_1.visitNotIgnoredFiles)(tree, root, (filePath) => {
|
139
|
-
if (!filePath.endsWith('.ts')) {
|
140
|
-
return;
|
141
|
-
}
|
142
|
-
const fileContent = tree.read(filePath, 'utf-8');
|
143
|
-
// Avoid updating files if we don't have to
|
144
|
-
if (!fileContent || !likelyContainsTSLintComment(fileContent)) {
|
145
|
-
return;
|
146
|
-
}
|
147
|
-
const updatedFileContent = convertFileComments({ fileContent, filePath });
|
148
|
-
tree.write(filePath, updatedFileContent);
|
149
|
-
});
|
150
|
-
}
|
151
|
-
exports.convertTSLintDisableCommentsForProject = convertTSLintDisableCommentsForProject;
|
152
|
-
//# sourceMappingURL=convert-to-eslint-config.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"convert-to-eslint-config.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/utils/convert-tslint-to-eslint/convert-to-eslint-config.ts"],"names":[],"mappings":"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"}
|