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: {