Skip to content

Commit c39d0cc

Browse files
committed
fix(plugin-eslint): truncate long issue messages
1 parent 241dc0f commit c39d0cc

File tree

6 files changed

+19
-4
lines changed

6 files changed

+19
-4
lines changed

packages/models/src/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export {
2525
} from './lib/implementation/constants';
2626
export {
2727
MAX_DESCRIPTION_LENGTH,
28+
MAX_ISSUE_MESSAGE_LENGTH,
2829
MAX_SLUG_LENGTH,
2930
MAX_TITLE_LENGTH,
3031
} from './lib/implementation/limits';

packages/models/src/lib/audit-issue.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { z } from 'zod';
2+
import { MAX_ISSUE_MESSAGE_LENGTH } from './implementation/limits';
23
import { filePathSchema, positiveIntSchema } from './implementation/schemas';
34

45
const sourceFileLocationSchema = z.object(
@@ -25,7 +26,9 @@ export const issueSeveritySchema = z.enum(['info', 'warning', 'error'], {
2526
export type IssueSeverity = z.infer<typeof issueSeveritySchema>;
2627
export const issueSchema = z.object(
2728
{
28-
message: z.string({ description: 'Descriptive error message' }).max(512),
29+
message: z
30+
.string({ description: 'Descriptive error message' })
31+
.max(MAX_ISSUE_MESSAGE_LENGTH),
2932
severity: issueSeveritySchema,
3033
source: sourceFileLocationSchema.optional(),
3134
},
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export const MAX_SLUG_LENGTH = 128;
22
export const MAX_TITLE_LENGTH = 256;
33
export const MAX_DESCRIPTION_LENGTH = 65_536;
4+
export const MAX_ISSUE_MESSAGE_LENGTH = 1024;

packages/plugin-eslint/src/lib/runner/transform.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
countOccurrences,
77
objectToEntries,
88
pluralizeToken,
9+
truncateIssueMessage,
910
} from '@code-pushup/utils';
1011
import { ruleIdToSlug } from '../meta/hash';
1112
import type { LinterOutput } from './types';
@@ -60,7 +61,7 @@ function toAudit(slug: string, issues: LintIssue[]): AuditOutput {
6061

6162
function convertIssue(issue: LintIssue): Issue {
6263
return {
63-
message: issue.message,
64+
message: truncateIssueMessage(issue.message),
6465
severity: convertSeverity(issue.severity),
6566
source: {
6667
file: issue.relativeFilePath,

packages/utils/src/index.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@ export {
2626
pluralizeToken,
2727
slugify,
2828
truncateDescription,
29+
truncateIssueMessage,
2930
truncateText,
3031
truncateTitle,
3132
} from './lib/formatting';
3233
export { getLatestCommit, git } from './lib/git';
34+
export { groupByStatus } from './lib/group-by-status';
3335
export {
3436
isPromiseFulfilledResult,
3537
isPromiseRejectedResult,
@@ -60,4 +62,3 @@ export {
6062
toUnixPath,
6163
} from './lib/transform';
6264
export { verboseUtils } from './lib/verbose-utils';
63-
export { groupByStatus } from './lib/group-by-status';

packages/utils/src/lib/formatting.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
import { MAX_DESCRIPTION_LENGTH, MAX_TITLE_LENGTH } from '@code-pushup/models';
1+
import {
2+
MAX_DESCRIPTION_LENGTH,
3+
MAX_ISSUE_MESSAGE_LENGTH,
4+
MAX_TITLE_LENGTH,
5+
} from '@code-pushup/models';
26

37
export function slugify(text: string): string {
48
return text
@@ -58,3 +62,7 @@ export function truncateTitle(text: string): string {
5862
export function truncateDescription(text: string): string {
5963
return truncateText(text, MAX_DESCRIPTION_LENGTH);
6064
}
65+
66+
export function truncateIssueMessage(text: string): string {
67+
return truncateText(text, MAX_ISSUE_MESSAGE_LENGTH);
68+
}

0 commit comments

Comments
 (0)