Skip to content

Commit 85cacbc

Browse files
author
Josh Goldberg
authored
Further clarified config converters structure in code (#708)
* Further clarified config converters structure in code * Nit: blank line
1 parent 002f8c6 commit 85cacbc

File tree

7 files changed

+34
-29
lines changed

7 files changed

+34
-29
lines changed

docs/Architecture.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44

55
1. CLI usage starts in `bin/tslint-to-eslint-config`, which immediately calls `src/cli/main.ts`.
66
2. CLI settings are parsed and read in `src/cli/runCli.ts`.
7-
3. Linter configuration conversion is run by `src/conversion/convertConfig.ts`.
7+
3. Linter configuration conversion is run by `src/conversion/convertLintConfig.ts`.
88
4. Editor configuration conversion is run by `src/conversion/convertEditorConfig.ts`.
99

1010
## Linter Configuration Conversion
1111

12-
Within `src/conversion/convertConfig.ts`, the following steps occur:
12+
Within `src/conversion/convertLintConfig.ts`, the following steps occur:
1313

1414
1. Existing configurations are read from disk
1515
2. TSLint rules are converted into their ESLint configurations

src/cli/main.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
ConvertFileCommentsDependencies,
1212
convertFileComments,
1313
} from "../comments/convertFileComments";
14-
import { convertConfig, ConvertConfigDependencies } from "../conversion/convertConfig";
14+
import { convertLintConfig, ConvertLintConfigDependencies } from "../conversion/convertLintConfig";
1515
import {
1616
convertEditorConfig,
1717
ConvertEditorConfigDependencies,
@@ -165,7 +165,7 @@ const convertEditorConfigDependencies: ConvertEditorConfigDependencies = {
165165
),
166166
};
167167

