@atom8n/eslint-plugin-community-nodes
v0.9.3
Published
ESLint plugin for linting n8n community node packages to ensure consistency and best practices.
Readme
@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 | | ✅ ☑️ | | |
