From e47bea45e25fbfb639326d744e1a826713421ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Chalk?= Date: Tue, 17 Dec 2024 13:06:30 +0100 Subject: [PATCH] fix(plugin-eslint): parse rule names containing slashes correctly --- packages/plugin-eslint/src/lib/meta/parse.ts | 4 +++- packages/plugin-eslint/src/lib/meta/parse.unit.test.ts | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/plugin-eslint/src/lib/meta/parse.ts b/packages/plugin-eslint/src/lib/meta/parse.ts index b3debe9c4..47d1ca6cb 100644 --- a/packages/plugin-eslint/src/lib/meta/parse.ts +++ b/packages/plugin-eslint/src/lib/meta/parse.ts @@ -8,7 +8,9 @@ export type RuleData = { }; export function parseRuleId(ruleId: string): { plugin?: string; name: string } { - const i = ruleId.lastIndexOf('/'); + const i = ruleId.startsWith('@') + ? ruleId.lastIndexOf('/') + : ruleId.indexOf('/'); if (i === -1) { return { name: ruleId }; } diff --git a/packages/plugin-eslint/src/lib/meta/parse.unit.test.ts b/packages/plugin-eslint/src/lib/meta/parse.unit.test.ts index c1b00da9b..2781d64a9 100644 --- a/packages/plugin-eslint/src/lib/meta/parse.unit.test.ts +++ b/packages/plugin-eslint/src/lib/meta/parse.unit.test.ts @@ -32,6 +32,11 @@ describe('parseRuleId', () => { plugin: '@angular-eslint/template', name: 'no-negated-async', }, + { + ruleId: 'n/prefer-promises/fs', + plugin: 'n', + name: 'prefer-promises/fs', + }, ])('$ruleId => name: $name, plugin: $plugin', ({ ruleId, name, plugin }) => { expect(parseRuleId(ruleId)).toEqual({ name, plugin }); });