eslint-plugin-flowease-nodes-base
v1.16.1
Published
[![NPM version](https://img.shields.io/npm/v/eslint-plugin-flowease-nodes-base.svg?style=flat)](https://npmjs.org/package/eslint-plugin-flowease-nodes-base) [![Tests](https://github.com/khulnasoft-lab/eslint-plugin-flowease-nodes-base/actions/workflows/on
Downloads
4
Readme
eslint-plugin-flowease-nodes-base
ESLint plugin for linting flowease nodes.
Usage
Install this plugin:
pnpm i -D eslint-plugin-flowease-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-flowease-nodes-base" ],
rules: {
"flowease-nodes-base/node-param-array-type-assertion": "warning",
"flowease-nodes-base/node-param-default-wrong-for-collection": "error"
}
}
Specify plugin and config
If you specify both the plugin and a config, all config rules are enabled by default and must be individually disabled:
{
plugins: [ "eslint-plugin-flowease-nodes-base" ],
extends: [ "plugin:flowease-nodes-base/nodes" ],
rules: {
"flowease-nodes-base/node-param-array-type-assertion": "off",
"flowease-nodes-base/node-param-default-wrong-for-collection": "off"
}
}
| Config | Content |
| ------------- | --------------------------------------------------- |
| nodes
| Ruleset for flowease nodes |
| credentials
| Ruleset for flowease credentials |
| community
| Ruleset for package.json
in flowease community package |
User-defined defaults
In the community
ruleset, the five *-still-default
rules allow you to define your own default values:
{
plugins: [ "eslint-plugin-flowease-nodes-base" ],
extends: [ "plugin:flowease-nodes-base/nodes" ],
rules: {
"flowease-nodes-base/community-package-json-author-name-still-default": [
"error",
{ authorName: "Neil Armstrong" }, // user-defined default
],
}
}
Ruleset
| Name | Description | Autofixable |
| :-- | :-- | :-- |
| community-package-json-author-email-still-default | The author.email
value in the package.json
of a community package must be different from the default value ''
(empty string) or a user-defined default. | No |
| community-package-json-author-missing | The author
key must be present in the package.json
of a community package. | No |
| community-package-json-author-name-missing | The author.name
key must be present in the package.json
of a community package. | No |
| community-package-json-author-name-still-default | The author.name
value in the package.json
of a community package must be different from the default value ''
(empty string) or a user-defined default. | No |
| community-package-json-description-missing | The description
key must be present in the package.json
of a community package. | No |
| community-package-json-description-still-default | The description
value in the package.json
of a community package must be different from the default value ''
(empty string) or a user-defined default. | No |
| community-package-json-flowease-api-version-missing | The flowease.floweaseNodesApiVersion
key must be present in the package.json
of a community package. | No |
| community-package-json-flowease-api-version-not-number | The flowease.floweaseNodesApiVersion
value in the package.json
of a community package must be a number. | No |
| community-package-json-flowease-missing | The flowease
key must be present in the package.json
of a community package. | No |
| community-package-json-flowease-nodes-empty | The flowease.nodes
value in the package.json
of a community package must contain at least one filepath. | No |
| community-package-json-flowease-nodes-missing | The flowease.nodes
key must be present in the package.json
of a community package. | No |
| community-package-json-keywords-missing | The keywords
key must be present in the package.json
of a community package. | No |
| community-package-json-keywords-without-official-tag | The keywords
value in the package.json
of a community package must be an array containing the value 'flowease-community-node-package'
. | No |
| community-package-json-license-missing | The description
key must be present in the package.json
of a community package. | No |
| community-package-json-license-not-default | The license
key in the package.json
of a community package must be the default value MIT
. | No |
| community-package-json-name-missing | The name
key must be present in the package.json
of a community package. | No |
| community-package-json-name-still-default | The name
key in the package.json
of a community package must be different from the default value flowease-nodes-<...>
or a user-defined default. | No |
| community-package-json-repository-url-still-default | The repository.url
value in the package.json
of a community package must be different from the default value https://github.com/<...>/flowease-nodes-<...>.git
or a user-defined default. | No |
| community-package-json-version-missing | The version
key must be present in the package.json
of a community package. | No |
| cred-class-field-authenticate-type-assertion | In a credential class, the field authenticate
must be typed IAuthenticateGeneric
| Yes |
| cred-class-field-display-name-miscased | displayName
field in credential class must be title cased, except for flowease API
and E-goi API
| Yes |
| cred-class-field-display-name-missing-api | displayName
field in credential class must be end with API
. | Yes |
| cred-class-field-display-name-missing-oauth2 | displayName
field in credential class must mention OAuth2
if the credential is OAuth2. | No |
| cred-class-field-documentation-url-miscased | documentationUrl
field in credential class must be camel cased. Only applicable to nodes in the main repository. | Yes |
| cred-class-field-documentation-url-missing | documentationUrl
field in credential class must be present. | Yes |
| cred-class-field-documentation-url-not-http-url | documentationUrl
field in credential class must be an HTTP URL. Only applicable to community credentials. | No |
| cred-class-field-name-missing-oauth2 | name
field in credential class must mention OAuth2
if the credential is OAuth2. | No |
| cred-class-field-name-unsuffixed | name
field in credential class must be suffixed with -Api
. | Yes |
| cred-class-field-name-uppercase-first-char | First char in name
in credential class must be lowercase. | Yes |
| cred-class-field-placeholder-url-missing-eg | placeholder
for a URL in credential class must be prepended with e.g.
. | Yes |
| cred-class-field-properties-assertion | In a credential class, the field properties
must be typed INodeProperties
and individual properties must have no assertions. | Yes |
| cred-class-field-type-options-password-missing | In a sensitive string-type field, typeOptions.password
must be set to true
to obscure the input. A field name is sensitive if it contains the strings: secret
,password
,token
,key
. See exceptions in source. | Yes |
| cred-class-name-missing-oauth2-suffix | Credential class name must mention OAuth2
if the credential is OAuth2. | No |
| cred-class-name-unsuffixed | Credential class name must be suffixed with -Api
. | Yes |
| cred-filename-against-convention | Credentials filename must match credentials class name, excluding the filename suffix. Example: TestApi.credentials.ts
matches TestApi
in class TestApi implements ICredentialType
. | No |
| node-class-description-credentials-name-unsuffixed | name
under credentials
in node class description must be suffixed with -Api
. | Yes |
| node-class-description-display-name-unsuffixed-trigger-node | displayName
in node class description for trigger node must be suffixed with -Trigger
. | Yes |
| node-class-description-empty-string | description
in node class description must be filled out. | No |
| node-class-description-icon-not-svg | icon
in node class description should be an SVG icon. | No |
| node-class-description-inputs-wrong-regular-node | The 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-node | The number of inputs
in node class description for trigger node should be zero. | Yes |
| node-class-description-missing-subtitle | subtitle
in node class description must be present. | Yes |
| node-class-description-name-miscased | name
in node class description must be camel cased. | Yes |
| node-class-description-name-unsuffixed-trigger-node | name
in node class description for trigger node must be suffixed with -Trigger
. | Yes |
| node-class-description-non-core-color-present | color
in node class description is deprecated and must not be present, except for nodes whose icon is a Font Awesome icon - usually core nodes. | Yes |
| node-class-description-outputs-wrong | The 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-dirname-against-convention | Node dirname must match node filename, excluding the filename suffix. Example: Test
node dirname matches Test
section of Test.node.ts
node filename. | No |
| node-execute-block-double-assertion-for-items | In the execute()
method there is no need to double assert the type of items.length
. | Yes |
| node-execute-block-error-missing-item-index | In the operations in the execute()
method in a node, NodeApiError
and NodeOperationError
must specify itemIndex
as the third argument. | No |
| node-execute-block-missing-continue-on-fail | The execute()
method in a node must implement continueOnFail
in a try-catch block. | No |
| node-execute-block-wrong-error-thrown | The execute()
method in a node may only throw NodeApiError
for failed API requests and NodeOperationError
for internal errors, not the built-in Error
. Refer to NodeErrors.ts
. | No |
| node-filename-against-convention | name
in node class description must match the node filename without the .node.ts
suffix. Example: If description.name
is Test
, then filename must be Test.node.ts
. | No |
| node-param-array-type-assertion | Array of node parameters must be typed, not type-asserted. | Yes |
| node-param-collection-type-item-required | Items in collection-type node parameter must not have a required
property. | Yes |
| node-param-collection-type-unsorted-items | Items in collection-type node parameter must be alphabetized by name
if five or more than five. | Yes |
| node-param-color-type-unused | string
-type color-related node parameter must be color
-type. | Yes |
| node-param-default-missing | default
must be present in a node parameter, except in node parameters under modes
. | Yes |
| node-param-default-wrong-for-boolean | default
for boolean-type node parameter must be a boolean. | Yes |
| node-param-default-wrong-for-collection | default
for collection-type node parameter must be an object. | Yes |
| node-param-default-wrong-for-fixed-collection | default
for fixed-collection-type node parameter must be an object. | Yes |
| node-param-default-wrong-for-limit | default
for a Limit node parameter must be 50
. | Yes |
| node-param-default-wrong-for-multi-options | default
for a multi-options-type node parameter must be an array. | Yes |
| node-param-default-wrong-for-number | default
for a number-type node parameter must be a number, except for a number-type ID parameter. | Yes |
| node-param-default-wrong-for-options | default
for an options-type node parameter must be one of the options. | Yes |
| node-param-default-wrong-for-simplify | default
for a Simplify node parameter must be true
. | Yes |
| node-param-default-wrong-for-string | default
for a string-type node parameter must be a string, unless typeOptions.multipleValues
is set to true
. | Yes |
| node-param-description-boolean-without-whether | description
in a boolean node parameter must start with Whether
. | No |
| node-param-description-comma-separated-hyphen | The 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-string | description
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-period | description
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-whitespace | description
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-name | description
in node parameter must not be identical to displayName
. | Yes |
| node-param-description-line-break-html-tag | description
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-char | First 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-id | ID
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-json | JSON
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-url | URL
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-period | description
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-issues | description
for Ignore SSL node parameter must be present. | Yes |
| node-param-description-missing-for-return-all | description
for Return All node parameter must be present. | Yes |
| node-param-description-missing-for-simplify | description
for Simplify node parameter must be present. | Yes |
| node-param-description-missing-from-dynamic-multi-options | description
in dynamic-multi-options-type node parameter must be present. | Yes |
| node-param-description-missing-from-dynamic-options | description
in dynamic-options-type node parameter must be present. | Yes |
| node-param-description-missing-from-limit | description
in Limit node parameter must be present. | Yes |
| node-param-description-unencoded-angle-brackets | description
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-backticks | description
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-untrimmed | description
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-protocol | description
in node parameter must include protocol e.g. https://
when containing a URL. Applicable by extension to description
in option in options-type and multi-options-type node parameter. | Yes |
| node-param-description-weak | description
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-options | description
in dynamic-multi-options-type node parameter must be Choose from the list, or specify IDs using an <a href="https://docs.flowease.io/code/expressions/">expression</a>
| Yes |
| node-param-description-wrong-for-dynamic-options | description
in dynamic-options-type node parameter must be Choose from the list, or specify an ID using an <a href="https://docs.flowease.io/code/expressions/">expression</a>
| Yes |
| node-param-description-wrong-for-ignore-ssl-issues | description
for Ignore SSL node parameter must be Whether to connect even if SSL certificate validation is not possible
| Yes |
| node-param-description-wrong-for-limit | description
for Limit node parameter must be Max number of results to return
| Yes |
| node-param-description-wrong-for-return-all | description
for Return All node parameter must be Whether to return all results or only up to a given limit
| Yes |
| node-param-description-wrong-for-simplify | description
for Simplify node parameter must be Whether to return a simplified version of the response instead of the raw data
| Yes |
| node-param-description-wrong-for-upsert | description
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-whitespace | displayName
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-id | ID
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-miscased | displayName
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-not-first-position | By convention, displayName
in node parameter must be placed first. | Yes |
| node-param-display-name-untrimmed | displayName
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-options | displayName
for dynamic-multi-options-type node parameter must end with Names or IDs
| Yes |
| node-param-display-name-wrong-for-dynamic-options | displayName
for dynamic-options-type node parameter must end with Name or ID
| Yes |
| node-param-display-name-wrong-for-simplify | displayName
for Simplify node parameter must be Simplify | Yes |
| node-param-display-name-wrong-for-update-fields | displayName
for Update operation node parameter must be Update Fields
| Yes |
| node-param-fixed-collection-type-unsorted-items | Items 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-hint-untrimmed | hint
in node parameter must be trimmed. | Yes |
| node-param-hint-url-missing-protocol | hint
in node parameter must include protocol e.g. https://
when containing a URL. | Yes |
| node-param-min-value-wrong-for-limit | minValue
for Limit node parameter must be a positive integer. | Yes |
| node-param-multi-options-type-unsorted-items | Items in a multi-options-type node parameter must be alphabetized by name
if five or more than five. | No |
| node-param-name-untrimmed | name
in node parameter or in fixed collection section must be trimmed. | Yes |
| node-param-operation-option-action-miscased | The property action
in an option in an Operation node parameter must be sentence-cased. | Yes |
| node-param-operation-option-action-wrong-for-get-many | The property action
in a Get Many option in an Operation node parameter must start with Get many
. | Yes |
| node-param-operation-option-description-wrong-for-get-many | The property description
in a Get Many option in an Operation node parameter must mention many
instead of all
. | Yes |
| node-param-operation-option-without-action | An option in an Operation node parameter must have an action
property. The action
property may or may not be identical to the description
property. | Yes |
| node-param-operation-without-no-data-expression | noDataExpression
in an Operation node parameter must be present and enabled. | Yes |
| node-param-option-description-identical-to-name | description
in option in options-type node parameter must not be identical to name
. | Yes |
| node-param-option-name-containing-star | Option name
in options-type node parameter must not contain *
. Use [All]
instead. | Yes |
| node-param-option-name-duplicate | Option name
in options-type node parameter must not be a duplicate. | Yes |
| node-param-option-name-wrong-for-get-many | Option name
for Get Many node parameter must be Get Many
| Yes |
| node-param-option-name-wrong-for-upsert | Option name
for Upsert node parameter must be Create or Update
. | Yes |
| node-param-option-value-duplicate | Option value
in options-type node parameter must not be a duplicate. | Yes |
| node-param-options-type-unsorted-items | Items in options-type node parameter must be alphabetized by name
if five or more than five. | No |
| node-param-placeholder-miscased-id | ID
in placeholder
in node parameter must be fully uppercased. | Yes |
| node-param-placeholder-missing-email | placeholder
for Email node parameter must exist. | Yes |
| node-param-required-false | required: false
in node parameter must be removed because it is implied. | Yes |
| node-param-resource-with-plural-option | Option name
for a Resource node parameter must be singular. | Yes |
| node-param-resource-without-no-data-expression | noDataExpression
in a Resource node parameter must be present and enabled. | Yes |
| node-param-type-options-max-value-present | maxValue
in typeOptions
in Limit node parameter is deprecated and must not be present. | Yes |
| node-param-type-options-missing-from-limit | typeOptions
in Limit node parameter must be present. | Yes |
| node-param-type-options-password-missing | In a sensitive string-type parameter, typeOptions.password
must be set to true
to obscure the input. A node parameter name is sensitive if it contains the strings: secret
,password
,token
,apiKey
. See exceptions in source. | Yes |
| node-resource-description-filename-against-convention | Resource description file must use singular form. Example: UserDescription.ts
, not UsersDescription.ts
. | No |
Author
© 2022 KhulnaSoft Lab
License
Distributed under the MIT License.