Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

eslint-plugin-n8n-nodes-base

Package Overview
Dependencies
Maintainers
1
Versions
88
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-n8n-nodes-base

[![NPM version](https://img.shields.io/npm/v/eslint-plugin-n8n-nodes-base.svg?style=flat)](https://npmjs.org/package/eslint-plugin-n8n-nodes-base) [![Tests](https://github.com/ivov/eslint-plugin-n8n-nodes-base/actions/workflows/checks.yml/badge.svg)](http

  • 1.1.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
18K
increased by2.16%
Maintainers
1
Weekly downloads
 
Created
Source

eslint-plugin-n8n-nodes-base

NPM version Tests

ESLint plugin for linting n8n nodes.

Usage

Install this plugin:

npm i -D eslint-plugin-n8n-nodes-base

Create an ESLint configuration file and decide how to set up the plugin.

Specify only plugin

If you specify only the plugin, all rules in the plugin are disabled by default and must be individually enabled:

{
  plugins: [ "eslint-plugin-n8n-nodes-base" ],
  rules: {
    "n8n-nodes-base/node-param-array-type-assertion": "warning",
    "n8n-nodes-base/node-param-default-wrong-for-collection": "error"
  }
}

Specify plugin and config

If you specify both the plugin and a config, all the rules in the config (theme-based ruleset) are enabled by default and must be individually disabled:

{
  plugins: [ "eslint-plugin-n8n-nodes-base" ],
  extends: [ "plugin:n8n-nodes-base/nodes" ],
  rules: {
    "n8n-nodes-base/node-param-array-type-assertion": "off",
    "n8n-nodes-base/node-param-default-wrong-for-collection": "off"
  }
}
ConfigContent
nodesRuleset for n8n nodes
credentialsRuleset for n8n credentials
communityRuleset for package.json in n8n community package

Ruleset

Name                                        DescriptionAutofixable
community-package-json-author-email-still-defaultThe author.email value in the package.json of a community package must be different from the default value jan@n8n.io.No
community-package-json-author-missingThe author key must be present in the package.json of a community package.No
community-package-json-author-name-missingThe author.name key must be present in the package.json of a community package.No
community-package-json-author-name-still-defaultThe author.name value in the package.json of a community package must be different from the default value Jan Oberhauser.No
community-package-json-description-missingThe description key must be present in the package.json of a community package.No
community-package-json-description-still-defaultThe description value in the package.json of a community package must be different from the default value Example starter module for custom n8n nodes..No
community-package-json-keywords-missingThe keywords key must be present in the package.json of a community package.No
community-package-json-keywords-without-official-tagThe keywords value in the package.json of a community package must be an array containing the value 'n8n-community-node-package'.No
community-package-json-license-missingThe description key must be present in the package.json of a community package.No
community-package-json-license-not-defaultThe license key in the package.json of a community package must be the default value MIT.No
community-package-json-n8n-missingThe n8n key must be present in the package.json of a community package.No
community-package-json-n8n-nodes-emptyThe n8n.nodes value in the package.json of a community package must contain at least one filepath.No
community-package-json-n8n-nodes-missingThe n8n.nodes key must be present in the package.json of a community package.No
community-package-json-name-missingThe name key must be present in the package.json of a community package.No
community-package-json-name-still-defaultThe name key in the package.json of a community package must be different from the default value n8n-nodes-starter.No
community-package-json-repository-url-still-defaultThe repository.url value in the package.json of a community package must be different from the default value git+https://github.com/n8n-io/n8n-nodes-starter.git.No
community-package-json-version-missingThe version key must be present in the package.json of a community package.No
cred-class-field-display-name-miscaseddisplayName field in credential class must be title cased.Yes
cred-class-field-display-name-missing-apidisplayName field in credential class must be end with API.Yes
cred-class-field-display-name-missing-oauth2displayName field in credential class must mention OAuth2 if the credential is OAuth2.No
cred-class-field-documentation-url-miscaseddocumentationUrl field in credential class must be camel cased.Yes
cred-class-field-documentation-url-missingdocumentationUrl field in credential class must be present.Yes
cred-class-field-name-missing-oauth2name field in credential class must mention OAuth2 if the credential is OAuth2.No
cred-class-field-name-unsuffixedname field in credential class must be suffixed with -Api.Yes
cred-class-field-name-uppercase-first-charFirst char in name in credential class must be lowercase.Yes
cred-class-field-placeholder-url-missing-egplaceholder for a URL in credential class must be prepended with e.g..Yes
cred-class-field-properties-assertionIn a credential class, the field properties must be typed 'INodeProperties' and individual properties must have no assertions.Yes
cred-class-name-missing-oauth2-suffixCredential class name must mention OAuth2 if the credential is OAuth2.No
cred-class-name-unsuffixedCredential class name must be suffixed with -Api.Yes
filesystem-wrong-cred-filenameCredentials filename must match credentials class name, excluding the filename suffix. Example: TestApi.credentials.ts matches TestApi in class TestApi implements ICredentialType.No
filesystem-wrong-node-dirnameNode dirname must match node filename, excluding the filename suffix. Example: Test node dirname matches Test section of Test.node.ts node filename.No
filesystem-wrong-node-filenameNode filename must match name in node class description, excluding the filename suffix. Example: Test.node.ts matches Test in property Test.description.name.No
filesystem-wrong-resource-description-filenameResource description file must use singular form. Example: UserDescription.ts, not UsersDescription.ts.No
node-class-description-credentials-name-unsuffixedname under credentials in node class description must be suffixed with -Api.Yes
node-class-description-display-name-unsuffixed-trigger-nodedisplayName in node class description for trigger node must be suffixed with -Trigger.Yes
node-class-description-empty-stringdescription in node class description must be filled out.No
node-class-description-icon-not-svgicon in node class description should be an SVG icon.No
node-class-description-inputs-wrong-regular-nodeThe number of inputs in node class description for regular node should be one, or two for Merge node.Yes
node-class-description-inputs-wrong-trigger-nodeThe number of inputs in node class description for trigger node should be zero.Yes
node-class-description-missing-subtitlesubtitle in node class description must be present.Yes
node-class-description-name-unsuffixed-trigger-nodename in node class description for trigger node must be suffixed with -Trigger.Yes
node-class-description-outputs-wrongThe number of outputs in node class description for any node must be one, or two for If node, or four for Switch node.Yes
node-execute-block-double-assertion-for-itemsIn the execute() method there is no need to double assert the type of items.length.Yes
node-execute-block-missing-continue-on-failThe execute() method in a node must implement continueOnFail in a try-catch block.No
node-execute-block-wrong-error-thrownThe execute() method in a node may only throw NodeApiError for failed network requests and NodeOperationError for internal errors, not the built-in Error.No
node-param-array-type-assertionArray of node parameters must be typed, not type-asserted.Yes
node-param-collection-type-unsorted-itemsItems in collection-type node parameter must be alphabetized by name if five or more than five.Yes
node-param-color-type-unusedcolor-type must be used for color-related node parameter.Yes
node-param-default-missingdefault must be present in a node parameter.Yes
node-param-default-wrong-for-booleandefault for boolean-type node parameter must be a boolean.Yes
node-param-default-wrong-for-collectiondefault for collection-type node parameter must be an object.Yes
node-param-default-wrong-for-fixed-collectiondefault for fixed-collection-type node parameter must be an object.Yes
node-param-default-wrong-for-limitdefault for a Limit node parameter must be 50.Yes
node-param-default-wrong-for-multi-optionsdefault for a multi-options-type node parameter must be an array.Yes
node-param-default-wrong-for-numberdefault for a number-type node parameter must be a number, except for a number-type ID parameter.Yes
node-param-default-wrong-for-optionsdefault for an options-type node parameter must be one of the options.Yes
node-param-default-wrong-for-simplifydefault for a Simplify node parameter must be true.Yes
node-param-default-wrong-for-stringdefault for a string-type node parameter must be a string, unless typeOptions.multipleValues is set to true.Yes
node-param-description-boolean-without-whetherdescription in a boolean node parameter must start with Whether.No
node-param-description-comma-separated-hyphenThe string comma-separated in description must be hyphenated. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-empty-stringdescription in node parameter or in option in options-type and multi-options-type param must be filled out or removed. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-excess-final-perioddescription in node parameter must end without a final period if a single-sentence description. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-excess-inner-whitespacedescription in node parameter must not contain excess inner whitespace. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-identical-to-display-namedescription in node parameter must not be identical to displayName.Yes
node-param-description-line-break-html-tagdescription in node parameter must not contain an HTML line break. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-lowercase-first-charFirst char in description in node parameter must be uppercase. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-miscased-idID in description in node parameter must be fully uppercased. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-miscased-jsonJSON in description in node parameter must be fully uppercased. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-miscased-urlURL in description in node parameter must be fully uppercased. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-missing-final-perioddescription in node parameter must end with a final period if a multiple-sentence description, unless ending with </code>. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-missing-for-ignore-ssl-issuesdescription for Ignore SSL node parameter must be present.Yes
node-param-description-missing-for-return-alldescription for Return All node parameter must be present.Yes
node-param-description-missing-for-simplifydescription for Simplify node parameter must be present.Yes
node-param-description-missing-from-dynamic-multi-optionsdescription in dynamic-multi-options-type node parameter must be present.Yes
node-param-description-missing-from-dynamic-optionsdescription in dynamic-options-type node parameter must be present.Yes
node-param-description-missing-from-limitdescription in Limit node parameter must be present.Yes
node-param-description-unencoded-angle-bracketsdescription in node parameter must encode angle brackets for them to render. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-unneeded-backticksdescription in node parameter must not use unneeded backticks. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-untrimmeddescription in node parameter must be trimmed. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-url-missing-protocoldescription in node parameter must include protocol when containing a URL. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-weakdescription in node parameter must be either useful or omitted. Applicable by extension to description in option in options-type and multi-options-type node parameter.Yes
node-param-description-wrong-for-dynamic-multi-optionsdescription in dynamic-multi-options-type node parameter must be Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/nodes/expressions.html#expressions">expression</a>Yes
node-param-description-wrong-for-dynamic-optionsdescription in dynamic-options-type node parameter must be Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/nodes/expressions.html#expressions">expression</a>Yes
node-param-description-wrong-for-ignore-ssl-issuesdescription for Ignore SSL node parameter must be Whether to connect even if SSL certificate validation is not possibleYes
node-param-description-wrong-for-limitdescription for Limit node parameter must be Max number of results to returnYes
node-param-description-wrong-for-return-alldescription for Return All node parameter must be Whether to return all results or only up to a given limitYes
node-param-description-wrong-for-simplifydescription for Simplify node parameter must be Whether to return a simplified version of the response instead of the raw dataYes
node-param-description-wrong-for-upsertdescription for Upsert node parameter must be Create a new record, or update the current one if it already exists (upsert). The resource name e.g. 'contact' is also allowed instead of 'record'.Yes
node-param-display-name-excess-inner-whitespacedisplayName in node parameter or in fixed collection section must not contain excess inner whitespace. Applicable by extension to name in options-type or multi-options-type node parameter.Yes
node-param-display-name-miscased-idID in displayName in node parameter must be fully uppercased. Applicable by extension to name in options-type or multi-options-type node parameter.Yes
node-param-display-name-miscaseddisplayName in node parameter or in fixed collection section must title cased. Applicable by extension to name in options-type or multi-options-type node parameter.Yes
node-param-display-name-untrimmeddisplayName in node parameter or in fixed collection section must be trimmed. Applicable by extension to name in options-type or multi-options-type node parameter.Yes
node-param-display-name-wrong-for-dynamic-multi-optionsdisplayName for dynamic-multi-options-type node parameter must end with Names or IDsYes
node-param-display-name-wrong-for-dynamic-optionsdisplayName for dynamic-options-type node parameter must end with Name or IDYes
node-param-display-name-wrong-for-simplifydisplayName for Simplify node parameter must be SimplifyYes
node-param-display-name-wrong-for-update-fieldsdisplayName for Update operation node parameter must be Update FieldsYes
node-param-fixed-collection-type-unsorted-itemsItems in a fixed-collection-type node parameter section must be alphabetized by displayName if five or more than five, unless the items are address fields.Yes
node-param-min-value-wrong-for-limitminValue for Limit node parameter must be a positive integer.Yes
node-param-multi-options-type-unsorted-itemsItems in a multi-options-type node parameter must be alphabetized by name if five or more than five.Yes
node-param-operation-without-no-data-expressionnoDataExpression in an Operation node parameter must be present and enabled.Yes
node-param-option-description-identical-to-namedescription in option in options-type node parameter must not be identical to name.Yes
node-param-option-name-containing-starOption name in options-type node parameter must not contain *. Use [All] instead.Yes
node-param-option-name-duplicateOption name in options-type node parameter must not be a duplicate.Yes
node-param-option-name-wrong-for-get-allOption name for Get All node parameter must be Get AllYes
node-param-option-name-wrong-for-upsertOption name for Upsert node parameter must be Create or Update.Yes
node-param-option-value-duplicateOption value in options-type node parameter must not be a duplicate.Yes
node-param-options-type-unsorted-itemsItems in options-type node parameter must be alphabetized by name if five or more than five.Yes
node-param-placeholder-miscased-idID in placeholder in node parameter must be fully uppercased.Yes
node-param-placeholder-missing-emailplaceholder for Email node parameter must exist.Yes
node-param-required-falserequired: false in node parameter must be removed because it is implied.Yes
node-param-resource-with-plural-optionOption name for a Resource node parameter must be singular.Yes
node-param-resource-without-no-data-expressionnoDataExpression in a Resource node parameter must be present and enabled.Yes
node-param-type-options-missing-from-limittypeOptions in Limit node parameter must be present.Yes

Author

© 2022 Iván Ovejero

License

Distributed under the MIT License.

Keywords

FAQs

Package last updated on 27 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc