From 8706ebee8f726fcfa4515e75acfedda2918d7874 Mon Sep 17 00:00:00 2001 From: jaymarvelz Date: Fri, 17 Oct 2025 00:34:42 +0300 Subject: [PATCH] fix: require `fix` in suggestion objects --- packages/core/src/types.ts | 6 +++--- packages/core/tests/types/types.test.ts | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 8a042fffb..3ed92b4a5 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -487,7 +487,7 @@ interface ViolationReportBase { /** * The data to insert into the message. */ - data?: Record | undefined; + data?: Record | undefined; /** * The fix to be applied for the violation. @@ -521,12 +521,12 @@ interface SuggestedEditBase { /** * The data to insert into the message. */ - data?: Record | undefined; + data?: Record | undefined; /** * The fix to be applied for the suggestion. */ - fix?: RuleFixer | null | undefined; + fix: RuleFixer; } type SuggestionMessage = { desc: string } | { messageId: string }; diff --git a/packages/core/tests/types/types.test.ts b/packages/core/tests/types/types.test.ts index eb1122ace..14935c2fe 100644 --- a/packages/core/tests/types/types.test.ts +++ b/packages/core/tests/types/types.test.ts @@ -298,6 +298,7 @@ const testRule: RuleDefinition<{ start: { line: node.start, column: 1 }, end: { line: node.start + 1, column: Infinity }, }, + data: undefined, fix(fixer: RuleTextEditor): RuleTextEdit { return fixer.replaceText( node, @@ -318,6 +319,12 @@ const testRule: RuleDefinition<{ suggest: [ { messageId: "Bar", + data: { + foo: "foo", + bar: 1, + baz: true, + }, + // @ts-expect-error -- 'fix' is required in suggestion objects fix: null, }, ], @@ -328,6 +335,11 @@ const testRule: RuleDefinition<{ context.report({ message: "This baz is foobar", loc: { line: node.start, column: 1 }, + data: { + foo: "foo", + bar: 1, + baz: true, + }, fix: null, suggest: null, });