Skip to content

Commit a8b3f5c

Browse files
author
Josh Goldberg
authored
Improved spacing around reporting line groups (#305)
1 parent dd5138c commit a8b3f5c

File tree

6 files changed

+86
-69
lines changed

6 files changed

+86
-69
lines changed

src/cli/runCli.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ describe("runCli", () => {
6868
expectEqualWrites(
6969
dependencies.logger.stderr.write,
7070
"❌ Could not start tslint-to-eslint: ❌",
71-
complaint,
71+
` ${complaint}`,
7272
);
7373
});
7474

@@ -93,7 +93,7 @@ describe("runCli", () => {
9393
expectEqualWrites(
9494
dependencies.logger.stderr.write,
9595
"❌ 1 error running tslint-to-eslint: ❌",
96-
`${error.stack}`,
96+
` ${error.stack}`,
9797
);
9898
});
9999

@@ -121,8 +121,8 @@ describe("runCli", () => {
121121
expectEqualWrites(
122122
dependencies.logger.stderr.write,
123123
"❌ 2 errors running tslint-to-eslint: ❌",
124-
`${errors[0].stack}`,
125-
`${errors[1].stack}`,
124+
` ${errors[0].stack}`,
125+
` ${errors[1].stack}`,
126126
);
127127
});
128128

src/cli/runCli.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,18 +79,18 @@ const logErrorResult = (result: ResultWithStatus, dependencies: RunCliDependenci
7979
dependencies.logger.stderr.write(chalk.red("Could not start tslint-to-eslint:"));
8080
dependencies.logger.stderr.write(chalk.redBright(` ❌${EOL}`));
8181
for (const complaint of result.complaints) {
82-
dependencies.logger.stderr.write(chalk.yellowBright(`${complaint}${EOL}`));
82+
dependencies.logger.stderr.write(chalk.yellowBright(` ${complaint}${EOL}`));
8383
}
8484
break;
8585

8686
case ResultStatus.Failed:
8787
dependencies.logger.stderr.write(chalk.redBright("❌ "));
88-
dependencies.logger.stderr.write(chalk.yellow(`${result.errors.length} error`));
89-
dependencies.logger.stderr.write(chalk.yellow(result.errors.length === 1 ? "" : "s"));
90-
dependencies.logger.stderr.write(chalk.yellow(" running tslint-to-eslint:"));
88+
dependencies.logger.stderr.write(chalk.red(`${result.errors.length} error`));
89+
dependencies.logger.stderr.write(chalk.red(result.errors.length === 1 ? "" : "s"));
90+
dependencies.logger.stderr.write(chalk.red(" running tslint-to-eslint:"));
9191
dependencies.logger.stderr.write(chalk.redBright(` ❌${EOL}`));
9292
for (const error of result.errors) {
93-
dependencies.logger.stderr.write(chalk.yellowBright(`${error.stack}${EOL}`));
93+
dependencies.logger.stderr.write(chalk.gray(` ${error.stack}${EOL}`));
9494
}
9595
break;
9696
}

src/reporting/reportConversionResults.test.ts

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@ describe("reportConversionResults", () => {
5757
// Assert
5858
expectEqualWrites(
5959
logger.stdout.write,
60-
`✨ 1 rule replaced with its ESLint equivalent. ✨${EOL}` +
61-
`📢 1 ESLint rule behaves differently from their TSLint counterparts: 📢${EOL}` +
62-
`* tslint-rule-one:${EOL}` +
63-
` - 1${EOL}` +
64-
` - 2${EOL}`,
60+
`✨ 1 rule replaced with its ESLint equivalent. ✨${EOL}`,
61+
`❗ 1 ESLint rule behaves differently from its TSLint counterpart ❗`,
62+
` * tslint-rule-one:`,
63+
` - 1`,
64+
` - 2`,
6565
);
6666
});
6767

@@ -98,14 +98,14 @@ describe("reportConversionResults", () => {
9898
// Assert
9999
expectEqualWrites(
100100
logger.stdout.write,
101-
`✨ 2 rules replaced with their ESLint equivalents. ✨${EOL}` +
102-
`📢 2 ESLint rules behave differently from their TSLint counterparts: 📢${EOL}` +
103-
`* tslint-rule-one:${EOL}` +
104-
` - 1${EOL}` +
105-
` - 2${EOL}` +
106-
`* tslint-rule-two:${EOL}` +
107-
` - 3${EOL}` +
108-
` - 4${EOL}`,
101+
`✨ 2 rules replaced with their ESLint equivalents. ✨${EOL}`,
102+
`❗ 2 ESLint rules behave differently from their TSLint counterparts ❗`,
103+
` * tslint-rule-one:`,
104+
` - 1`,
105+
` - 2`,
106+
` * tslint-rule-two:`,
107+
` - 3`,
108+
` - 4`,
109109
);
110110
});
111111

@@ -123,8 +123,8 @@ describe("reportConversionResults", () => {
123123
// Assert
124124
expectEqualWrites(
125125
logger.stderr.write,
126-
"💀 1 error thrown. 💀",
127-
`Check ${logger.debugFileName} for details.`,
126+
" 1 error thrown. ",
127+
` Check ${logger.debugFileName} for details.`,
128128
);
129129
});
130130

@@ -142,8 +142,8 @@ describe("reportConversionResults", () => {
142142
// Assert
143143
expectEqualWrites(
144144
logger.stderr.write,
145-
"💀 2 errors thrown. 💀",
146-
`Check ${logger.debugFileName} for details.`,
145+
" 2 errors thrown. ",
146+
` Check ${logger.debugFileName} for details.`,
147147
);
148148
});
149149

@@ -167,7 +167,8 @@ describe("reportConversionResults", () => {
167167
// Assert
168168
expectEqualWrites(
169169
logger.stdout.write,
170-
"👀 1 rule does not yet have an ESLint equivalent (see generated log file); defaulting to eslint-plugin-tslint for these rules. 👀",
170+
"❓ 1 rule does not yet have an ESLint equivalent ❓",
171+
` See generated log file; defaulting to eslint-plugin-tslint for it.`,
171172
);
172173
expectEqualWrites(
173174
logger.info.write,
@@ -200,7 +201,8 @@ describe("reportConversionResults", () => {
200201
// Assert
201202
expectEqualWrites(
202203
logger.stdout.write,
203-
"👀 2 rules do not yet have ESLint equivalents (see generated log file); defaulting to eslint-plugin-tslint for these rules. 👀",
204+
"❓ 2 rules do not yet have ESLint equivalents ❓",
205+
` See generated log file; defaulting to eslint-plugin-tslint for these rules.`,
204206
);
205207
expectEqualWrites(
206208
logger.info.write,
@@ -224,7 +226,7 @@ describe("reportConversionResults", () => {
224226
expectEqualWrites(
225227
logger.stdout.write,
226228
"⚡ 1 package is required for new ESLint rules. ⚡",
227-
"\tplugin-one",
229+
" plugin-one",
228230
);
229231
});
230232

@@ -243,8 +245,8 @@ describe("reportConversionResults", () => {
243245
expectEqualWrites(
244246
logger.stdout.write,
245247
"⚡ 2 packages are required for new ESLint rules. ⚡",
246-
"\tplugin-one",
247-
"\tplugin-two",
248+
" plugin-one",
249+
" plugin-two",
248250
);
249251
});
250252
});

src/reporting/reportConversionResults.ts

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,17 @@ export const reportConversionResults = (
2626
}
2727

2828
if (ruleConversionResults.missing.length !== 0) {
29-
const missingSettingOutputMapping = (setting: TSLintRuleOptions) =>
30-
`${setting.ruleName} does not yet have an ESLint equivalent.${EOL}`;
31-
const additionalWarnings = [`defaulting to eslint-plugin-tslint for these rules`];
3229
logMissingConversionTarget(
3330
"rule",
34-
missingSettingOutputMapping,
31+
(setting: TSLintRuleOptions) =>
32+
`${setting.ruleName} does not yet have an ESLint equivalent.${EOL}`,
3533
ruleConversionResults.missing,
3634
dependencies.logger,
37-
additionalWarnings,
35+
[
36+
ruleConversionResults.missing.length === 1
37+
? "defaulting to eslint-plugin-tslint for it."
38+
: "defaulting to eslint-plugin-tslint for these rules.",
39+
],
3840
);
3941
}
4042

@@ -54,19 +56,27 @@ const logNotices = (converted: Map<string, ESLintRuleOptions>, logger: Logger) =
5456
) as RuleWithNotices[];
5557

5658
if (rulesWithNotices.length !== 0) {
57-
logger.stdout.write(chalk.yellowBright(`📢 ${rulesWithNotices.length} ESLint`));
58-
logger.stdout.write(
59-
chalk.yellowBright(rulesWithNotices.length === 1 ? ` rule behaves` : ` rules behave`),
60-
);
61-
logger.stdout.write(
62-
chalk.yellowBright(` differently from their TSLint counterparts: 📢${EOL}`),
63-
);
59+
logger.stdout.write(chalk.yellowBright(`${EOL}${rulesWithNotices.length} ESLint`));
60+
61+
if (rulesWithNotices.length === 1) {
62+
logger.stdout.write(
63+
chalk.yellowBright(
64+
` rule behaves differently from its TSLint counterpart ❗${EOL}`,
65+
),
66+
);
67+
} else {
68+
logger.stdout.write(
69+
chalk.yellowBright(
70+
` rules behave differently from their TSLint counterparts ❗${EOL}`,
71+
),
72+
);
73+
}
6474

6575
for (const rule of rulesWithNotices) {
66-
logger.stdout.write(chalk.yellow(`* ${rule.ruleName}:${EOL}`));
76+
logger.stdout.write(chalk.yellow(` * ${rule.ruleName}:${EOL}`));
6777

6878
for (const notice of rule.notices) {
69-
logger.stdout.write(chalk.yellow(` - ${notice}${EOL}`));
79+
logger.stdout.write(chalk.yellow(` - ${notice}${EOL}`));
7080
}
7181
}
7282
}

src/reporting/reportEditorSettingConversionResults.test.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ describe("reportEditorSettingConversionResults", () => {
2828
// Assert
2929
expectEqualWrites(
3030
logger.stdout.write,
31-
`✨ 1 editor setting replaced with its ESLint equivalent. ✨${EOL}`,
31+
`${EOL}✨ 1 editor setting replaced with its ESLint equivalent. ✨${EOL}`,
3232
);
3333
});
3434

@@ -61,7 +61,7 @@ describe("reportEditorSettingConversionResults", () => {
6161
// Assert
6262
expectEqualWrites(
6363
logger.stdout.write,
64-
`✨ 2 editor settings replaced with their ESLint equivalents. ✨${EOL}`,
64+
`${EOL}✨ 2 editor settings replaced with their ESLint equivalents. ✨${EOL}`,
6565
);
6666
});
6767

@@ -79,8 +79,8 @@ describe("reportEditorSettingConversionResults", () => {
7979
// Assert
8080
expectEqualWrites(
8181
logger.stderr.write,
82-
"💀 1 error thrown. 💀",
83-
`Check ${logger.debugFileName} for details.`,
82+
`❌ 1 error thrown. ❌`,
83+
` Check ${logger.debugFileName} for details.`,
8484
);
8585
});
8686

@@ -98,8 +98,8 @@ describe("reportEditorSettingConversionResults", () => {
9898
// Assert
9999
expectEqualWrites(
100100
logger.stderr.write,
101-
"💀 2 errors thrown. 💀",
102-
`Check ${logger.debugFileName} for details.`,
101+
`❌ 2 errors thrown. ❌`,
102+
` Check ${logger.debugFileName} for details.`,
103103
);
104104
});
105105

@@ -121,7 +121,8 @@ describe("reportEditorSettingConversionResults", () => {
121121
// Assert
122122
expectEqualWrites(
123123
logger.stdout.write,
124-
"👀 1 editor setting does not yet have an ESLint equivalent (see generated log file). 👀",
124+
`❓ 1 editor setting does not yet have an ESLint equivalent ❓`,
125+
` See generated log file.`,
125126
);
126127
expectEqualWrites(
127128
logger.info.write,
@@ -150,7 +151,8 @@ describe("reportEditorSettingConversionResults", () => {
150151
// Assert
151152
expectEqualWrites(
152153
logger.stdout.write,
153-
"👀 2 editor settings do not yet have ESLint equivalents (see generated log file). 👀",
154+
`❓ 2 editor settings do not yet have ESLint equivalents ❓`,
155+
` See generated log file.`,
154156
);
155157
expectEqualWrites(
156158
logger.info.write,

src/reporting/reportOutputs.ts

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,12 @@ export const logSuccessfulConversions = (
2323
};
2424

2525
export const logFailedConversions = (failed: ErrorSummary[], logger: Logger) => {
26-
logger.stderr.write(`${chalk.redBright(`💀 ${failed.length}`)}`);
26+
logger.stderr.write(`${chalk.redBright(`${EOL} ${failed.length}`)}`);
2727
logger.stderr.write(chalk.red(` error${failed.length === 1 ? "" : "s"}`));
2828
logger.stderr.write(chalk.red(" thrown."));
29-
logger.stderr.write(chalk.redBright(` 💀${EOL}`));
30-
29+
logger.stderr.write(chalk.redBright(` ❌${EOL}`));
3130
logger.info.write(failed.map(failed => failed.getSummary()).join("\n\n") + "\n\n");
32-
33-
logger.stderr.write(chalk.gray(`Check ${logger.debugFileName} for details.${EOL}`));
31+
logger.stderr.write(chalk.gray(` Check ${logger.debugFileName} for details.${EOL}`));
3432
};
3533

3634
export const logMissingConversionTarget = <T>(
@@ -40,39 +38,44 @@ export const logMissingConversionTarget = <T>(
4038
logger: Logger,
4139
additionalWarnings: string[] = [],
4240
) => {
43-
logger.stdout.write(chalk.yellowBright(`️👀 ${missing.length}`));
41+
logger.stdout.write(chalk.yellowBright(`️${EOL} ${missing.length}`));
4442
logger.stdout.write(
4543
chalk.yellow(
4644
missing.length === 1
4745
? ` ${conversionTypeName} does not yet have an ESLint equivalent`
4846
: ` ${conversionTypeName}s do not yet have ESLint equivalents`,
4947
),
5048
);
51-
logger.stdout.write(chalk.yellow(` (see generated log file)`));
49+
logger.stdout.write(chalk.yellowBright(` ❓${EOL}`));
50+
logger.stdout.write(chalk.yellow(` See generated log file`));
5251

5352
if (additionalWarnings.length > 0) {
5453
logger.stdout.write(chalk.yellow("; "));
55-
}
56-
for (const warning of additionalWarnings) {
57-
logger.stdout.write(chalk.yellow(warning));
58-
}
59-
logger.stdout.write(chalk.yellow("."));
6054

61-
logger.stdout.write(chalk.yellowBright(` 👀${EOL}`));
55+
for (const warning of additionalWarnings) {
56+
logger.stdout.write(chalk.yellow(warning));
57+
}
58+
} else {
59+
logger.stdout.write(chalk.yellow("."));
60+
}
6261

63-
logger.info.write(missing.map(conversion => missingOutputMapping(conversion)).join(""));
62+
logger.info.write(
63+
chalk.yellow(missing.map(conversion => missingOutputMapping(conversion)).join("")),
64+
);
65+
logger.stdout.write(chalk.yellow(EOL));
6466
};
6567

6668
export const logMissingPlugins = (plugins: Set<string>, logger: Logger) => {
67-
logger.stdout.write(chalk.cyanBright(`⚡ ${plugins.size}`));
69+
logger.stdout.write(chalk.cyanBright(`${EOL}${plugins.size}`));
6870
logger.stdout.write(chalk.cyan(" package"));
6971
logger.stdout.write(chalk.cyan(plugins.size === 1 ? " is" : "s are"));
7072
logger.stdout.write(chalk.cyan(` required for new ESLint rules.`));
7173
logger.stdout.write(chalk.cyanBright(` ⚡${EOL}`));
7274

7375
logger.stdout.write(
7476
Array.from(plugins)
75-
.map(pluginName => `\t${chalk.cyanBright(pluginName)}${EOL}`)
77+
.map(pluginName => ` ${chalk.cyanBright(pluginName)}${EOL}`)
7678
.join(""),
7779
);
80+
logger.stdout.write(EOL);
7881
};

0 commit comments

Comments
 (0)