@n8n/eslint-plugin-community-nodes
ESLint plugin for linting n8n community node packages to ensure consistency and best practices.
Install
npm install --save-dev eslint @n8n/eslint-plugin-community-nodes**Requires ESLint >=9 and flat config
Usage
See the ESLint docs for more information about extending config files.
Recommended config
This plugin exports a recommended config that enforces good practices.
import { n8nCommunityNodesPlugin } from '@n8n/eslint-plugin-community-nodes';
export default [
// …
n8nCommunityNodesPlugin.configs.recommended,
{
rules: {
'@n8n/community-nodes/node-usable-as-tool': 'warn',
},
},
];Rules
💼 Configurations enabled in.\
⚠️ Configurations set to warn in.\
✅ Set in the recommended configuration.\
☑️ Set in the recommendedWithoutN8nCloudSupport configuration.\
🔧 Automatically fixable by the --fix CLI option.\
💡 Manually fixable by editor suggestions.
| Name | Description | 💼 | ⚠️ | 🔧 | 💡 |
|---|---|---|---|---|---|
| credential-documentation-url | Enforce valid credential documentationUrl format (URL or camelCase slug) | ✅ ☑️ | | | ||
| credential-password-field | Ensure credential fields with sensitive names have typeOptions.password = true | ✅ ☑️ | | 🔧 | ||
| credential-test-required | Ensure credentials have a credential test | ✅ ☑️ | | | 💡 | |
| icon-validation | Validate node and credential icon files exist, are SVG format, and light/dark icons are different | ✅ ☑️ | | | 💡 | |
| no-credential-reuse | Prevent credential re-use security issues by ensuring nodes only reference credentials from the same package | ✅ ☑️ | | | 💡 | |
| no-deprecated-workflow-functions | Disallow usage of deprecated functions and types from n8n-workflow package | ✅ ☑️ | | | 💡 | |
| no-restricted-globals | Disallow usage of restricted global variables in community nodes. | ✅ | | | ||
| no-restricted-imports | Disallow usage of restricted imports in community nodes. | ✅ | | | ||
| node-usable-as-tool | Ensure node classes have usableAsTool property | ✅ ☑️ | | 🔧 | ||
| package-name-convention | Enforce correct package naming convention for n8n community nodes | ✅ ☑️ | | | 💡 | |
| resource-operation-pattern | Enforce proper resource/operation pattern for better UX in n8n nodes | | ✅ ☑️ |