Skip to content

Commit 4165d5c

Browse files
author
Josh Goldberg
authored
Added tslint-eslint-plugin package as necessary to install commands (#409)
1 parent b0b955d commit 4165d5c

File tree

4 files changed

+29
-17
lines changed

4 files changed

+29
-17
lines changed

src/reporting/reportConversionResults.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,8 @@ describe("reportConversionResults", () => {
223223
` The "@typescript-eslint/tslint/config" section of .eslintrc.js configures eslint-plugin-tslint to run it in TSLint within ESLint.`,
224224
` Check ${logger.debugFileName} for details.`,
225225
``,
226-
`⚡ 3 packages are required for running with ESLint. ⚡`,
227-
` yarn add @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint --dev`,
226+
`⚡ 4 packages are required for running with ESLint. ⚡`,
227+
` yarn add @typescript-eslint/eslint-plugin @typescript-eslint/parser @typescript-eslint/tslint-eslint-plugin eslint --dev`,
228228
);
229229
expectEqualWrites(
230230
logger.info.write,
@@ -266,8 +266,8 @@ describe("reportConversionResults", () => {
266266
` The "@typescript-eslint/tslint/config" section of .eslintrc.js configures eslint-plugin-tslint to run them in TSLint within ESLint.`,
267267
` Check ${logger.debugFileName} for details.`,
268268
``,
269-
`⚡ 3 packages are required for running with ESLint. ⚡`,
270-
` yarn add @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint --dev`,
269+
`⚡ 4 packages are required for running with ESLint. ⚡`,
270+
` yarn add @typescript-eslint/eslint-plugin @typescript-eslint/parser @typescript-eslint/tslint-eslint-plugin eslint --dev`,
271271
);
272272
expectEqualWrites(
273273
logger.info.write,

src/reporting/reportConversionResults.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export const reportConversionResults = async (
4848
);
4949
}
5050

51-
logMissingPackages(ruleConversionResults.plugins, packageManager, dependencies.logger);
51+
logMissingPackages(ruleConversionResults, packageManager, dependencies.logger);
5252
};
5353

5454
type RuleWithNotices = {

src/reporting/reportOutputs.test.ts

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
1-
import { PackageManager } from "./packages/packageManagers";
21
import { createStubLogger, expectEqualWrites } from "../adapters/logger.stubs";
2+
import { createEmptyConversionResults } from "../conversion/conversionResults.stubs";
3+
import { PackageManager } from "./packages/packageManagers";
34
import { logMissingPackages } from "./reportOutputs";
45

56
const createStubDependencies = (packageManager: PackageManager) => ({
6-
packageManager,
7-
plugins: new Set<string>(),
87
logger: createStubLogger(),
8+
packageManager,
9+
ruleConversionResults: createEmptyConversionResults(),
910
});
1011

1112
describe("reportOutputs", () => {
1213
it("reports an npm command when the package manager is npm", () => {
1314
// Arrange
14-
const { logger, packageManager, plugins } = createStubDependencies(PackageManager.npm);
15+
createEmptyConversionResults();
16+
const { logger, packageManager, ruleConversionResults } = createStubDependencies(
17+
PackageManager.npm,
18+
);
1519

1620
// Act
17-
logMissingPackages(plugins, packageManager, logger);
21+
logMissingPackages(ruleConversionResults, packageManager, logger);
1822

1923
// Assert
2024
expectEqualWrites(
@@ -26,10 +30,12 @@ describe("reportOutputs", () => {
2630

2731
it("reports a pnpm command when the package manager is pnpm", () => {
2832
// Arrange
29-
const { logger, packageManager, plugins } = createStubDependencies(PackageManager.pnpm);
33+
const { logger, packageManager, ruleConversionResults } = createStubDependencies(
34+
PackageManager.pnpm,
35+
);
3036

3137
// Act
32-
logMissingPackages(plugins, packageManager, logger);
38+
logMissingPackages(ruleConversionResults, packageManager, logger);
3339

3440
// Assert
3541
expectEqualWrites(
@@ -41,10 +47,12 @@ describe("reportOutputs", () => {
4147

4248
it("reports a Yarn command when the package manager is Yarn", () => {
4349
// Arrange
44-
const { logger, packageManager, plugins } = createStubDependencies(PackageManager.Yarn);
50+
const { logger, packageManager, ruleConversionResults } = createStubDependencies(
51+
PackageManager.Yarn,
52+
);
4553

4654
// Act
47-
logMissingPackages(plugins, packageManager, logger);
55+
logMissingPackages(ruleConversionResults, packageManager, logger);
4856

4957
// Assert
5058
expectEqualWrites(

src/reporting/reportOutputs.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { EditorSetting } from "../editorSettings/types";
66
import { ErrorSummary } from "../errors/errorSummary";
77
import { ESLintRuleOptions } from "../rules/types";
88
import { PackageManager, installationMessages } from "./packages/packageManagers";
9+
import { RuleConversionResults } from "../rules/convertRules";
910

1011
export type EditorSettingEntry = Pick<EditorSetting, "editorSettingName">;
1112

@@ -69,16 +70,19 @@ export const logMissingConversionTarget = <T>(
6970
};
7071

7172
export const logMissingPackages = (
72-
plugins: Set<string>,
73+
ruleConversionResults: Pick<RuleConversionResults, "missing" | "plugins">,
7374
packageManager: PackageManager,
7475
logger: Logger,
7576
) => {
7677
const packageNames = [
7778
"@typescript-eslint/eslint-plugin",
7879
"@typescript-eslint/parser",
80+
ruleConversionResults.missing.length !== 0 && "@typescript-eslint/tslint-eslint-plugin",
7981
"eslint",
80-
...Array.from(plugins),
81-
].sort();
82+
...Array.from(ruleConversionResults.plugins),
83+
]
84+
.filter(Boolean)
85+
.sort();
8286

8387
logger.stdout.write(chalk.cyanBright(`${EOL}${packageNames.length}`));
8488
logger.stdout.write(chalk.cyan(" packages are required for running with ESLint."));

0 commit comments

Comments
 (0)