Skip to content

Commit 5229559

Browse files
author
Josh Goldberg
authored
Fixed .length errors in formatMissingRules (#70)
* Fixed .length errors in formatMissingRules Two problems:\n* It's `rulesDirectory`, not `ruleDirectories`... `tslint.json` rule values that didn't provide `ruleArguments` weren't being given `[]` as defaults when being parsed. Added a unit test for this. Fixes #69. _Nice._ * Fixed import order in convertRules.ts I should automate this eventually...
1 parent 83b680d commit 5229559

12 files changed

+49
-21
lines changed

src/conversion/convertConfig.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const createStubDependencies = (
1414
const createStubOriginalConfigurationsData = () => ({
1515
tslint: {
1616
rules: [],
17-
ruleDirectories: [],
17+
rulesDirectory: [],
1818
},
1919
});
2020

src/creation/formatConvertedRules.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { createEmptyConversionResults } from "../conversion/conversionResults.st
22
import { formatConvertedRules } from "./formatConvertedRules";
33

44
const originalConfiguration = {
5-
ruleDirectories: [],
5+
rulesDirectory: [],
66
rules: {},
77
};
88

src/creation/formatConvertedRules.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export const formatConvertedRules = (
1919
if (conversionResults.missing.length !== 0) {
2020
output["@typescript-eslint/tslint/config"] = formatMissingRules(
2121
conversionResults.missing,
22-
tslintConfiguration.ruleDirectories,
22+
tslintConfiguration.rulesDirectory,
2323
);
2424
}
2525

src/creation/formatMissingRules.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ describe("formatMissingRules", () => {
111111

112112
it("includes rule directories when there are rule directories", () => {
113113
// Arrange
114-
const ruleDirectories = ["./path/to/rules"];
114+
const rulesDirectory = ["./path/to/rules"];
115115
const missing: TSLintRuleOptions[] = [
116116
{
117117
ruleArguments: [],
@@ -121,13 +121,13 @@ describe("formatMissingRules", () => {
121121
];
122122

123123
// Act
124-
const output = formatMissingRules(missing, ruleDirectories);
124+
const output = formatMissingRules(missing, rulesDirectory);
125125

126126
// Assert
127127
expect(output).toEqual([
128128
"error",
129129
{
130-
ruleDirectories,
130+
rulesDirectory,
131131
rules: {
132132
"tslint-rule-a": true,
133133
},

src/creation/formatMissingRules.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { TSLintRuleOptions } from "../rules/types";
22

3-
export const formatMissingRules = (missing: TSLintRuleOptions[], ruleDirectories: string[]) => {
3+
export const formatMissingRules = (missing: TSLintRuleOptions[], rulesDirectory: string[]) => {
44
const rules: { [i: string]: unknown } = {};
55

66
for (const rule of missing.sort((a, b) => a.ruleName.localeCompare(b.ruleName))) {
@@ -12,7 +12,7 @@ export const formatMissingRules = (missing: TSLintRuleOptions[], ruleDirectories
1212
return [
1313
"error",
1414
{
15-
...(ruleDirectories.length !== 0 && { ruleDirectories }),
15+
...(rulesDirectory.length !== 0 && { rulesDirectory }),
1616
rules,
1717
},
1818
];

src/creation/writeConversionResults.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { writeConversionResults } from "./writeConversionResults";
33

44
const originalConfigurations = {
55
tslint: {
6-
ruleDirectories: [],
6+
rulesDirectory: [],
77
rules: {},
88
},
99
};

src/input/findOriginalConfigurations.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const createDependencies = (overrides: Partial<FindOriginalConfigurationsDepende
2020
devDependencies: {},
2121
}),
2222
findTSLintConfiguration: async () => ({
23-
ruleDirectories: [],
23+
rulesDirectory: [],
2424
rules: {},
2525
}),
2626
findTypeScriptConfiguration: async () => ({
@@ -64,7 +64,7 @@ describe("findOriginalConfigurations", () => {
6464
expect(result).toEqual({
6565
data: {
6666
tslint: {
67-
ruleDirectories: [],
67+
rulesDirectory: [],
6868
rules: {},
6969
},
7070
},
@@ -91,7 +91,7 @@ describe("findOriginalConfigurations", () => {
9191
devDependencies: {},
9292
},
9393
tslint: {
94-
ruleDirectories: [],
94+
rulesDirectory: [],
9595
rules: {},
9696
},
9797
typescript: {

src/input/findTSLintConfiguration.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Exec } from "../adapters/exec";
22
import { findConfiguration } from "./findConfiguration";
33

44
export type TSLintConfiguration = {
5-
ruleDirectories: string[];
5+
rulesDirectory: string[];
66
rules: TSLintConfigurationRules;
77
};
88

@@ -11,7 +11,7 @@ export type TSLintConfigurationRules = {
1111
};
1212

1313
const defaultTSLintConfiguration = {
14-
ruleDirectories: [],
14+
rulesDirectory: [],
1515
rules: {},
1616
};
1717

src/input/findTslintConfiguration.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ describe("findTSLintConfiguration", () => {
5353

5454
// Assert
5555
expect(result).toEqual({
56-
ruleDirectories: [],
56+
rulesDirectory: [],
5757
rules: {},
5858
});
5959
});

src/rules/convertRules.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { TSLintConfigurationRules } from "../input/findTSLintConfiguration";
22
import { ConversionError } from "./conversionError";
3+
import { RuleConverter } from "./converter";
34
import { convertRule } from "./convertRule";
45
import { convertRuleSeverity } from "./convertRuleSeverity";
5-
import { TSLintRuleOptions, ESLintRuleOptions } from "./types";
6-
import { RuleConverter } from "./converter";
6+
import { formatRawTslintRule } from "./formatRawTslintRule";
77
import { RuleMerger } from "./merger";
8+
import { TSLintRuleOptions, ESLintRuleOptions } from "./types";
89

910
export type ConvertRulesDependencies = {
1011
converters: Map<string, RuleConverter>;
@@ -28,11 +29,9 @@ export const convertRules = (
2829
const packages = new Set<string>();
2930

3031
for (const [ruleName, value] of Object.entries(rawTslintRules)) {
31-
const tslintRule = {
32-
ruleName,
33-
...value,
34-
};
32+
const tslintRule = formatRawTslintRule(ruleName, value);
3533
const conversion = convertRule(tslintRule, dependencies.converters);
34+
3635
if (conversion === undefined) {
3736
if (tslintRule.ruleSeverity !== "off") {
3837
missing.push(tslintRule);

0 commit comments

Comments
 (0)