From cba3cd5203ce093942d7887896103a59eac41d4b Mon Sep 17 00:00:00 2001 From: Hellgren Heikki Date: Fri, 10 Oct 2025 10:36:26 +0300 Subject: [PATCH] chore(eslint): add same plugin id suggestion Signed-off-by: Hellgren Heikki --- .../eslint-plugin/rules/no-mixed-plugin-imports.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/eslint-plugin/rules/no-mixed-plugin-imports.js b/packages/eslint-plugin/rules/no-mixed-plugin-imports.js index cf8b3bde0b..9f00d38014 100644 --- a/packages/eslint-plugin/rules/no-mixed-plugin-imports.js +++ b/packages/eslint-plugin/rules/no-mixed-plugin-imports.js @@ -64,6 +64,7 @@ module.exports = { messages: { forbidden: '{{sourcePackage}} ({{sourceRole}}) uses forbidden import from {{targetPackage}} ({{targetRole}}).', + useSamePluginId: `Import of {{targetPackage}} ({{targetRole}}) from {{sourceRole}} is forbidden unless you are overriding the plugin, in which case the \`backstage.pluginId\` in {{sourcePackage}}/package.json must be the same as in {{targetPackage}}`, useReactPlugin: 'Use web library {{targetPackage}}-react or common library instead.', useNodePlugin: @@ -178,6 +179,19 @@ module.exports = { (sourceRole === 'frontend-plugin' || sourceRole === 'web-library') && targetRole === 'frontend-plugin' ) { + suggest.push({ + messageId: 'useSamePluginId', + data: { + targetPackage: targetName, + targetRole: targetRole, + sourcePackage: sourceName, + sourceRole: sourceRole, + }, + /** @param {import('eslint').Rule.RuleFixer} _fixer */ + fix(_fixer) { + // Not a fixable case, just give a suggestion to change plugin id + }, + }); suggest.push({ messageId: 'useReactPlugin', data: {