168-
const convertConfigDependencies: ConvertConfigDependencies = {
168+
const convertLintConfigDependencies: ConvertLintConfigDependencies = {
169169
convertComments: bind(convertComments, convertCommentsDependencies),
170170
convertRules: bind(convertRules, convertRulesDependencies),
171171
findOriginalConfigurations: bind(
@@ -180,8 +180,8 @@ const convertConfigDependencies: ConvertConfigDependencies = {
180180
};
181181

182182
const runCliDependencies: RunCliDependencies = {
183-
convertConfigs: [
184-
bind(convertConfig, convertConfigDependencies),
183+
configConverters: [
184+
bind(convertLintConfig, convertLintConfigDependencies),
185185
bind(convertEditorConfig, convertEditorConfigDependencies),
186186
],
187187
logger: processLogger,

src/cli/runCli.test.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import { runCli, RunCliDependencies } from "./runCli";
88
const createStubArgv = (argv: string[] = []) => ["node", "some/path/bin/file", ...argv];
99

1010
const createStubRunCliDependencies = (
11-
overrides: Partial<Pick<RunCliDependencies, "convertConfigs">> = {},
11+
overrides: Partial<Pick<RunCliDependencies, "configConverters">> = {},
1212
) => ({
13-
convertConfigs: [
13+
configConverters: [
1414
async (): Promise<TSLintToESLintResult> => ({ status: ResultStatus.Succeeded }),
1515
],
1616
logger: createStubLogger(),
@@ -34,7 +34,7 @@ describe("runCli", () => {
3434
// Arrange
3535
const message = "Oh no";
3636
const dependencies = createStubRunCliDependencies({
37-
convertConfigs: [() => Promise.reject(new Error(message))],
37+
configConverters: [() => Promise.reject(new Error(message))],
3838
});
3939

4040
// Act
@@ -51,7 +51,7 @@ describe("runCli", () => {
5151
// Arrange
5252
const complaint = "too much unit testing coverage";
5353
const dependencies = createStubRunCliDependencies({
54-
convertConfigs: [
54+
configConverters: [
5555
() =>
5656
Promise.resolve({
5757
complaints: [complaint],
@@ -76,7 +76,7 @@ describe("runCli", () => {
7676
// Arrange
7777
const error = new Error("too much unit testing coverage");
7878
const dependencies = createStubRunCliDependencies({
79-
convertConfigs: [
79+
configConverters: [
8080
() =>
8181
Promise.resolve({
8282
errors: [error],
@@ -104,7 +104,7 @@ describe("runCli", () => {
104104
new Error("too much branch coverage"),
105105
];
106106
const dependencies = createStubRunCliDependencies({
107-
convertConfigs: [
107+
configConverters: [
108108
() =>
109109
Promise.resolve({
110110
errors,
@@ -141,7 +141,7 @@ describe("runCli", () => {
141141
it("default output should be .eslintrc.js", async () => {
142142
let defaultConfig;
143143
const dependencies = createStubRunCliDependencies({
144-
convertConfigs: [
144+
configConverters: [
145145
(parsedArgs) => {
146146
defaultConfig = parsedArgs.config;
147147
return Promise.resolve({

src/cli/runCli.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ import { EOL } from "os";
44

55
import { version } from "../../package.json";
66
import { Logger } from "../adapters/logger";
7-
import { SansDependencies } from "../binding";
8-
import { convertConfig } from "../conversion/convertConfig";
7+
import { ConfigConverter } from "../conversion/configConverter";
98
import { ResultStatus, ResultWithStatus, TSLintToESLintSettings } from "../types";
109

1110
export type RunCliDependencies = {
12-
convertConfigs: SansDependencies<typeof convertConfig>[];
11+
configConverters: ConfigConverter[];
1312
logger: Logger;
1413
};
1514

@@ -44,7 +43,7 @@ export const runCli = async (
4443
return ResultStatus.Succeeded;
4544
}
4645

47-
for (const configConverter of dependencies.convertConfigs) {
46+
for (const configConverter of dependencies.configConverters) {
4847
const result = await tryConvertConfig(configConverter, parsedArgv);
4948
if (result.status !== ResultStatus.Succeeded) {
5049
logErrorResult(result, dependencies);
@@ -57,7 +56,7 @@ export const runCli = async (
5756
};
5857

5958
const tryConvertConfig = async (
60-
configConverter: SansDependencies<typeof convertConfig>,
59+
configConverter: ConfigConverter,
6160
argv: Partial<TSLintToESLintSettings>,
6261
): Promise<ResultWithStatus> => {
6362
let result: ResultWithStatus;

src/conversion/configConverter.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { ResultWithStatus, TSLintToESLintSettings } from "../types";
2+
3+
/**
4+
* Standalone (sans dependencies) type for a converter to run in the CLI.
5+
*/
6+
export type ConfigConverter = (settings: TSLintToESLintSettings) => Promise<ResultWithStatus>;

src/conversion/convertConfig.test.ts renamed to src/conversion/convertLintConfig.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { ResultStatus, FailedResult } from "../types";
2-
import { convertConfig, ConvertConfigDependencies } from "./convertConfig";
2+
import { convertLintConfig, ConvertLintConfigDependencies } from "./convertLintConfig";
33

44
const stubSettings = {
55
config: "./eslintrc.js",
66
};
77

88
const createStubDependencies = (
9-
overrides: Partial<ConvertConfigDependencies> = {},
10-
): ConvertConfigDependencies => ({
9+
overrides: Partial<ConvertLintConfigDependencies> = {},
10+
): ConvertLintConfigDependencies => ({
1111
convertComments: jest.fn(),
1212
convertRules: jest.fn(),
1313
findOriginalConfigurations: jest.fn().mockResolvedValue({
@@ -40,7 +40,7 @@ const createStubOriginalConfigurationsData = () => ({
4040
},
4141
});
4242

43-
describe("convertConfig", () => {
43+
describe("convertLintConfig", () => {
4444
it("returns the failure result when finding the original configurations fails", async () => {
4545
// Arrange
4646
const findError: FailedResult = {
@@ -52,7 +52,7 @@ describe("convertConfig", () => {
5252
});
5353

5454
// Act
55-
const result = await convertConfig(dependencies, stubSettings);
55+
const result = await convertLintConfig(dependencies, stubSettings);
5656

5757
// Assert
5858
expect(result).toEqual(findError);
@@ -66,7 +66,7 @@ describe("convertConfig", () => {
6666
});
6767

6868
// Act
69-
const result = await convertConfig(dependencies, stubSettings);
69+
const result = await convertLintConfig(dependencies, stubSettings);
7070

7171
// Assert
7272
expect(result).toEqual({
@@ -86,7 +86,7 @@ describe("convertConfig", () => {
8686
});
8787

8888
// Act
89-
const result = await convertConfig(dependencies, stubSettings);
89+
const result = await convertLintConfig(dependencies, stubSettings);
9090

9191
// Assert
9292
expect(result).toEqual(convertCommentsResult);
@@ -102,7 +102,7 @@ describe("convertConfig", () => {
102102
});
103103

104104
// Act
105-
const result = await convertConfig(dependencies, stubSettings);
105+
const result = await convertLintConfig(dependencies, stubSettings);
106106

107107
// Assert
108108
expect(result).toEqual(convertCommentsResult);

src/conversion/convertConfig.ts renamed to src/conversion/convertLintConfig.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { reportCommentResults } from "../reporting/reportCommentResults";
99
import { convertRules } from "../rules/convertRules";
1010
import { ResultStatus, ResultWithStatus, TSLintToESLintSettings } from "../types";
1111

12-
export type ConvertConfigDependencies = {
12+
export type ConvertLintConfigDependencies = {
1313
convertComments: SansDependencies<typeof convertComments>;
1414
convertRules: SansDependencies<typeof convertRules>;
1515
findOriginalConfigurations: SansDependencies<typeof findOriginalConfigurations>;
@@ -24,8 +24,8 @@ export type ConvertConfigDependencies = {
2424
* Root-level driver to convert a TSLint configuration to ESLint.
2525
* @see `Architecture.md` for documentation.
2626
*/
27-
export const convertConfig = async (
28-
dependencies: ConvertConfigDependencies,
27+
export const convertLintConfig = async (
28+
dependencies: ConvertLintConfigDependencies,
2929
settings: TSLintToESLintSettings,
3030
): Promise<ResultWithStatus> => {
3131
// 1. Existing configurations are read

0 commit comments

Comments
 (0)