Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67ee5b8e80 | ||
|
|
e863c55657 | ||
|
|
c6c8bb68b2 | ||
|
|
9b8a6b7053 | ||
|
|
65e06338e3 | ||
|
|
3624c920ed | ||
|
|
73c99818fa | ||
|
|
a36a4a1841 | ||
|
|
b2ba2d1cf1 |
102
.eslintrc.js
102
.eslintrc.js
@@ -34,8 +34,19 @@ module.exports = {
|
|||||||
plugins: ['eslint-plugin-n8n-nodes-base'],
|
plugins: ['eslint-plugin-n8n-nodes-base'],
|
||||||
extends: ['plugin:n8n-nodes-base/credentials'],
|
extends: ['plugin:n8n-nodes-base/credentials'],
|
||||||
rules: {
|
rules: {
|
||||||
'n8n-nodes-base/cred-class-field-documentation-url-missing': 'off',
|
'n8n-nodes-base/cred-class-field-authenticate-type-assertion': 'error',
|
||||||
|
'n8n-nodes-base/cred-class-field-display-name-missing-oauth2': 'error',
|
||||||
|
'n8n-nodes-base/cred-class-field-display-name-miscased': 'error',
|
||||||
|
'n8n-nodes-base/cred-class-field-documentation-url-missing': 'error',
|
||||||
'n8n-nodes-base/cred-class-field-documentation-url-miscased': 'off',
|
'n8n-nodes-base/cred-class-field-documentation-url-miscased': 'off',
|
||||||
|
'n8n-nodes-base/cred-class-field-name-missing-oauth2': 'error',
|
||||||
|
'n8n-nodes-base/cred-class-field-name-unsuffixed': 'error',
|
||||||
|
'n8n-nodes-base/cred-class-field-name-uppercase-first-char': 'error',
|
||||||
|
'n8n-nodes-base/cred-class-field-properties-assertion': 'error',
|
||||||
|
'n8n-nodes-base/cred-class-field-type-options-password-missing': 'error',
|
||||||
|
'n8n-nodes-base/cred-class-name-missing-oauth2-suffix': 'error',
|
||||||
|
'n8n-nodes-base/cred-class-name-unsuffixed': 'error',
|
||||||
|
'n8n-nodes-base/cred-filename-against-convention': 'error',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -43,9 +54,92 @@ module.exports = {
|
|||||||
plugins: ['eslint-plugin-n8n-nodes-base'],
|
plugins: ['eslint-plugin-n8n-nodes-base'],
|
||||||
extends: ['plugin:n8n-nodes-base/nodes'],
|
extends: ['plugin:n8n-nodes-base/nodes'],
|
||||||
rules: {
|
rules: {
|
||||||
'n8n-nodes-base/node-execute-block-missing-continue-on-fail': 'off',
|
'n8n-nodes-base/node-class-description-credentials-name-unsuffixed': 'error',
|
||||||
'n8n-nodes-base/node-resource-description-filename-against-convention': 'off',
|
'n8n-nodes-base/node-class-description-display-name-unsuffixed-trigger-node': 'error',
|
||||||
'n8n-nodes-base/node-param-fixed-collection-type-unsorted-items': 'off',
|
'n8n-nodes-base/node-class-description-empty-string': 'error',
|
||||||
|
'n8n-nodes-base/node-class-description-icon-not-svg': 'error',
|
||||||
|
'n8n-nodes-base/node-class-description-inputs-wrong-regular-node': 'off',
|
||||||
|
'n8n-nodes-base/node-class-description-inputs-wrong-trigger-node': 'error',
|
||||||
|
'n8n-nodes-base/node-class-description-missing-subtitle': 'error',
|
||||||
|
'n8n-nodes-base/node-class-description-non-core-color-present': 'error',
|
||||||
|
'n8n-nodes-base/node-class-description-name-miscased': 'error',
|
||||||
|
'n8n-nodes-base/node-class-description-name-unsuffixed-trigger-node': 'error',
|
||||||
|
'n8n-nodes-base/node-class-description-outputs-wrong': 'off',
|
||||||
|
'n8n-nodes-base/node-dirname-against-convention': 'error',
|
||||||
|
'n8n-nodes-base/node-execute-block-double-assertion-for-items': 'error',
|
||||||
|
'n8n-nodes-base/node-execute-block-wrong-error-thrown': 'error',
|
||||||
|
'n8n-nodes-base/node-filename-against-convention': 'error',
|
||||||
|
'n8n-nodes-base/node-param-array-type-assertion': 'error',
|
||||||
|
'n8n-nodes-base/node-param-color-type-unused': 'error',
|
||||||
|
'n8n-nodes-base/node-param-default-missing': 'error',
|
||||||
|
'n8n-nodes-base/node-param-default-wrong-for-boolean': 'error',
|
||||||
|
'n8n-nodes-base/node-param-default-wrong-for-collection': 'error',
|
||||||
|
'n8n-nodes-base/node-param-default-wrong-for-fixed-collection': 'error',
|
||||||
|
'n8n-nodes-base/node-param-default-wrong-for-fixed-collection': 'error',
|
||||||
|
'n8n-nodes-base/node-param-default-wrong-for-multi-options': 'error',
|
||||||
|
'n8n-nodes-base/node-param-default-wrong-for-number': 'error',
|
||||||
|
'n8n-nodes-base/node-param-default-wrong-for-simplify': 'error',
|
||||||
|
'n8n-nodes-base/node-param-default-wrong-for-string': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-boolean-without-whether': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-comma-separated-hyphen': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-empty-string': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-excess-final-period': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-excess-inner-whitespace': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-identical-to-display-name': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-line-break-html-tag': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-lowercase-first-char': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-miscased-id': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-miscased-json': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-miscased-url': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-missing-final-period': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-missing-for-ignore-ssl-issues': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-missing-for-return-all': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-missing-for-simplify': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-missing-from-dynamic-multi-options': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-missing-from-dynamic-options': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-missing-from-limit': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-unencoded-angle-brackets': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-unneeded-backticks': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-untrimmed': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-url-missing-protocol': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-weak': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-wrong-for-dynamic-multi-options': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-wrong-for-dynamic-options': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-wrong-for-ignore-ssl-issues': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-wrong-for-limit': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-wrong-for-return-all': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-wrong-for-simplify': 'error',
|
||||||
|
'n8n-nodes-base/node-param-description-wrong-for-upsert': 'error',
|
||||||
|
'n8n-nodes-base/node-param-display-name-excess-inner-whitespace': 'error',
|
||||||
|
'n8n-nodes-base/node-param-display-name-miscased-id': 'error',
|
||||||
|
'n8n-nodes-base/node-param-display-name-miscased': 'error',
|
||||||
|
'n8n-nodes-base/node-param-display-name-not-first-position': 'error',
|
||||||
|
'n8n-nodes-base/node-param-display-name-untrimmed': 'error',
|
||||||
|
'n8n-nodes-base/node-param-display-name-wrong-for-dynamic-multi-options': 'error',
|
||||||
|
'n8n-nodes-base/node-param-display-name-wrong-for-dynamic-options': 'error',
|
||||||
|
'n8n-nodes-base/node-param-display-name-wrong-for-simplify': 'error',
|
||||||
|
'n8n-nodes-base/node-param-display-name-wrong-for-update-fields': 'error',
|
||||||
|
'n8n-nodes-base/node-param-min-value-wrong-for-limit': 'error',
|
||||||
|
'n8n-nodes-base/node-param-multi-options-type-unsorted-items': 'error',
|
||||||
|
'n8n-nodes-base/node-param-name-untrimmed': 'error',
|
||||||
|
'n8n-nodes-base/node-param-operation-option-action-wrong-for-get-many': 'error',
|
||||||
|
'n8n-nodes-base/node-param-operation-option-description-wrong-for-get-many': 'error',
|
||||||
|
'n8n-nodes-base/node-param-operation-option-without-action': 'error',
|
||||||
|
'n8n-nodes-base/node-param-operation-without-no-data-expression': 'error',
|
||||||
|
'n8n-nodes-base/node-param-option-description-identical-to-name': 'error',
|
||||||
|
'n8n-nodes-base/node-param-option-name-containing-star': 'error',
|
||||||
|
'n8n-nodes-base/node-param-option-name-duplicate': 'error',
|
||||||
|
'n8n-nodes-base/node-param-option-name-wrong-for-get-many': 'error',
|
||||||
|
'n8n-nodes-base/node-param-option-name-wrong-for-upsert': 'error',
|
||||||
|
'n8n-nodes-base/node-param-option-value-duplicate': 'error',
|
||||||
|
'n8n-nodes-base/node-param-options-type-unsorted-items': 'error',
|
||||||
|
'n8n-nodes-base/node-param-placeholder-miscased-id': 'error',
|
||||||
|
'n8n-nodes-base/node-param-placeholder-missing-email': 'error',
|
||||||
|
'n8n-nodes-base/node-param-required-false': 'error',
|
||||||
|
'n8n-nodes-base/node-param-resource-with-plural-option': 'error',
|
||||||
|
'n8n-nodes-base/node-param-resource-without-no-data-expression': 'error',
|
||||||
|
'n8n-nodes-base/node-param-type-options-missing-from-limit': 'error',
|
||||||
|
'n8n-nodes-base/node-param-type-options-password-missing': 'error',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
12
README.md
12
README.md
@@ -2,19 +2,21 @@
|
|||||||
|
|
||||||
# n8n-nodes-starter
|
# n8n-nodes-starter
|
||||||
|
|
||||||
This repo contains example nodes to help you get started building your own custom integrations for [n8n](n8n.io). It includes the node linter and other dependencies.
|
This repo contains example nodes to help you get started building your own custom integrations for [n8n](https://n8n.io). It includes the node linter and other dependencies.
|
||||||
|
|
||||||
To make your custom node available to the community, you must create it as an npm package, and [submit it to the npm registry](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).
|
To make your custom node available to the community, you must create it as an npm package, and [submit it to the npm registry](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).
|
||||||
|
|
||||||
|
If you would like your node to be available on n8n cloud you can also [submit your node for verification](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/).
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
You need the following installed on your development machine:
|
You need the following installed on your development machine:
|
||||||
|
|
||||||
* [git](https://git-scm.com/downloads)
|
* [git](https://git-scm.com/downloads)
|
||||||
* Node.js and pnpm. Minimum version Node 18. You can find instructions on how to install both using nvm (Node Version Manager) for Linux, Mac, and WSL [here](https://github.com/nvm-sh/nvm). For Windows users, refer to Microsoft's guide to [Install NodeJS on Windows](https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows).
|
* Node.js and npm. Minimum version Node 20. You can find instructions on how to install both using nvm (Node Version Manager) for Linux, Mac, and WSL [here](https://github.com/nvm-sh/nvm). For Windows users, refer to Microsoft's guide to [Install NodeJS on Windows](https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows).
|
||||||
* Install n8n with:
|
* Install n8n with:
|
||||||
```
|
```
|
||||||
pnpm install n8n -g
|
npm install n8n -g
|
||||||
```
|
```
|
||||||
* Recommended: follow n8n's guide to [set up your development environment](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/).
|
* Recommended: follow n8n's guide to [set up your development environment](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/).
|
||||||
|
|
||||||
@@ -27,11 +29,11 @@ These are the basic steps for working with the starter. For detailed guidance on
|
|||||||
```
|
```
|
||||||
git clone https://github.com/<your organization>/<your-repo-name>.git
|
git clone https://github.com/<your organization>/<your-repo-name>.git
|
||||||
```
|
```
|
||||||
3. Run `pnpm i` to install dependencies.
|
3. Run `npm i` to install dependencies.
|
||||||
4. Open the project in your editor.
|
4. Open the project in your editor.
|
||||||
5. Browse the examples in `/nodes` and `/credentials`. Modify the examples, or replace them with your own nodes.
|
5. Browse the examples in `/nodes` and `/credentials`. Modify the examples, or replace them with your own nodes.
|
||||||
6. Update the `package.json` to match your details.
|
6. Update the `package.json` to match your details.
|
||||||
7. Run `pnpm lint` to check for errors or `pnpm lintfix` to automatically fix errors when possible.
|
7. Run `npm run lint` to check for errors or `npm run lintfix` to automatically fix errors when possible.
|
||||||
8. Test your node locally. Refer to [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for guidance.
|
8. Test your node locally. Refer to [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for guidance.
|
||||||
9. Replace this README with documentation for your node. Use the [README_TEMPLATE](README_TEMPLATE.md) to get started.
|
9. Replace this README with documentation for your node. Use the [README_TEMPLATE](README_TEMPLATE.md) to get started.
|
||||||
10. Update the LICENSE file to use your details.
|
10. Update the LICENSE file to use your details.
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ _By the time users are looking for community nodes, they probably already know n
|
|||||||
|
|
||||||
## Resources
|
## Resources
|
||||||
|
|
||||||
* [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
|
* [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
|
||||||
* _Link to app/service documentation._
|
* _Link to app/service documentation._
|
||||||
|
|
||||||
## Version history
|
## Version history
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ import {
|
|||||||
export class ExampleCredentialsApi implements ICredentialType {
|
export class ExampleCredentialsApi implements ICredentialType {
|
||||||
name = 'exampleCredentialsApi';
|
name = 'exampleCredentialsApi';
|
||||||
displayName = 'Example Credentials API';
|
displayName = 'Example Credentials API';
|
||||||
|
|
||||||
|
documentationUrl = 'https://your-docs-url';
|
||||||
|
|
||||||
properties: INodeProperties[] = [
|
properties: INodeProperties[] = [
|
||||||
// The credentials to get from user and save encrypted.
|
// The credentials to get from user and save encrypted.
|
||||||
// Properties can be defined exactly in the same way
|
// Properties can be defined exactly in the same way
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import {
|
|||||||
export class HttpBinApi implements ICredentialType {
|
export class HttpBinApi implements ICredentialType {
|
||||||
name = 'httpbinApi';
|
name = 'httpbinApi';
|
||||||
displayName = 'HttpBin API';
|
displayName = 'HttpBin API';
|
||||||
documentationUrl = '<your-docs-url>';
|
documentationUrl = 'https://your-docs-url';
|
||||||
properties: INodeProperties[] = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Token',
|
displayName: 'Token',
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import {
|
import type {
|
||||||
IExecuteFunctions,
|
IExecuteFunctions,
|
||||||
INodeExecutionData,
|
INodeExecutionData,
|
||||||
INodeType,
|
INodeType,
|
||||||
INodeTypeDescription,
|
INodeTypeDescription,
|
||||||
NodeOperationError,
|
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
import { NodeConnectionType, NodeOperationError } from 'n8n-workflow';
|
||||||
|
|
||||||
export class ExampleNode implements INodeType {
|
export class ExampleNode implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
@@ -16,8 +16,9 @@ export class ExampleNode implements INodeType {
|
|||||||
defaults: {
|
defaults: {
|
||||||
name: 'Example Node',
|
name: 'Example Node',
|
||||||
},
|
},
|
||||||
inputs: ['main'],
|
inputs: [NodeConnectionType.Main],
|
||||||
outputs: ['main'],
|
outputs: [NodeConnectionType.Main],
|
||||||
|
usableAsTool: true,
|
||||||
properties: [
|
properties: [
|
||||||
// Node properties which the user gets displayed and
|
// Node properties which the user gets displayed and
|
||||||
// can change on the node.
|
// can change on the node.
|
||||||
@@ -50,7 +51,7 @@ export class ExampleNode implements INodeType {
|
|||||||
myString = this.getNodeParameter('myString', itemIndex, '') as string;
|
myString = this.getNodeParameter('myString', itemIndex, '') as string;
|
||||||
item = items[itemIndex];
|
item = items[itemIndex];
|
||||||
|
|
||||||
item.json['myString'] = myString;
|
item.json.myString = myString;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// This node should never fail but we want to showcase how
|
// This node should never fail but we want to showcase how
|
||||||
// to handle errors.
|
// to handle errors.
|
||||||
@@ -71,6 +72,6 @@ export class ExampleNode implements INodeType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.prepareOutputData(items);
|
return [items];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { INodeType, INodeTypeDescription } from 'n8n-workflow';
|
import { INodeType, INodeTypeDescription, NodeConnectionType } from 'n8n-workflow';
|
||||||
import { httpVerbFields, httpVerbOperations } from './HttpVerbDescription';
|
import { httpVerbFields, httpVerbOperations } from './HttpVerbDescription';
|
||||||
|
|
||||||
export class HttpBin implements INodeType {
|
export class HttpBin implements INodeType {
|
||||||
description: INodeTypeDescription = {
|
description: INodeTypeDescription = {
|
||||||
displayName: 'HttpBin',
|
displayName: 'HttpBin',
|
||||||
name: 'httpBin',
|
name: 'httpBin',
|
||||||
icon: 'file:httpbin.svg',
|
icon: { light: 'file:httpbin.svg', dark: 'file:httpbin.svg' },
|
||||||
group: ['transform'],
|
group: ['transform'],
|
||||||
version: 1,
|
version: 1,
|
||||||
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
|
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
|
||||||
@@ -13,8 +13,9 @@ export class HttpBin implements INodeType {
|
|||||||
defaults: {
|
defaults: {
|
||||||
name: 'HttpBin',
|
name: 'HttpBin',
|
||||||
},
|
},
|
||||||
inputs: ['main'],
|
inputs: [NodeConnectionType.Main],
|
||||||
outputs: ['main'],
|
outputs: [NodeConnectionType.Main],
|
||||||
|
usableAsTool: true,
|
||||||
credentials: [
|
credentials: [
|
||||||
{
|
{
|
||||||
name: 'httpbinApi',
|
name: 'httpbinApi',
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ export const httpVerbOperations: INodeProperties[] = [
|
|||||||
name: 'GET',
|
name: 'GET',
|
||||||
value: 'get',
|
value: 'get',
|
||||||
description: 'Perform a GET request',
|
description: 'Perform a GET request',
|
||||||
|
action: 'Perform a GET request',
|
||||||
routing: {
|
routing: {
|
||||||
request: {
|
request: {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
@@ -29,6 +30,7 @@ export const httpVerbOperations: INodeProperties[] = [
|
|||||||
name: 'DELETE',
|
name: 'DELETE',
|
||||||
value: 'delete',
|
value: 'delete',
|
||||||
description: 'Perform a DELETE request',
|
description: 'Perform a DELETE request',
|
||||||
|
action: 'Perform a DELETE request',
|
||||||
routing: {
|
routing: {
|
||||||
request: {
|
request: {
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
|
|||||||
24
package.json
24
package.json
@@ -16,19 +16,16 @@
|
|||||||
"url": "https://github.com/<...>/n8n-nodes-<...>.git"
|
"url": "https://github.com/<...>/n8n-nodes-<...>.git"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.10",
|
"node": ">=20.15"
|
||||||
"pnpm": ">=9.1"
|
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@9.1.4",
|
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"preinstall": "npx only-allow pnpm",
|
"build": "npx rimraf dist && tsc && gulp build:icons",
|
||||||
"build": "tsc && gulp build:icons",
|
|
||||||
"dev": "tsc --watch",
|
"dev": "tsc --watch",
|
||||||
"format": "prettier nodes credentials --write",
|
"format": "prettier nodes credentials --write",
|
||||||
"lint": "eslint nodes credentials package.json",
|
"lint": "eslint nodes credentials package.json",
|
||||||
"lintfix": "eslint nodes credentials package.json --fix",
|
"lintfix": "eslint nodes credentials package.json --fix",
|
||||||
"prepublishOnly": "pnpm build && pnpm lint -c .eslintrc.prepublish.js nodes credentials package.json"
|
"prepublishOnly": "npm run build && npm run lint -c .eslintrc.prepublish.js nodes credentials package.json"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"dist"
|
"dist"
|
||||||
@@ -45,15 +42,14 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@typescript-eslint/parser": "^7.15.0",
|
"@typescript-eslint/parser": "~8.32.0",
|
||||||
"eslint": "^8.56.0",
|
"eslint": "^8.57.0",
|
||||||
"eslint-plugin-n8n-nodes-base": "^1.16.1",
|
"eslint-plugin-n8n-nodes-base": "^1.16.3",
|
||||||
"gulp": "^4.0.2",
|
"gulp": "^5.0.0",
|
||||||
"n8n-workflow": "*",
|
"prettier": "^3.5.3",
|
||||||
"prettier": "^3.3.2",
|
"typescript": "^5.8.2"
|
||||||
"typescript": "^5.5.3"
|
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"n8n-workflow": "*"
|
"n8n-workflow": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
4284
pnpm-lock.yaml
generated
4284
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
127
tslint.json
127
tslint.json
@@ -1,127 +0,0 @@
|
|||||||
{
|
|
||||||
"linterOptions": {
|
|
||||||
"exclude": [
|
|
||||||
"node_modules/**/*"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"defaultSeverity": "error",
|
|
||||||
"jsRules": {},
|
|
||||||
"rules": {
|
|
||||||
"array-type": [
|
|
||||||
true,
|
|
||||||
"array-simple"
|
|
||||||
],
|
|
||||||
"arrow-return-shorthand": true,
|
|
||||||
"ban": [
|
|
||||||
true,
|
|
||||||
{
|
|
||||||
"name": "Array",
|
|
||||||
"message": "tsstyle#array-constructor"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ban-types": [
|
|
||||||
true,
|
|
||||||
[
|
|
||||||
"Object",
|
|
||||||
"Use {} instead."
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"String",
|
|
||||||
"Use 'string' instead."
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Number",
|
|
||||||
"Use 'number' instead."
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"Boolean",
|
|
||||||
"Use 'boolean' instead."
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"class-name": true,
|
|
||||||
"curly": [
|
|
||||||
true,
|
|
||||||
"ignore-same-line"
|
|
||||||
],
|
|
||||||
"forin": true,
|
|
||||||
"jsdoc-format": true,
|
|
||||||
"label-position": true,
|
|
||||||
"indent": [
|
|
||||||
true,
|
|
||||||
"tabs",
|
|
||||||
2
|
|
||||||
],
|
|
||||||
"member-access": [
|
|
||||||
true,
|
|
||||||
"no-public"
|
|
||||||
],
|
|
||||||
"new-parens": true,
|
|
||||||
"no-angle-bracket-type-assertion": true,
|
|
||||||
"no-any": true,
|
|
||||||
"no-arg": true,
|
|
||||||
"no-conditional-assignment": true,
|
|
||||||
"no-construct": true,
|
|
||||||
"no-debugger": true,
|
|
||||||
"no-default-export": true,
|
|
||||||
"no-duplicate-variable": true,
|
|
||||||
"no-inferrable-types": true,
|
|
||||||
"ordered-imports": [
|
|
||||||
true,
|
|
||||||
{
|
|
||||||
"import-sources-order": "any",
|
|
||||||
"named-imports-order": "case-insensitive"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"no-namespace": [
|
|
||||||
true,
|
|
||||||
"allow-declarations"
|
|
||||||
],
|
|
||||||
"no-reference": true,
|
|
||||||
"no-string-throw": true,
|
|
||||||
"no-unused-expression": true,
|
|
||||||
"no-var-keyword": true,
|
|
||||||
"object-literal-shorthand": true,
|
|
||||||
"only-arrow-functions": [
|
|
||||||
true,
|
|
||||||
"allow-declarations",
|
|
||||||
"allow-named-functions"
|
|
||||||
],
|
|
||||||
"prefer-const": true,
|
|
||||||
"radix": true,
|
|
||||||
"semicolon": [
|
|
||||||
true,
|
|
||||||
"always",
|
|
||||||
"ignore-bound-class-methods"
|
|
||||||
],
|
|
||||||
"switch-default": true,
|
|
||||||
"trailing-comma": [
|
|
||||||
true,
|
|
||||||
{
|
|
||||||
"multiline": {
|
|
||||||
"objects": "always",
|
|
||||||
"arrays": "always",
|
|
||||||
"functions": "always",
|
|
||||||
"typeLiterals": "ignore"
|
|
||||||
},
|
|
||||||
"esSpecCompliant": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"triple-equals": [
|
|
||||||
true,
|
|
||||||
"allow-null-check"
|
|
||||||
],
|
|
||||||
"use-isnan": true,
|
|
||||||
"quotes": [
|
|
||||||
"error",
|
|
||||||
"single"
|
|
||||||
],
|
|
||||||
"variable-name": [
|
|
||||||
true,
|
|
||||||
"check-format",
|
|
||||||
"ban-keywords",
|
|
||||||
"allow-leading-underscore",
|
|
||||||
"allow-trailing-underscore"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"rulesDirectory": []
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user